• Hans de Goede's avatar
    pinctrl: sunxi: Fix A33 external interrupts not working · 3e9aeba1
    Hans de Goede authored
    commit 5e7515ba upstream.
    
    pinctrl-sun8i-a33.c (and the dts) declare only 2 interrupt banks,
    where as the closely related a23 has 3 banks. This matches with the
    datasheet for the A33 where only interrupt banks B and G are specified
    where as the A23 has banks A, B and G.
    
    However the A33 being the A23 derative it is means that the interrupt
    configure/status io-addresses for the 2 banks it has are not changed
    from the A23, iow they have the same address as if bank A was still
    present. Where as the sunxi pinctrl currently tries to use the A23 bank
    A addresses for bank B, since the pinctrl code does not know about the
    removed bank A.
    
    Add a irq_bank_base parameter and use this where appropriate to take
    the missing bank A into account.
    
    This fixes external interrupts not working on the A33 (tested with
    an i2c touchscreen controller which uses an external interrupt).
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Acked-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
    3e9aeba1
pinctrl-sunxi.h 6.78 KB