This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM3359: GPIO input with pull-up

Part Number: AM3359


Tool/software: Linux

Hello,

I have been using beaglebone for several years, on kernel 3.2.33 and 4.1.10. I have also been using several gpio functions, without problems. Now it has come to a point where I need to enable the internal pull-up for a GPIO configured as input. In 3.2.33 this works flawlessly, and the button connected to the GPIO is read correctly (I have also tried disabling the pull-up and the value is pulled down by the connected circuitry, so the function of the internal pull-up has been verified). In 4.1.10 it seems that no matter the setting of the pin, the pull-up does not seem to have an effect, and the input that used to be read as high because of the pull-up in 3.2.33 is read low in 4.1.10. The pin is configured using a dtb file, and the GPIO is exported using /sys/class/gpio

cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pinmux-pins
Pinmux settings per pin
Format: pin (name): mux_owner gpio_owner hog?
...
pin 50 (44e108c8.0): buttons (GPIO UNCLAIMED) function user_buttons_s0 group user_buttons_s0
pin 51 (44e108cc.0): buttons (GPIO UNCLAIMED) function user_buttons_s0 group user_buttons_s0

cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins
registered pins: 142
...
pin 50 (44e108c8.0) 00000067 pinctrl-single
pin 51 (44e108cc.0) 00000067 pinctrl-single

I have also tried setting the pins as 0x37 just in case, with no difference:

cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins
registered pins: 142
...
pin 50 (44e108c8.0) 00000037 pinctrl-single
pin 51 (44e108cc.0) 00000037 pinctrl-single

Any idea what I am doing wrong in 4.1.10?

Thank you.

Best regards,
Nikos