• Robert Jarzmik's avatar
    ARM: pxa: pxa_cplds: add lubbock and mainstone IO · aa8d6b73
    Robert Jarzmik authored
    Historically, this support was in arch/arm/mach-pxa/lubbock.c and
    arch/arm/mach-pxa/mainstone.c. When gpio-pxa was moved to drivers/pxa,
    it became a driver, and its initialization and probing happened at
    postcore initcall. The lubbock code used to install the chained lubbock
    interrupt handler at init_irq() time.
    
    The consequence of the gpio-pxa change is that the installed chained irq
    handler lubbock_irq_handler() was overwritten in pxa_gpio_probe(_dt)(),
    removing :
     - the handler
     - the falling edge detection setting of GPIO0, which revealed the
       interrupt request from the lubbock IO board.
    
    As a fix, move the gpio0 chained handler setup to a place where we have
    the guarantee that pxa_gpio_probe() was called before, so that lubbock
    handler becomes the true IRQ chained handler of GPIO0, demuxing the
    lubbock IO board interrupts.
    
    This patch moves all that handling to a mfd driver. It's only purpose
    for the time being is the interrupt handling, but in the future it
    should encompass all the motherboard CPLDs handling :
     - leds
     - switches
     - hexleds
    
    The same logic applies to mainstone board.
    
    Fixes: 157d2644 ("ARM: pxa: change gpio to platform device")
    Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
    Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
    aa8d6b73
pxa_cplds_irqs.c 4.82 KB