arm64: dts: rockchip: Split up RK3588's PCIe pinctrls
authorSam Edwards <cfsworks@gmail.com>
Sat, 4 Jan 2025 01:57:01 +0000 (01:57 +0000)
committerTom Rini <trini@konsulko.com>
Sat, 11 Jan 2025 00:56:17 +0000 (18:56 -0600)
commitd113d47976c6428e5afc48445e0561f61f657618
tree7546bd7f5fd153f964cdcb7bf8cd63c5bed8cdbf
parentbf4a33e725ae02cae064a03ea90c45779780f323
arm64: dts: rockchip: Split up RK3588's PCIe pinctrls

These pinctrls manage the low-speed PCIe signals:
- CLKREQ#: An output on the RK3588 (both RC or EP modes), used to
  request that external clock-generation circuitry provide a clock.
- PERST#: An input on the RK3588 in EP mode, used to detect a reset
  signal from the RC. In RC mode, the hardware does not use this signal:
  Linux itself generates it by putting the pin in GPIO mode.
- WAKE#: In EP mode, this is an output; in RC mode, this is an input.

Each of these signals serves a distinct purpose, and more importantly,
PERST# should not be muxed when the RK3588 is in the RC role. Bundling
them together in pinctrl groups prevents proper use: indeed, almost none
of the current board-specific .dts files make any use of them.
(Exception: Rock 5A recently had a patch land that misuses _pins; this
 patch corrects that.)

However, on some RK3588 boards, the PCIe 3 controller will indefinitely
stall the boot if CLKREQ# is not muxed (details in the next patch).
This patch unbundles the signals to allow them to be used.

Signed-off-by: Sam Edwards <CFSworks@gmail.com>
Link: https://lore.kernel.org/r/20240912025034.180233-2-CFSworks@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
[ upstream commit: 4294e32111781b3de4d73b944cbd1bc1662a9a7a ]

(cherry picked from commit 8713425fa162b61bcf5f7a6dcd171fddfb12be36)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
dts/upstream/src/arm64/rockchip/rk3588-base-pinctrl.dtsi
dts/upstream/src/arm64/rockchip/rk3588s-rock-5a.dts