GPIO

文档参考

Linux_GPIO_开发指南.pdf

DTS

Android SDK

longan/device/config/chips/a133/configs/c3/kickpi-k5.dts  
longan/device/config/chips/a133/configs/c3/kickpi-k5c.dts

Linux SDK

device/config/chips/a133/configs/c3/kickpi-k5.dts  
device/config/chips/a133/configs/c3/kickpi-k5c.dts

sunxi-gpio.h (4.9)

include/linux/sunxi-gpio.h

dts gpios 配置解析

gpios = <&pio   PH 0x8 0x0 0x1 0x0 0x1>;
gpios = <&r_pio PL 0x4 0x0 0x1 0x0 0x1>;
gpios = <&A		B  C   D   E   F   G>;

&A &pio/&r_pio 指定 pio,属于 cpus 要用 &r_pio (PL之后的)

B PH/PL 指定 gpio 的 bank

C 0x8/0x4 指定 bank 中的哪个引脚

D 复用类型

E 上下拉,值为 0x1 时采用默认值

F 驱动能力,值为 0x0 时采用默认值

G 输出电平,只用 output 才有效

PIN 控制

sys gpio控制

当存在将拓展引脚配置为输入的需求,默认软件的gpio-led不能满足需求。需要将GPIO释放出来,通过/sys/class/gpio进行控制。

步骤一

先将对应GPIO引脚注释,/sys/class/gpio/export 只能导入未注册的 gpio

比如PH8,如需其他引脚,一样在 leds 结点下注释即可 , 下面内容都以PH8 做举例

步骤二

​ 编译镜像,重新烧录

步骤三

​ 确认gpio未被注册

​ 能够看到PH8未被使用,且对应 pin 值为 232

步骤四

​ 通过 /sys/class/gpio/export 注册 PH8 并进行控制

​ 通过结点下的内容控制 gpio , 常用如下

sunxi gpio debug 控制

查看 pin 的配置

配置 pin 为 gpio 模式

修改 pin 的上拉属性

查看修改情况

查看 pin 电平

注意:

切换 pio

切换 r_pio (当操作PL及之后的pin , 需要切换 r_pio 的设备, 否则操作失败)

Last updated