在3.14及之后的linux中对gpio提供了sysfs接口,说明文档:Documents/gpio/sysfs.txt。

Platforms which use the "gpiolib" implementors framework may choose to configure a sysfs user interface to GPIOs.This is different from the debugfs interface, since it provides control over GPIO direction and value instead of just showing a gpio state summary. Plus, it could be present on production systems without debugging support.

Note that standard kernel drivers exist for common "LEDs and Buttons" GPIO tasks:  "leds-gpio" and "gpio_keys", respectively. Use those instead of talking directly to the GPIOs; they integrate with kernel frameworks better than your userspace code could.

1. 目录

/sys/class/gpio

2. 操作

1) echo 29 > export
2) 此时会产生一个gpio29 的目录.
3) cd gpio29
4) 关注以下几个文件:
        direction 这个文件是控制你是输出还是输入模式
                如果想设置为输入:echo in > direction
                如果想设置为输出:echo out > direction
        value 这个文件是在输出模式时,控制高低电平
                高电平:echo 1 > value
                低电平:echo 0 > value
        edge 这个控制中断触发模式
                无: echo none > edge
                上升沿触发:echo rising > edge
                下降沿触发:echo falling > edge
                轮询:echo both > edge
        active_low: 这个按照官方的说法是这个翻转电平,输入非零的数即上升沿变为下降沿。
                o: echo 0 > active_low
                非零的数: echo 3 > active_low
5)关闭这个GPIO控制。
        cd /sys/class/gpio/
        echo 29 > unexport