[PATCH v2 00/13] arm64: dts: rockchip: Wire up frl-enable-gpios for RK3576/RK3588 boards

Cristian Ciocaltea cristian.ciocaltea at collabora.com
Mon Apr 27 14:57:18 PDT 2026


Several boards based on the RK3576 and RK3588(S) SoCs use a
GPIO-controlled voltage bias circuit on the HDMI data lines that must be
switched according to the active link mode: asserted for HDMI 2.1 FRL
and deasserted for HDMI 1.4/2.0 TMDS.

This series adds the frl-enable-gpios property to the HDMI nodes of all
boards for which the GPIO configuration could be identified from vendor
BSP kernel sources and/or schematics where available.  In a small number
of cases it was necessary to extract and disassemble the DTB from the
vendor firmware image.

One board remains unhandled (rk3588-edgeble-neu6a-io), pending
clarification from the vendor.

For each affected board the patches:
- set frl-enable-gpios with the appropriate GPIO reference and
  GPIO_ACTIVE_LOW polarity (inverted relative to the BSP enable-gpios /
  GPIO_ACTIVE_HIGH convention, which effectively acts as
  tmds-enable-gpios)
- extend pinctrl-0 of the HDMI node to include the new pin group
- add the corresponding pinctrl definition under &pinctrl

It's worth noting the Rockchip platform glue driver for the DesignWare
HDMI QP TX controller already drives the frl-enable GPIO, but since FRL
is not yet supported, TMDS mode is unconditionally selected.  This
ensures a consistent setup independent of hardware reset defaults and
bootloader state.

Furthermore, this allows removing a few DT quirks hardcoding the active
link mode and paves the way for a follow-up series enabling HDMI 2.1 FRL
support.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea at collabora.com>
---
Changes in v2:
- Squashed common changes into one patch per SoC; the more invasive
  changes remain in board specific patches
- Ensured overridden pinctrl-0 properties in the hdmi nodes are followed
  by the pinctrl-names property
- Move the newly introduced frl-enable-gpios entries before pinctrl-*,
  to keep the items ordered alphabetically
- Renamed hdmi[0-1]?-frl-en pinmux nodes to hdmi[0-1]?-tx-on-h, to match
  the naming commonly used in boards schematics
- Added a new patch to drop unnecessary #{address,size}-cells from
  rk3588-jaguar
- Added patches to provide the missing pinctrl-names to pinctrl-N
  overrides for all non-hdmi nodes, e.g. i2c, i2s, pcie, pwm, sdmmc,
  spdif, spi, uart, etc
- Rebased series onto next-20260427
- Link to v1: https://patch.msgid.link/20260417-dts-rk-frl-enable-gpios-v1-0-a19c0dd8c9f6@collabora.com

---
Cristian Ciocaltea (13):
      arm64: dts: rockchip: Add frl-enable-gpios to rk3576 boards
      arm64: dts: rockchip: Add frl-enable-gpios to rk3576-luckfox-core3576
      arm64: dts: rockchip: Add frl-enable-gpios to rk3576-nanopi-r76s
      arm64: dts: rockchip: Add frl-enable-gpios to rk3588 boards
      arm64: dts: rockchip: Add frl-enable-gpios to rk3588s boards
      arm64: dts: rockchip: Add frl-enable-gpios to rk3588s-gameforce-ace
      arm64: dts: rockchip: Add frl-enable-gpios to rk3588s-khadas-edge2
      arm64: dts: rockchip: Add frl-enable-gpios to rk3588s-orangepi-cm5-base
      arm64: dts: rockchip: Add frl-enable-gpios to rk3588s-roc-pc
      arm64: dts: rockchip: Drop unnecessary #{address,size}-cells from rk3588-jaguar
      arm64: dts: rockchip: Add missing pinctrl-names to rk3576 boards
      arm64: dts: rockchip: Add missing pinctrl-names to rk3588 boards
      arm64: dts: rockchip: Add missing pinctrl-names to rk3588s boards

 .../boot/dts/rockchip/rk3576-100ask-dshanpi-a1.dts | 10 +++++++++
 .../boot/dts/rockchip/rk3576-armsom-sige5.dts      | 10 +++++++++
 arch/arm64/boot/dts/rockchip/rk3576-evb1-v10.dts   |  9 ++++++++
 arch/arm64/boot/dts/rockchip/rk3576-evb2-v10.dts   |  9 ++++++++
 .../boot/dts/rockchip/rk3576-luckfox-core3576.dtsi | 22 ++++----------------
 arch/arm64/boot/dts/rockchip/rk3576-nanopi-m5.dts  |  9 ++++++++
 .../arm64/boot/dts/rockchip/rk3576-nanopi-r76s.dts | 16 +++------------
 arch/arm64/boot/dts/rockchip/rk3576-roc-pc.dts     | 10 +++++++++
 arch/arm64/boot/dts/rockchip/rk3576-rock-4d.dts    | 10 +++++++++
 .../boot/dts/rockchip/rk3588-armsom-sige7.dts      | 11 ++++++++++
 arch/arm64/boot/dts/rockchip/rk3588-armsom-w3.dts  | 19 +++++++++++++++++
 .../boot/dts/rockchip/rk3588-coolpi-cm5-evb.dts    | 18 +++++++++++++++-
 .../dts/rockchip/rk3588-coolpi-cm5-genbook.dts     | 12 ++++++++++-
 .../arm64/boot/dts/rockchip/rk3588-coolpi-cm5.dtsi |  4 ++++
 .../boot/dts/rockchip/rk3588-edgeble-neu6a-io.dtsi |  1 +
 arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts   | 20 ++++++++++++++++++
 arch/arm64/boot/dts/rockchip/rk3588-evb2-v10.dts   | 11 ++++++++++
 arch/arm64/boot/dts/rockchip/rk3588-fet3588-c.dtsi |  1 +
 .../dts/rockchip/rk3588-firefly-core-3588j.dtsi    |  1 +
 .../dts/rockchip/rk3588-firefly-icore-3588q.dtsi   |  1 +
 .../boot/dts/rockchip/rk3588-firefly-itx-3588j.dts | 12 +++++++++++
 .../rockchip/rk3588-friendlyelec-cm3588-nas.dts    | 18 ++++++++++++++++
 .../arm64/boot/dts/rockchip/rk3588-h96-max-v58.dts | 11 ++++++++++
 arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts     | 24 +++++++++++++++-------
 .../arm64/boot/dts/rockchip/rk3588-mnt-reform2.dts | 12 +++++++++++
 arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dtsi | 21 +++++++++++++++++++
 .../boot/dts/rockchip/rk3588-orangepi-5-max.dts    | 18 ++++++++++++++--
 .../boot/dts/rockchip/rk3588-orangepi-5-plus.dts   | 20 ++++++++++++++++++
 .../boot/dts/rockchip/rk3588-orangepi-5-ultra.dts  | 11 ++++++++--
 .../arm64/boot/dts/rockchip/rk3588-orangepi-5.dtsi |  1 +
 arch/arm64/boot/dts/rockchip/rk3588-roc-rt.dts     | 19 +++++++++++++++++
 arch/arm64/boot/dts/rockchip/rk3588-rock-5-itx.dts | 12 ++++++++++-
 .../boot/dts/rockchip/rk3588-rock-5b-5bp-5t.dtsi   | 19 ++++++++++++++++-
 .../boot/dts/rockchip/rk3588-tiger-haikou.dts      |  4 +++-
 arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi     | 20 ++++++++++++++++--
 .../arm64/boot/dts/rockchip/rk3588-toybrick-x0.dts |  1 +
 .../arm64/boot/dts/rockchip/rk3588-turing-rk1.dtsi |  2 ++
 arch/arm64/boot/dts/rockchip/rk3588s-coolpi-4b.dts | 16 +++++++++++++++
 arch/arm64/boot/dts/rockchip/rk3588s-evb1-v10.dts  |  1 +
 .../boot/dts/rockchip/rk3588s-gameforce-ace.dts    | 15 +++++++++-----
 .../boot/dts/rockchip/rk3588s-indiedroid-nova.dts  | 13 +++++++++++-
 .../boot/dts/rockchip/rk3588s-khadas-edge2.dts     | 15 ++++++++++----
 .../arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi | 11 ++++++++++
 arch/arm64/boot/dts/rockchip/rk3588s-odroid-m2.dts | 10 +++++++++
 .../boot/dts/rockchip/rk3588s-orangepi-5.dtsi      | 11 ++++++++++
 .../dts/rockchip/rk3588s-orangepi-cm5-base.dts     | 12 +++++++----
 .../boot/dts/rockchip/rk3588s-orangepi-cm5.dtsi    |  3 +++
 .../boot/dts/rockchip/rk3588s-radxa-cm5-io.dts     | 10 +++++++++
 arch/arm64/boot/dts/rockchip/rk3588s-roc-pc.dts    | 17 ++++++++++++---
 arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts   | 13 ++++++++++--
 arch/arm64/boot/dts/rockchip/rk3588s-rock-5c.dts   | 13 ++++++++++--
 51 files changed, 519 insertions(+), 70 deletions(-)
---
base-commit: 39704f00f747aba3144289870b5fd8ac230a9aaf
change-id: 20260417-dts-rk-frl-enable-gpios-ce9930dbf5ca




More information about the Linux-rockchip mailing list