Am 31.12.2017 um 12:17 schrieb Alexander Graf:


Am 30.12.2017 um 23:26 schrieb Frank Kunz <[email protected]>:

I try to control a few gpio pins via bash script. Board and OS version is:

cat /proc/device-tree/compatible
olimex,a13-olinuxinoallwinner,sun5i-a13

cat /etc/os-release
NAME="openSUSE Leap"
VERSION="42.3"
ID=opensuse
ID_LIKE="suse"
VERSION_ID="42.3"
PRETTY_NAME="openSUSE Leap 42.3"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:42.3"
BUG_REPORT_URL="https://bugs.opensuse.org";
HOME_URL="https://www.opensuse.org/";


In /sys/class/gpio I do:
echo 3 > export
ls
export  gpio3  gpiochip0  unexport
ls gpio3/
active_low  device/     direction   power/      subsystem/  uevent value
cat gpio3/direction
in

So when I want to change the pin direction:
echo out > gpio3/direction
bash: echo: write error: Unknown error 517

That is EPROBE_DEFER. The kernel signals that the requested device might be 
probed later, ...or never. I guess that there might be some device tree item 
missing, but from the kernel documentation I haven't found a solution for that. 
Does anybody have an idea how to get that working?

Usually changing gpio direction is the responsibility of the pinmux driver. Can 
you check if you have one loaded?

Thanks, that was the right hint. I analyzed it deeper and by using the correct pin (35 instead of 3) it works. This sysfs entry has the pin mapping:

/sys/kernel/debug/pinctrl/1c20800.pinctrl/pinmux-pins Pinmux settings per pin

Format: pin (name): mux_owner gpio_owner hog? pin 35 (PB3): (MUX UNCLAIMED) 1c20800.pinctrl:35

Br,
Frank
--
To unsubscribe, e-mail: [email protected]
To contact the owner, e-mail: [email protected]

Reply via email to