内核驱动编程------一个模块包含多个中断线资源

前段时间在新平台上写一个自定义的驱动模块,里面包含多个中断线, 在编写驱动的时候找device tree里面定义和驱动程序中获取中断资源的

api选择上花了点时间。


device tree 里面一个节点有多个中断线,定义方式:

interrupts = <0 29 1>, <0 30 1>, <0 32 1>;

这里第三个参数表示的是中断触发方式, 但是实际调试时, 虽然这里设置了,但是没有真正起作用, 这真起作用的地方是在request_irq(...)

第三个参数决定的。


如果模块中只有单一中断线, 则获取中断资源的api一般可用

platform_get_resource(...)

对于我遇到的有多个中断线的情况则不行, 后面查的可用

irq_of_parse_and_map(struct device_node *dev,  int index)

index这个参数是个序号, 和device tree 里面 interrupts属性里面定义的中断线对应(第一个资源对应的index是0, 紧接着是1, 以此类推)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值