• Quentin Schulz's avatar
    pinctrl: ocelot: add support for interrupt controller · be36abb7
    Quentin Schulz authored
    This GPIO controller can serve as an interrupt controller as well on the
    GPIOs it handles.
    
    An interrupt is generated whenever a GPIO line changes and the
    interrupt for this GPIO line is enabled. This means that both the
    changes from low to high and high to low generate an interrupt.
    
    For some use cases, it makes sense to ignore the high to low change and
    not generate an interrupt. Such a use case is a line that is hold in a
    level high/low manner until the event holding the line gets acked.
    This can be achieved by making sure the interrupt on the GPIO controller
    side gets acked and masked only after the line gets hold in its default
    state, this is what's done with the fasteoi functions.
    
    Only IRQ_TYPE_EDGE_BOTH and IRQ_TYPE_LEVEL_HIGH are supported for now.
    Signed-off-by: default avatarQuentin Schulz <quentin.schulz@bootlin.com>
    Signed-off-by: Linus Walleij's avatarLinus Walleij <linus.walleij@linaro.org>
    be36abb7
pinctrl-ocelot.c 14.7 KB