linux如何通过设备树获取到中断号irq

念念有余 念念有余 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这几天看linux的中断,有很多不明白,向大神们请教。
request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
const char *name, void *dev)

对于中断申请函数中的第一个参数,irq,自己原本理解的是硬件手册上的中断号,后来发现不对,应该是linux内核中的IRQ号。
例如对于三星exynos4412芯片中的GPX1_1和GPX1_2对应的硬件中断号为25,26


在使用request_irq时第一个参数需要有个转换的过程,如下

 request_irq(IRQ_EINT(9),key_handler,IRQF_TRIGGER_FALLING,"KEY1",NULL);

完成对中断的申请。

现在不理解的是,在设备树形式下,如何来完成的,我是参考的这篇博客上http://blog.csdn.net/zqixiao_09/article/details/50916212(设备树)和http://blog.csdn.net/zqixiao_09/article/details/50908125(中断驱动)
设备树下的中断如下

驱动获取中断如下

代码的64 65行获取设备资源,然后67 68行拿出了资源的res->start就能直接赋值给irq参数了?platform_get_resource已经把硬件中断号转换为linux的中断号了吗?我理解的不知道对不对,如果是的话,这中间是个什么过程呢?
...全文
评论 4
收藏 已收藏
分享
返回顶部