【发布时间】:2019-01-09 06:27:55
【问题描述】:
我有一个 GPIO 外设,在设备树中定义如下:
gpio0: gpio@2300000
{
compatible = "fsl,qoriq-gpio";
reg = <0x0 0x2300000 0x0 0x10000>;
interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
我想为此编写一个中断处理程序(作为内核模块)。但是这个 IRQ 号 (66) 是一个硬件号,我需要一个虚拟的 Linux IRQ 号才能将它传递给request_irq。
我怎样才能得到这个数字?只有一个中断控制器(GIC)。
有没有办法在不编写平台设备驱动程序的情况下做到这一点(因为系统中可能已经有一个在工作,我想我无法注册另一个)。
【问题讨论】:
-
你想在这里达到什么目的?您是在尝试将 GPIO 转换为中断还是什么?
-
作者问如何从hw irq获取linux virtual irq
-
是的,我基本上是在 GPIO 引脚更改状态时尝试注册(请求)一个中断处理程序。
标签: linux linux-kernel driver linux-device-driver device