0
点赞
收藏
分享

微信扫一扫

T113 i2c gpio拓展芯片xl9555开发应用笔记

T113 i2c gpio拓展芯片xl9555开发应用笔记_设备树

T113 i2c gpio拓展芯片xl9555开发应用笔记

参考资料

内核添加支持

设备树引用

应用调用

内核添加支持

xl9555可使用 pca9555驱动,在设备树使能pca9555节点,参考如下:

T113 i2c gpio拓展芯片xl9555开发应用笔记_引脚_02

内核驱动:/kernel/drivers/gpio/gpio-pca953x.c

make menuconfig配置编译 CONFIG_GPIO_PCA953X=y

或拷贝出来手动编译成模块加载

注意这里的i2c地址由硬件A0-A2接线决定

T113 i2c gpio拓展芯片xl9555开发应用笔记_设备树_03

T113 i2c gpio拓展芯片xl9555开发应用笔记_参考资料_04

T113 i2c gpio拓展芯片xl9555开发应用笔记_引脚_05

设备树引用

例如把XL9555_IO P07,P11扩展成LED灯,在设备树中可做如下引用。

T113 i2c gpio拓展芯片xl9555开发应用笔记_引脚_06

注意xl9555没有P08,P09,因此P10对应gpio_ext 8 ,P11对应gpio_ext 9 ,以此列推。

P0-- gpio_ext 0

P1-- gpio_ext 1

P2-- gpio_ext 2

P3-- gpio_ext 3

P4-- gpio_ext 4

P5-- gpio_ext 5

P6-- gpio_ext 6

P7-- gpio_ext 7

P10-- gpio_ext 8

P11-- gpio_ext 9

P12-- gpio_ext 10

系统启动后可使用标准控制LED方法控制

控制高低

echo 1 > /sys/class/leds/led1/brightness

echo 1 > /sys/class/leds/led2/brightness

闪烁

echo timer > /sys/class/leds/led1/trigger

echo timer > /sys/class/leds/led2/trigger


应用调用

在 /sys/class/gpio 目录下生成1组新的引脚gpiochip400

root@/ # ls /sys/class/gpio

export gpio402 gpio403 gpiochip0 gpiochip400 unexport

此时可像操作soc内部引脚的方法控制具体的GPIO

注意这里的xl9555的 Pn对应 GPIO的 400+n

xl9555没有P08,P09,因此P10对应gpio_ext 8 ,P11对应gpio_ext 9 ,以此列推。

例如控制XL9555_IO的 P07,P11

可用如下指令

P07 400+7=407

echo 407 > /sys/class/gpio/export

echo out > /sys/class/gpio/gpio407/direction

echo 1 > /sys/class/gpio/gpio407/value

P11 400+11-2=409

echo 409 > /sys/class/gpio/export

echo out > /sys/class/gpio/gpio409/direction

echo 1 > /sys/class/gpio/gpio409/value

-END-

举报

相关推荐

0 条评论