• Billy Tsai's avatar
    pinctrl: aspeed: Force to disable the function's signal · cf517fef
    Billy Tsai authored
    When the driver want to disable the signal of the function, it doesn't
    need to query the state of the mux function's signal on a pin. The
    condition below will miss the disable of the signal:
    Ball | Default | P0 Signal | P0 Expression               | Other
    -----+---------+-----------+-----------------------------+----------
     E21   GPIOG0    SD2CLK      SCU4B4[16]=1 & SCU450[1]=1    GPIOG0
    -----+---------+-----------+-----------------------------+----------
     B22   GPIOG1    SD2CMD      SCU4B4[17]=1 & SCU450[1]=1    GPIOG1
    -----+---------+-----------+-----------------------------+----------
    Assume the register status like below:
    SCU4B4[16] == 1 & SCU4B4[17] == 1 & SCU450[1]==1
    After the driver set the Ball E21 to the GPIOG0:
    SCU4B4[16] == 0 & SCU4B4[17] == 1 & SCU450[1]==0
    When the driver want to set the Ball B22 to the GPIOG1, the condition of
    the SD2CMD will be false causing SCU4B4[17] not to be cleared.
    Signed-off-by: default avatarBilly Tsai <billy_tsai@aspeedtech.com>
    Acked-by: default avatarAndrew Jeffery <andrew@aj.id.au>
    Link: https://lore.kernel.org/r/20220818101839.28860-1-billy_tsai@aspeedtech.comSigned-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    cf517fef
pinctrl-aspeed.c 15.5 KB