主题中讨论的其他器件:TCA8418、 AM4372
工具/软件:Linux
您好!
我尝试将 GPIO 连接为中断线路。 相关器件树部件如下所示:
GPIO0_PINS_DEFAULT:GPIO0_PINS_DEFAULT{
pinctrl-single、pins =<
0x1a8 (PIN_INPUT_PULLUP | MUX_MODE9)/*(M25) McASP0_axr1.GPIO0[2]*
0x1ac (PIN_INPUT_PULLUP | MUX_MODE9)/*(L24) McASP0_ahclkx.GPIO0[3]*/
0x158 (PIN_INPUT_PULLUP | MUX_MODE7)/*(T21) spi0_D1.GPIO0[4]*/
0x15c (PIN_INPUT_PULLUP | MUX_MODE7)/*(T20) spi0_cs0.GPIO0[5]*/
0x1a0 (PIN_INPUT_PULLUP | MUX_MODE9)/*(L23) McASP0_aclkr.GPIO0[18]*/
0x1a4 (PIN_INPUT_PULLUP | MUX_MODE9)/*(K23) McASP0_fsr.GPIO0[19]*/
0x264 (PIN_INPUT_PULLUP | MUX_MODE9)/*(P22) SPI2_d0.GPIO0[20]*/
0x268 (PIN_INPUT_PULLUP | MUX_MODE9)/*(P20) SPI2_D1.GPIO0[21]*/
>;
};
TCA8418:TCA8418@34{
兼容="ti、TCA8418";
reg =<0x34>;
interrupt-parent =<&GPIO0>;
中断=<21 0x01>; //GPIO0_21被配置为中断
键盘、num-rows =<5>;
键盘、num 列=<4>;
linux、keymap =<
0x0306003b
0x06000111>;
状态="正常";
};
GPIO0{&gpio0}
pinctrl-names ="default";
pinctrl-0 =<&GPIO0_PINS_DEFAULT>;
状态="正常";
};
该驱动程序配置无任何错误(使用 printk 进行检查)。 中断会添加到/proc/interrupt 中
95: 0 48320.GPIO 24边缘 TCA8418
但是、永远不会调用中断。
在/sys/kernel/debug/pinctrl/44e10800.pinmux/pinmux-pins 中、我们看到了这一点
引脚154 (PIN154):(MUX 未声明)(GPIO 未声明)
引脚154对应于 GPIO0_21、但显示 MUX 未声明。
为了纠正这一问题、我在 GPIO0中添加了以下内容
P21{
GPIO-hog;
GPIO =<21 GPIO_ACTIVE_HIGH_>;
输入;
线路名称="GPIO0_21";
};
添加上述行后、从未调用驱动程序的探测器函数。
我出了什么问题?
谢谢、
Rajat Rao