Question about Device Tree and GPIOs

Hi,

I have been reading/testing information regarding Device Tree, GPIOs since I updated to 3.14, where bone_capemgr.* has dissapaeared, trying to understand how everything works. I have been surfing around this board and I have some ideas about how it works, but I haven’t figured out it yet.

I have attached a proto board and I created the device tree and loaded it using the dtb option in uEnv.txt. I think that it’s loaded correctly because I disabled the can ports and they aren’t loaded anymore.

I have the following two paths:

/sys/devices/44e10000.control_module
/sys/devices/44e10800.pinmux

And these paths too:

/sys/devices/ocp/.gpio|.i2c etc… ( = 40300000 … 56000000)
/sys/devices/ocp/cape-universal
/sys/devices/ocp/ocp:.pinmux ( = P8_07 … P9_91)

And finally regarding GPIOs:

/sys/class/gpio/export
/sys/class/gpio/gpiochip* (* = 0, 32, 64, 96)
/sys/class/gpio/unexport

I can use the GPIOs after exporting them, and the behaviour is correct, so as I said, everything looks that works fine.

Questions:

  • Is everything correct this way ?
  • How can I export gpio pins at boot so I have them available ? Is there any option in u-boot/kernel for this ? Should I create systemd service ?
  • I have been reading about beaglebone-black-pinmux and beaglebone-universal-io too, how they fit in this setup ? Is config-pin related with exporting gpios on boot ?

Thank you,

Best regards,

Hi Inigo

I have been surfing around this board and I have some ideas about how it works, but I haven’t figured out it yet.

It is quite a complex topic. I too spent a quite some time trying to figure out the Device Tree and once I thought I had an understanding I wrote up my notes afterwards. Perhaps you will find the document below provides some useful background. Basically its contents are the information I wish I had when I was first trying to figure out the Device Tree.

http://ofitselfso.com/BeagleNotes/AboutTheDeviceTree.pdf

Cheers
Nic

I have spent some time reading the document. I still have some things, not present in the document, I want to figure out first, like the new cape manager for 3.14, but the document had clarified some ideas.

Thank you :slight_smile: