MXC GPIO 设备驱动代码解析:设备识别与中断处理
这段代码定义了一个结构体数组 static const struct of_device_id mxc_gpio_dt_ids[] = { ... },其中包含了不同型号的 GPIO 设备的兼容性字符串和对应的设备类型。例如,{ .compatible = 'fsl,imx1-gpio', .data = &mxc_gpio_devtype[IMX1_GPIO], } 表示兼容 fsl,imx1-gpio 的设备类型为 mxc_gpio_devtype[IMX1_GPIO]。
代码还定义了一个链表头节点 static LIST_HEAD(mxc_gpio_ports);,用于保存所有 GPIO 引脚的引用。这个链表在 MX2 型号中用于保存所有引脚的引用,以便中断处理器 mx2_gpio_irq_handler 能够遍历所有的中断状态寄存器。
具体来说,MX2 型号只有一个中断源,用于处理所有 GPIO 引脚的中断。为了能够准确地识别哪个引脚发生了中断,需要遍历所有引脚的中断状态寄存器。而 mxc_gpio_ports 链表则保存了指向所有引脚的引用,从而方便 mx2_gpio_irq_handler 遍历这些寄存器并找到发生中断的引脚。
原文地址: https://www.cveoy.top/t/topic/n6Iu 著作权归作者所有。请勿转载和采集!