T113 i2c gpio拓展芯片xl9555开发应用笔记
注意xl9555没有P08,P09,因此P10对应gpio_ext 8 ,P11对应gpio_ext 9 ,以此列推。xl9555没有P08,P09,因此P10对应gpio_ext 8 ,P11对应gpio_ext 9 ,以此列推。例如把XL9555_IO P07,P11扩展成LED灯,在设备树中可做如下引用。在 /sys/class/gpio 目录下生成1组新的引脚。注意这里的xl9555的 P
T113 i2c gpio拓展芯片xl9555开发应用笔记
参考资料
XL9555_I_O扩展器.PDF
扩展 IO pca95555 linux驱动 及使用_linux pca9555-CSDN博客
内核添加支持
xl9555可使用 pca9555驱动,在设备树使能pca9555节点,参考如下:
gpio_ext: i2c_gpio@24 {
compatible = "nxp,pca9555";
reg = <0x24>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pca9505>;
interrupt-parent = <&pio>;
interrupts = <PH 4 IRQ_TYPE_LEVEL_LOW>;
gpio-controller;
#gpio-cells = <2>;
status = "okay";
};
内核驱动:/kernel/drivers/gpio/gpio-pca953x.c
make menuconfig配置编译 CONFIG_GPIO_PCA953X=y
或拷贝出来手动编译成模块加载
注意这里的i2c地址由硬件A0-A2接线决定



设备树引用
例如把XL9555_IO P07,P11扩展成LED灯,在设备树中可做如下引用。
leds {
compatible = "gpio-leds";
status = "okay";
led_1 {
label = "led1";
gpios = <&gpio_ext 7 GPIO_ACTIVE_LOW>;
};
led_2 {
label = "led2";
gpios = <&gpio_ext 9 GPIO_ACTIVE_LOW>;
};
}
注意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
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)