• Joel Stanley's avatar
    pinctrl: aspeed: Revert "Force to disable the function's signal" · 606d4ef4
    Joel Stanley authored
    This reverts commit cf517fef.
    
    The commit cf517fef ("pinctrl: aspeed: Force to disable the
    function's signal") exposed a problem with fetching the regmap for
    reading the GFX register.
    
    The Romulus machine the device tree contains a gpio hog for GPIO S7.
    With the patch applied:
    
      Muxing pin 151 for GPIO
      Disabling signal VPOB9 for VPO
      aspeed-g5-pinctrl 1e6e2080.pinctrl: Failed to acquire regmap for IP block 1
      aspeed-g5-pinctrl 1e6e2080.pinctrl: request() failed for pin 151
    
    The code path is aspeed-gpio -> pinmux-g5 -> regmap -> clk, and the
    of_clock code returns an error as it doesn't have a valid struct clk_hw
    pointer. The regmap call happens because pinmux wants to check the GFX
    node (IP block 1) to query bits there.
    
    For reference, before the offending patch:
    
      Muxing pin 151 for GPIO
      Disabling signal VPOB9 for VPO
      Want SCU8C[0x00000080]=0x1, got 0x0 from 0x00000000
      Disabling signal VPOB9 for VPOOFF1
      Want SCU8C[0x00000080]=0x1, got 0x0 from 0x00000000
      Disabling signal VPOB9 for VPOOFF2
      Want SCU8C[0x00000080]=0x1, got 0x0 from 0x00000000
      Enabling signal GPIOS7 for GPIOS7
      Muxed pin 151 as GPIOS7
      gpio-943 (seq_cont): hogged as output/low
    
    We can't skip the clock check to allow pinmux to proceed, because the
    write to disable VPOB9 will try to set a bit in the GFX register space
    which will not stick when the IP is in reset. However, we do not want to
    enable the IP just so pinmux can do a disable-enable dance for the pin.
    
    For now, revert the offending patch while a correct solution is found.
    
    Fixes: cf517fef ("pinctrl: aspeed: Force to disable the function's signal")
    Link: https://github.com/openbmc/linux/issues/218Signed-off-by: default avatarJoel Stanley <joel@jms.id.au>
    Link: https://lore.kernel.org/r/20230130220845.917985-1-joel@jms.id.auSigned-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    606d4ef4
pinctrl-aspeed.c 15.6 KB