如何处理来自GPIO扩展器(PCA953X)的中断

时间:2016-12-20 11:51:22

标签: nested interrupt gpio expander

我使用像PCA9575这样的GPIO扩展器。 但我不知道如何处理扩展器的中断..

从gpio-pca953x.c中,以下代码是扩展器的ISR。

static irqreturn_t pca953x_irq_handler(int irq, void *devid)
{
    struct pca953x_chip *chip = devid;
    uint16_t pending;
    uint16_t level;

    pending = pca953x_irq_pending(chip);

    if (!pending)
        return IRQ_HANDLED;

    do {
        level = __ffs(pending);
        handle_nested_irq(level + chip->irq_base);

        pending &= ~(1 << level);
    } while (pending);

    return IRQ_HANDLED;
}

如果从扩展器的GPIO(输入)引脚3激活中断,则该例程从该ISR跳转到GPIO引脚3服务程序。不是吗?

如果是这样,我有以下问题.. 如何注册GPIO Pin 3服务程序??

如果没有,如何处理GPIO Pin 3服务程序??

感谢您的阅读。

0 个答案:

没有答案