Skip to content
  • Robert Jarzmik's avatar
    gpio: pxa: fix legacy non pinctrl aware builds again · 70cdb6ad
    Robert Jarzmik authored and Linus Walleij's avatar Linus Walleij committed
    As pointed out by Gregor, spitz keyboard matrix is broken, with or
    without CONFIG_PINCTRL set, quoting :
    "The gpio matrix keypard on the Zaurus C3x00 (see spitz.c) does not work
    properly. Noticeable are that rshift+c does nothing where as lshift+c
    creates C.  Opposite it is for rshift+a vs lshift+a, here only rshift
    works. This affects a few other combinations using the rshift or lshift
    buttons."
    
    As a matter of fact, as for platform_data based builds CONFIG_PINCTRL=n
    is required for now (as opposed for devicetree builds where it should be
    set), this means gpio driver should change the direction, which is what
    was attempted by commit c4e5ffb6 ("gpio: pxa: fix legacy non pinctrl
    aware builds").
    
    Unfortunately, the input case was inverted, and the direction change was
    never done. This wasn't seen up until now because the initial platform
    setup (MFP) was setting this direction. Yet in Gregory's case, the
    matrix-keypad driver changes back and forth the direction dynamically,
    and this is why he's the first to report it.
    
    Fixes: c4e5ffb6
    
     ("gpio: pxa: fix legacy non pinctrl aware builds")
    Tested-by: default avatarGreg <greguu@null.net>
    Signed-off-by: default avatarRobert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    70cdb6ad