Linux中的GPIO引脚中断处理程序(arm)

时间:2010-12-07 13:49:56

标签: linux arm interrupt

有人能指出一些示例代码,用于启用和处理Linux中ARM9的用户引脚IO中断(C语言)吗?

我知道可能需要一个低级别的驱动程序,我只是想知道如何初始化它,然后在用户级别处理消息传递等。

我熟悉ARM中断和设备驱动程序(在Windows中),但我是linux编程的新手。

感谢

1 个答案:

答案 0 :(得分:3)

这实际上取决于您使用的实际BSP。 AFAIK在Linux中没有“通用ARM9 gpio中断”,它几乎是特定于板子的。例如。这是PCA100电路板的一个例子:

static int pca100_sdhc2_init(struct device *dev, irq_handler_t detect_irq,
                void *data)
{
        int ret;

        ret = request_irq(IRQ_GPIOC(29), detect_irq,
                          IRQF_DISABLED | IRQF_TRIGGER_FALLING,
                          "imx-mmc-detect", data);
        if (ret)
                printk(KERN_ERR
                        "pca100: Failed to reuest irq for sd/mmc detection\n");

        return ret;
}

static void pca100_sdhc2_exit(struct device *dev, void *data)
{
        free_irq(IRQ_GPIOC(29), data);
}