why to do
今天做试验,发现节点中的信息读不到,就想看一下,这函数是否递归搜索。
这个函数
/* 提取GPIO */
for (i = 0; i < KEY_NUM; i++) {
imx6uirq.irqkeydesc[i].gpio = of_get_named_gpio(imx6uirq.nd ,"key-gpio", i);
if (imx6uirq.irqkeydesc[i].gpio < 0) {
printk("can't get key%d\r\n", i);
}
}
正确写法
interrupt_keys: interrupt_keys{
#address-cells = <1>;
#size-cells = <1>;
compatible = "atkalpha-key";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_keys>;
key-gpio = <&gpio1 18 GPIO_ACTIVE_LOW>; /* KEY0 */
interrupt-parent = <&gpio1>;
interrupts = <18 IRQ_TYPE_EDGE_BOTH>; /* FALLING RISING */
status = "okay";

文章讲述了在嵌入式系统开发中,如何使用LinuxGPIOAPI从设备节点中正确获取GPIO信息,以及在编写代码时需要注意的递归搜索和结构组织问题。重点讨论了of_get_named_gpio和of_parse_phandle_with_args函数的使用和结构定义的变化对GPIO访问的影响。
最低0.47元/天 解锁文章
8442





