SYSFS does not agree with FDT

Hi all,

I am looking at device tree values for pin P8.43-P8.46 which are GPIO 72, 73, 70, and 71 respectively (address=offset 0x44e10+ 8a8, 8ac, 8a0, and 8a4 respectively).
when I check the mode I see:


root@arm:/sys/class/gpio/gpio72# cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins | grep 8a8
pin 42 (44e108a8.0) 00000017 pinctrl-single

now 00000017 means Output GPIO with pull up. However,


root@arm:/sys/class/gpio/gpio72# cat direction


So, device tree shows me that this pins are output but sysfs is showing they are input. The hardware actually shows that the sysfs file is accurate and when I change the direction to output, I can verify that pin has been changed to output.
Does anyone have any ideas where this inconsistency is coming from? I want to initialize my pins to start as output hi at the boot time and do not wait for sysfs. what is the recommended approach?


ubuntu@arm:~$ uname -a
Linux arm 3.15.10-bone8 #9 Fri Nov 14 15:37:27 PST 2014 armv7l armv7l armv7l GNU/Linux

By the way, is it possible to recompile the device tree on the same beaglebone black that we are working on and reboot it rather than doing it at building the Kernel time? I am not talking about overlay and changing on the fly. I want to compile dts with dtc and reboot the system to use the generated dtb.

Best regards,