• Andrew Jeffery's avatar
    pinctrl: aspeed: Fix GPIO requests on pass-through banks · 7aeb3538
    Andrew Jeffery authored
    Commit 6726fbff19bf ("pinctrl: aspeed: Fix GPI only function problem.")
    fixes access to GPIO banks T and U on the AST2600. Both banks contain
    input-only pins and the GPIO pin function is named GPITx and GPIUx
    respectively. Unfortunately the fix had a negative impact on GPIO banks
    D and E for the AST2400 and AST2500 where the GPIO pass-through
    functions take similar "GPI"-style names. The net effect on the older
    SoCs was that when the GPIO subsystem requested a pin in banks D or E be
    muxed for GPIO, they were instead muxed for pass-through mode.
    Mistakenly muxing pass-through mode e.g. breaks booting the host on
    IBM's Witherspoon (AC922) platform where GPIOE0 is used for FSI.
    
    Further exploit the names in the provided expression structure to
    differentiate pass-through from pin-specific GPIO modes.
    
    This follow-up fix gives the expected behaviour for the following tests:
    
    Witherspoon BMC (AST2500):
    
    1. Power-on the Witherspoon host
    2. Request GPIOD1 be muxed via /sys/class/gpio/export
    3. Request GPIOE1 be muxed via /sys/class/gpio/export
    4. Request the balls for GPIOs E2 and E3 be muxed as GPIO pass-through
       ("GPIE2" mode) via a pinctrl hog in the devicetree
    
    Rainier BMC (AST2600):
    
    5. Request GPIT0 be muxed via /sys/class/gpio/export
    6. Request GPIU0 be muxed via /sys/class/gpio/export
    
    Together the tests demonstrate that all three pieces of functionality
    (general GPIOs via 1, 2 and 3, input-only GPIOs via 5 and 6, pass-through
    mode via 4) operate as desired across old and new SoCs.
    
    Fixes: 9b92f5c5 ("pinctrl: aspeed: Fix GPI only function problem.")
    Signed-off-by: default avatarAndrew Jeffery <andrew@aj.id.au>
    Tested-by: default avatarJoel Stanley <joel@jms.id.au>
    Reviewed-by: default avatarJoel Stanley <joel@jms.id.au>
    Cc: Billy Tsai <billy_tsai@aspeedtech.com>
    Cc: Joel Stanley <joel@jms.id.au>
    Link: https://lore.kernel.org/r/20201126063337.489927-1-andrew@aj.id.auSigned-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    7aeb3538
pinmux-aspeed.h 30.3 KB