]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: rockchip: Add frl-enable-gpios to rk3588s boards
authorCristian Ciocaltea <cristian.ciocaltea@collabora.com>
Mon, 27 Apr 2026 21:57:23 +0000 (00:57 +0300)
committerHeiko Stuebner <heiko@sntech.de>
Tue, 5 May 2026 18:28:40 +0000 (20:28 +0200)
The following RK3588s boards expose a GPIO pin to control the voltage
bias on the HDMI0 data lines:

- rk3588s-coolpi-4b
- rk3588s-indiedroid-nova
- rk3588s-nanopi-r6
- rk3588s-odroid-m2
- rk3588s-orangepi-5
- rk3588s-radxa-cm5-io
- rk3588s-rock-5a
- rk3588s-rock-5c

The pin must be asserted when operating in HDMI 2.1 FRL mode and
deasserted for HDMI 1.4/2.0 TMDS mode.

Wire up the hdmi0 node to its dedicated GPIO via frl-enable-gpios to
allow adjusting the bias when transitioning between TMDS and FRL modes.

While at it, also ensure that pinctrl-names is present and ordered
alphabetically within the hdmi nodes.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://patch.msgid.link/20260428-dts-rk-frl-enable-gpios-v2-5-924df9db884a@collabora.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
arch/arm64/boot/dts/rockchip/rk3588s-coolpi-4b.dts
arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi
arch/arm64/boot/dts/rockchip/rk3588s-odroid-m2.dts
arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dtsi
arch/arm64/boot/dts/rockchip/rk3588s-radxa-cm5-io.dts
arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts
arch/arm64/boot/dts/rockchip/rk3588s-rock-5c.dts

index 189444d207797990d882eb44e1fad6a4b7e2d716..16f19109fca615a31f607fc90fdbe0983b78c5ad 100644 (file)
 };
 
 &hdmi0 {
+       frl-enable-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_LOW>;
+       pinctrl-0 = <&hdmim0_tx0_cec &hdmim0_tx0_hpd
+                    &hdmim0_tx0_scl &hdmim0_tx0_sda &hdmi0_tx_on_h>;
+       pinctrl-names = "default";
        status = "okay";
 };
 
 };
 
 &pinctrl {
+       hdmi {
+               hdmi0_tx_on_h: hdmi0-tx-on-h {
+                       rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        hym8563 {
                hym8563_int: hym8563-int {
                        rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
index 174d299cc6bb94ac570999ed9a7e753e53b35a66..f9e3c0134d5fbbb5d12ebfb7726f6d6f8a350faa 100644 (file)
 };
 
 &hdmi0 {
+       frl-enable-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_LOW>;
        pinctrl-0 = <&hdmim0_tx0_scl>, <&hdmim0_tx0_sda>,
-                   <&hdmim0_tx0_hpd>, <&hdmim0_tx0_cec>;
+                   <&hdmim0_tx0_hpd>, <&hdmim0_tx0_cec>,
+                   <&hdmi0_tx_on_h>;
        pinctrl-names = "default";
        status = "okay";
 };
                };
        };
 
+       hdmi {
+               hdmi0_tx_on_h: hdmi0-tx-on-h {
+                       rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        hym8563 {
 
                hym8563_int: hym8563-int {
index 1b6a59f7cabce63ea714f49c33c26403e948c464..b9c0a1a050a96990d249d84e1f8a70964ec1ecfb 100644 (file)
 };
 
 &hdmi0 {
+       frl-enable-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_LOW>;
+       pinctrl-0 = <&hdmim0_tx0_cec &hdmim0_tx0_hpd
+                    &hdmim0_tx0_scl &hdmim0_tx0_sda &hdmi0_tx_on_h>;
+       pinctrl-names = "default";
        status = "okay";
 };
 
                };
        };
 
+       hdmi {
+               hdmi0_tx_on_h: hdmi0-tx-on-h {
+                       rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        hym8563 {
                rtc_int: rtc-int {
                        rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
index a72063c55140105d5098f1cd7ebf79ad4e90e47c..4e98fa33492c6a041d8024fe04914a9eb2dac0f7 100644 (file)
 };
 
 &hdmi0 {
+       frl-enable-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_LOW>;
+       pinctrl-0 = <&hdmim0_tx0_cec &hdmim0_tx0_hpd
+                    &hdmim0_tx0_scl &hdmim0_tx0_sda &hdmi0_tx_on_h>;
+       pinctrl-names = "default";
        status = "okay";
 };
 
 };
 
 &pinctrl {
+       hdmi {
+               hdmi0_tx_on_h: hdmi0-tx-on-h {
+                       rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        lcd {
                lcd_pwren: lcd-pwren {
                        rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
index dafad29f98544a0ea7c6482fa455bfca73742d12..cd80cb15a405b5130fe618ef50f5b91f730434f0 100644 (file)
 };
 
 &hdmi0 {
+       frl-enable-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_LOW>;
+       pinctrl-0 = <&hdmim0_tx0_cec &hdmim0_tx0_hpd
+                    &hdmim0_tx0_scl &hdmim0_tx0_sda &hdmi0_tx_on_h>;
+       pinctrl-names = "default";
        status = "okay";
 };
 
 };
 
 &pinctrl {
+       hdmi {
+               hdmi0_tx_on_h: hdmi0-tx-on-h {
+                       rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        hym8563 {
                hym8563_int: hym8563-int {
                        rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
index f80d5a00a4bdd3c6c2547279e92affb883a5bacf..af4a9bc015e16da8294eb27124d8c887c998612b 100644 (file)
 };
 
 &hdmi0 {
+       frl-enable-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_LOW>;
+       pinctrl-0 = <&hdmim0_tx0_cec &hdmim0_tx0_hpd
+                    &hdmim0_tx0_scl &hdmim0_tx0_sda &hdmi0_tx_on_h>;
+       pinctrl-names = "default";
        status = "okay";
 };
 
                };
        };
 
+       hdmi {
+               hdmi0_tx_on_h: hdmi0-tx-on-h {
+                       rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        usb {
                vcc5v0_host_en: vcc5v0-host-en {
                        rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
index 0991f6a21190058aea2dc305d96150872971cacf..ffd26b43ae8c96e123b467dbd23328093a74718a 100644 (file)
 };
 
 &hdmi0 {
-       pinctrl-names = "default";
+       frl-enable-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_LOW>;
        pinctrl-0 = <&hdmim0_tx0_cec
                     &hdmim1_tx0_hpd
                     &hdmim0_tx0_scl
-                    &hdmim0_tx0_sda>;
+                    &hdmim0_tx0_sda
+                    &hdmi0_tx_on_h>;
+       pinctrl-names = "default";
        status = "okay";
 };
 
 };
 
 &pinctrl {
+       hdmi {
+               hdmi0_tx_on_h: hdmi0-tx-on-h {
+                       rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        leds {
                io_led: io-led {
                        rockchip,pins = <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
index 7fe42f4ff82798ee90d792008809afc95205bbe1..9d3d0791554d95f39def4938bb33dae6616667d8 100644 (file)
 };
 
 &hdmi0 {
-       pinctrl-names = "default";
+       frl-enable-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_LOW>;
        pinctrl-0 = <&hdmim0_tx0_cec
                     &hdmim1_tx0_hpd
                     &hdmim0_tx0_scl
-                    &hdmim0_tx0_sda>;
+                    &hdmim0_tx0_sda
+                    &hdmi0_tx_on_h>;
+       pinctrl-names = "default";
        status = "okay";
 };
 
 };
 
 &pinctrl {
+       hdmi {
+               hdmi0_tx_on_h: hdmi0-tx-on-h {
+                       rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        leds {
                led_pins: led-pins {
                        rockchip,pins = <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>,