VAR-SOM-AM43 GPIO: Difference between revisions

From Variscite Wiki
(Created page with "{{PageHeader|VAR-SOM-AM43 - GPIO}} {{DocImage|category1=VAR-SOM-AM33|category2=Yocto}} __toc__ = GPIO state = The current state of the systems' GPIOs can be obtained in user...")
 
Line 8: Line 8:
The above command on Variscite's VAR-DVK-AM43 will show the following:
The above command on Variscite's VAR-DVK-AM43 will show the following:
<pre>
<pre>
root@varsomam33:~# cat /sys/kernel/debug/gpio
varsomam43 login: root
root@varsomam43:~# cat /sys/kernel/debug/gpio
GPIOs 0-31, platform/44e07000.gpio, gpio:
GPIOs 0-31, platform/44e07000.gpio, gpio:
gpio-6  (cd                  ) in  lo IRQ


GPIOs 32-63, platform/4804c000.gpio, gpio:
GPIOs 32-63, platform/4804c000.gpio, gpio:
  gpio-60 (cd                  ) in lo IRQ
  gpio-48 (kim                ) out lo
gpio-52 (vmmcwl_fixed        ) out lo


GPIOs 64-95, platform/481ac000.gpio, gpio:
GPIOs 64-95, platform/481ac000.gpio, gpio:
gpio-82  (wp                  ) in  lo


GPIOs 96-127, platform/481ae000.gpio, gpio:
GPIOs 96-127, platform/481ae000.gpio, gpio:
  gpio-100 (button0            ) in  hi IRQ
 
  gpio-105 (kim                 ) out lo
GPIOs 128-159, platform/48320000.gpio, gpio:
  gpio-117 (wlan-en-regulator  ) out lo
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:
GPIOs 510-511, platform/50000000.gpmc, omap-gpmc:
gpio-510 (ready              ) in  hi
 
root@varsomam33:~#
   
   
</pre>
</pre>
Line 37: Line 46:
  gpio-60  (cd                  ) in  lo IRQ
  gpio-60  (cd                  ) in  lo IRQ
</pre>
</pre>


= Manipulating a single GPIO via /sys/class/gpio =
= Manipulating a single GPIO via /sys/class/gpio =

Revision as of 16:55, 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