GPIO¶
GPIO state¶
The current state of the systems' GPIOs can be obtained in user-mode, as shown in the following example:
The above command on Variscite's VAR-DVK-AM43 will show the following:
root@varsomam43:~# cat /sys/kernel/debug/gpio
GPIOs 0-31, platform/44e07000.gpio, gpio:
gpio-6 (cd ) in lo IRQ
GPIOs 32-63, platform/4804c000.gpio, gpio:
gpio-48 (kim ) out lo
gpio-52 (vmmcwl_fixed ) out lo
GPIOs 64-95, platform/481ac000.gpio, gpio:
GPIOs 96-127, platform/481ae000.gpio, gpio:
GPIOs 128-159, platform/48320000.gpio, gpio:
gpio-136 (? ) out lo
gpio-154 (? ) out lo
gpio-157 (ft5x06_irq_gpio ) in hi IRQ
GPIOs 160-191, platform/48322000.gpio, gpio:
gpio-164 (sw6 ) in hi IRQ
gpio-165 (sw5 ) in hi IRQ
gpio-166 (sw4 ) in hi IRQ
gpio-167 (vtt_fixed ) out hi
GPIOs 510-511, platform/50000000.gpmc, omap-gpmc:
Each GPIO is defined as in or out and the state is shown as lo or hi.
For example , SW4 the Menu Button:
When SW4 is pressed the state will be:
When SW4 is released the state will be:
Manipulating a single GPIO via /sys/class/gpio¶
GPIOs in the AM437X are grouped in 6 groups of 32 pins from GPIO0-GPIO5.
For example GPIO0_3 belongs to the first group pin 3. Its absolute number will be 3.
GPIO5_8 will be (5)*32+8=168.
Lets assume that you defined this GPIO in the device tree. We will show in the following sections how to define it.
To configure as output:
Set GPIO low:
Set GPIO high:
To configure as input:
Will read the current value.
Reference reading¶
http://processors.wiki.ti.com/index.php/Linux_PSP_GPIO_Driver_Guide