问题描述
我想借助 DT 覆盖在我的 Raspberry Pi3 B+ Linux 中集成/加载 gpio-pca953x
驱动程序。该驱动程序是适用于各种芯片(即 TCA6416)的通用 I²C 控制 I/O 扩展器 gpio 驱动程序。我设法创建了一个启用驱动程序的 dts 覆盖。
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2835","brcm,bcm2708",bcm2709";
fragment@0 {
target = <&i2c1>;
__overlay__ {
status = "okay";
};
};
fragment@1 {
target = <&i2c1>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
tca6416: tca6416@20 {
compatible = "ti,tca6416";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
interrupt-parent = <&gpio>;
interrupts = <18 0x02>; //IRQ_TYPE_EDGE_FALLING
};
};
};
};
有一个新的 gpiochip /sys/class/gpio/gpiochip488 并且中断似乎也有效。
我认为下一个简单的步骤是在 gpio-keys
模块的帮助下创建一个虚拟输入设备。但似乎我错了。
我创建了另一个这样的 DT 覆盖:
fragment@1 {
target-path = "/soc";
__overlay__ {
gpio: gpio-button {
compatible = "gpio-keys";
autorepeat;
button@14 {
label = "TestKey";
linux,code = <14>;
gpios = <&tca6416 0 1>;
};
};
};
};
但是这次这个叠加层永远无法加载。我得到的错误始终是在实时设备树符号表中找不到符号 tca6416。我在这里做错了什么?是否有任何工作示例?我还尝试将上面 gpios
中的 tca6416 替换为 gpio488 或任何其他可能的名称。两个都不行。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)