VAR-SOM-AM43 GPIO: Difference between revisions

From Variscite Wiki
Line 33: Line 33:


GPIOs 510-511, platform/50000000.gpmc, omap-gpmc:
GPIOs 510-511, platform/50000000.gpmc, omap-gpmc:
</pre>
</pre>
Each GPIO is defined as in or out and the state is shown as lo or hi.
Each GPIO is defined as in or out and the state is shown as lo or hi.

Revision as of 16:56, 23 December 2015

VAR-SOM-AM43 - GPIO


GPIO state

The current state of the systems' GPIOs can be obtained in user-mode, as shown in the following example:

$ cat /sys/kernel/debug/gpio

The above command on Variscite's VAR-DVK-AM43 will show the following:

varsomam43 login: root
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 , SD-Card card-detect:
When SD-Card is removed the state will be:

 gpio-60  (cd                  ) in  hi IRQ

When the SD-Card is plugged the state will be:

 gpio-60  (cd                  ) in  lo IRQ

Manipulating a single GPIO via /sys/class/gpio

GPIOs in i.MX6 are grouped in groups of 32 pins.
For example GPIO1_3 belong to the first group pin 3. Its absolute number will be 3.
GPIO7_4 will be (7-1)*32+4=196.
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:

$ echo 196 > /sys/class/gpio/export
$ echo out > /sys/class/gpio/gpio196/direction

Set GPIO high:

$ echo 1 > /sys/class/gpio/gpio196/value

Set GPIO low:

$ echo 0 > /sys/class/gpio/gpio196/value

To configure as input:

$ echo 196 > /sys/class/gpio/export
$ echo in > /sys/class/gpio/gpio196/direction
$ cat /sys/class/gpio/gpio196/value

Will read the current value.


Reference reading

http://processors.wiki.ti.com/index.php/Linux_PSP_GPIO_Driver_Guide