驱动:
内核驱动:/kernel/drivers/gpio/gpio-pca953x.c
make menuconfig配置编译
或拷贝出来手动编译成模块加载
设备树:使用2个芯片,在同一i2c总线下,地址不同
&i2c2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c2m1_xfer>;
pca9555_20: pca9555_20@20 {
compatible = "nxp,pca9555";
reg = <0x20>;
};
pca9555_21: pca9555_21@1 {
compatible = "nxp,pca9555";
reg = <0x21>;
};
};
加载驱动后,会进入2次probe
在 /sys/class/gpio 目录下生成2组新的引脚
此时可像操作mcu内部引脚的方法控制具体的IO
echo 479 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio479/direction
echo 1 > /sys/class/gpio/gpio479/value