我使用像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服务程序??
感谢您的阅读。