• Nikolaus Voss's avatar
    gpio: adp5588.c: Switch to events system · 5d643eda
    Nikolaus Voss authored
    Interupts were generated using GPIN interrupts of
    ADP5588. These interrupts have two important limitations:
    1. Interrupts can only be generated for either rising or
       falling edges but not both.
    2. Interrupts are reasserted as long as the interrupt condition
       persists (i.e. high or low level on that GPIN). This generates
       lots of interrupts unless the event is very short.
    
    To overcome this, ADP5588 provides an event system which queues
    up to 10 events in a buffer. GPIN events are queued whenever the
    GPIN is asserted or deasserted. This makes it possible to support
    generating GPIN interrupts for both edges and to generate only one
    interrupt per state change.
    Thus it is possible to chain the gpio-keys driver for some GPIOs.
    Signed-off-by: default avatarNikolaus Voss <nikolaus.voss@loewensteinmedical.de>
    Acked-by: default avatarMichael Hennerich <michael.hennerich@analog.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    5d643eda
gpio-adp5588.c 11.1 KB