linux-stable/drivers/pinctrl/aspeed
Joel Stanley 606d4ef492 pinctrl: aspeed: Revert "Force to disable the function's signal"
This reverts commit cf517fef60.

The commit cf517fef60 ("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: cf517fef60 ("pinctrl: aspeed: Force to disable the function's signal")
Link: https://github.com/openbmc/linux/issues/218
Signed-off-by: Joel Stanley <joel@jms.id.au>
Link: https://lore.kernel.org/r/20230130220845.917985-1-joel@jms.id.au
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2023-01-30 23:51:03 +01:00
..
Kconfig pinctrl: aspeed: fix unmet dependencies on MFD_SYSCON for PINCTRL_ASPEED 2021-12-16 04:28:49 +01:00
Makefile pinctrl: aspeed: Add AST2600 pinmux support 2019-08-05 12:41:18 +02:00
pinctrl-aspeed-g4.c pinctrl: aspeed: Use masks to describe pinconf bitfields 2019-12-13 09:40:37 +01:00
pinctrl-aspeed-g5.c pinctrl: aspeed: Fix minor documentation error 2021-05-19 02:11:18 +02:00
pinctrl-aspeed-g6.c pinctrl: pinctrl-aspeed-g6: add FWQSPI function-group 2022-04-13 11:53:52 +09:30
pinctrl-aspeed.c pinctrl: aspeed: Revert "Force to disable the function's signal" 2023-01-30 23:51:03 +01:00
pinctrl-aspeed.h pinctrl: aspeed-g6: Add AST2600 pinconf support 2019-12-13 09:41:01 +01:00
pinmux-aspeed.c pinctrl: aspeed: placate kernel-doc warnings 2021-08-10 15:29:44 +02:00
pinmux-aspeed.h pinctrl: aspeed: Fix typo in comment 2022-06-28 14:30:11 +02:00