Skip to content
  • Sam Edwards's avatar
    4294e321
    arm64: dts: rockchip: Split up RK3588's PCIe pinctrls · 4294e321
    Sam Edwards authored
    
    
    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: default avatarSam Edwards <CFSworks@gmail.com>
    Link: https://lore.kernel.org/r/20240912025034.180233-2-CFSworks@gmail.com
    
    
    Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
    4294e321
    arm64: dts: rockchip: Split up RK3588's PCIe pinctrls
    Sam Edwards authored
    
    
    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: default avatarSam Edwards <CFSworks@gmail.com>
    Link: https://lore.kernel.org/r/20240912025034.180233-2-CFSworks@gmail.com
    
    
    Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
Loading