====== Using GPIO from sysfs ====== ==== Where to find GPIO's in sysfs ==== GPIO's are listed under **/sys/class/gpio** ==== Calculate Linux GPIO Number Freescale i.MX Processor Family ==== Linux GPIO Number = <**GPIO_bank** – 1> × 32 + <**GPIO Port number**> ++++ example | GPIO2_04 = (2 - 1) * 32 + 4 = GPIO 36 (Linux) ++++ ==== Calculate Linux GPIO Number Texas Instruments Sitara Family ==== Linux GPIO Number = <**GPIO_bank** x 32> + <**GPIO Port number**> ++++ example | GPIO2_04 = 2 x 32 + 4 = GPIO 64 (Linux) ++++ ==== Set GPIO as output ==== root@MBaXXX:~ echo >/sys/class/gpio/export // export GPIO pin root@MBaXXX:~ echo out > /sys/class/gpio/gpio/direction // set GPIO direction root@MBaXXX:~ echo 1 > /sys/class/gpio/gpio/value // toggle GPIO to high root@MBaXXX:~ echo 0 > /sys/class/gpio/gpio/value // toggle GPIO to low ++++ example | root@MBaXXX:~ echo 34 >/sys/class/gpio/export root@MBaXXX:~ echo out >/sys/class/gpio/gpio34/direction root@MBaXXX:~ echo 1 > /sys/class/gpio/gpio34/value root@MBaXXX:~ echo 0 > /sys/class/gpio/gpio34/value ++++ ==== Set GPIO as Input ==== root@MBaXXX:~ echo „" >/sys/class/gpio/export // export GPIO pin root@MBaXXX:~ echo in > /sys/class/gpio/gpio/direction // set GPIO direction root@MBaXXX:~ cat /sys/class/gpio/gpio/value // read GPIO value ++++ example | root@MBaXXX:~ echo 34 > /sys/class/gpio/export root@MBaXXX:~ echo in > /sys/class/gpio/gpio34/direction root@MBaXXX:~ cat /sys/class/gpio/gpio34/value ++++ ====== Using GPIO in U-Boot ====== Tested with TQMa28 It is possible to toggle the GPIO's in U-Boot with the gpio command. To use gpio command the desired gpio pin number has to be given as parameter to the command. The following bitmask applies to GPIO pin number in U-Boot:\\ [PPPP P_BBB] P = pin, B = bank For example we toggle GPIO0_24 on MBa28 GPIO0_24 = GPIO Bank 0, Pin 24, GPIO0_24 = 11000