Device tree pin mux doesn't match /sys/class/gpio when gpio is exported

24 views
Skip to first unread message

Matt

unread,
Aug 17, 2017, 6:16:28 PM8/17/17
to BeagleBoard
I have a custom DTS I use for a custom cape on the BBB.

The .dts file compiles well, I move the .dtbo to /lib/firmware, and then run

sudo update-initramfs -uk `uname -r`

In /boot/uEnv.txt I have listed my custom overlay:

cat /boot/uEnv.txt 
uname_r=4.4.16-bone-rt-r11
####################uuid=81b9a3e8-1ff6-4797-b2eb-f4517ab96628
dtb=am335x-boneblack-emmc-overlay.dtb
cape_enable=bone_capemgr.enable_partno=BB-APA-01,BB-ADC
uuid=1b14b637-50ab-491b-9568-ace879cb1ef2


After the BBB boots I can see my pins muxed correctly.

For example, in my .dts file I have a line for P9_17 to be an output, pulled, pulled:

0x15c 0x17 /* P9_17 87 |

I can look at this pin and see GPIO 87 matches what my .dtbo is telling to be:
cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins | grep 87
pin 28 (44e10870.0) 00000026 pinctrl-single 
pin 29 (44e10874.0) 00000006 pinctrl-single 
pin 30 (44e10878.0) 0000000f pinctrl-single 
pin 31 (44e1087c.0) 0000000f pinctrl-single 
pin 87 (44e1095c.0) 00000017 pinctrl-single 


However, when the BBB boots and go export gpio 87 and look at its direction I see at as an input:

root:gpio# echo 87 > export 
root:gpio# cat gpio87/direction 
in

Why is that? 

Thanks in advance

Reply all
Reply to author
Forward
0 new messages