]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: rockchip: Add GPU power domain regulator dependency for RK3588
authorSebastian Reichel <sebastian.reichel@collabora.com>
Thu, 20 Feb 2025 18:58:11 +0000 (19:58 +0100)
committerHeiko Stuebner <heiko@sntech.de>
Fri, 28 Feb 2025 13:44:49 +0000 (14:44 +0100)
Enabling the GPU power domain requires that the GPU regulator is
enabled. The regulator is enabled at boot time, but gets disabled
automatically when there are no users.

This means the system might run into a failure state hanging the
whole system for the following use cases:

 * if the GPU driver is being probed late (e.g. build as a
   module and firmware is not in initramfs), the regulator
   might already have been disabled. In that case the power
   domain is enabled before the regulator.
 * unbinding the GPU driver will disable the PM domain and
   the regulator. When the driver is bound again, the PM
   domain will be enabled before the regulator and error
   appears.

Avoid this by adding an explicit regulator dependency to the
power domain.

Tested-by: Heiko Stuebner <heiko@sntech.de>
Reported-by: Adrián Martínez Larumbe <adrian.larumbe@collabora.com>
Tested-by: Adrian Larumbe <adrian.larumbe@collabora.com> # On Rock 5B
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Link: https://lore.kernel.org/r/20250220-rk3588-gpu-pwr-domain-regulator-v6-8-a4f9c24e5b81@kernel.org
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
30 files changed:
arch/arm64/boot/dts/rockchip/rk3588-armsom-lm7.dtsi
arch/arm64/boot/dts/rockchip/rk3588-armsom-sige7.dts
arch/arm64/boot/dts/rockchip/rk3588-base.dtsi
arch/arm64/boot/dts/rockchip/rk3588-coolpi-cm5.dtsi
arch/arm64/boot/dts/rockchip/rk3588-edgeble-neu6a-common.dtsi
arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts
arch/arm64/boot/dts/rockchip/rk3588-fet3588-c.dtsi
arch/arm64/boot/dts/rockchip/rk3588-firefly-core-3588j.dtsi
arch/arm64/boot/dts/rockchip/rk3588-friendlyelec-cm3588.dtsi
arch/arm64/boot/dts/rockchip/rk3588-h96-max-v58.dts
arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts
arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dtsi
arch/arm64/boot/dts/rockchip/rk3588-ok3588-c.dts
arch/arm64/boot/dts/rockchip/rk3588-orangepi-5.dtsi
arch/arm64/boot/dts/rockchip/rk3588-quartzpro64.dts
arch/arm64/boot/dts/rockchip/rk3588-rock-5-itx.dts
arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi
arch/arm64/boot/dts/rockchip/rk3588-toybrick-x0.dts
arch/arm64/boot/dts/rockchip/rk3588-turing-rk1.dtsi
arch/arm64/boot/dts/rockchip/rk3588s-coolpi-4b.dts
arch/arm64/boot/dts/rockchip/rk3588s-evb1-v10.dts
arch/arm64/boot/dts/rockchip/rk3588s-gameforce-ace.dts
arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.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-rock-5a.dts
arch/arm64/boot/dts/rockchip/rk3588s-rock-5c.dts

index a3138d2d384c628ae2b518441145d12e73d19ee1..e44125e9a8fb6def6a87472884bdf990d49b1d5f 100644 (file)
        };
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &saradc {
        vref-supply = <&avcc_1v8_s0>;
        status = "okay";
index b89888fe5d464cae642f34f97da70e9ae111188a..6a0fffaa26ee8d422d87ba528e707236bf99a042 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        hym8563 {
                hym8563_int: hym8563-int {
index d0b640c2d5f88928850b00667edfa5c4e01aa431..79bcc90195fa2ed55357ba8b726f0cca55fe1ac2 100644 (file)
                                };
                        };
                        /* These power domains are grouped by VD_GPU */
-                       power-domain@RK3588_PD_GPU {
+                       pd_gpu: power-domain@RK3588_PD_GPU {
                                reg = <RK3588_PD_GPU>;
                                clocks = <&cru CLK_GPU>,
                                         <&cru CLK_GPU_COREGROUP>,
index 71ed680621b880dd2a001d5fa4f46d389f7ac5cd..cc37f082adea0f848e8e84b0bb780b1cf673355d 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        hym8563 {
                hym8563_int: hym8563-int {
index 5e72d0eff0e0f0a2bba718bc67dc2dc8f9ac183f..8a783dc64c0ef3d7c19358ae0d6e020eedfd2130 100644 (file)
        };
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        leds {
                led_user_en: led_user_en {
index 27a7895595ee9fa2f5d5f3096cbe334c1d3792cf..91021818eb5e65aef4427b411f8cd0176573c3bb 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        audio {
                hp_detect: headphone-detect {
index 3900513173892330d5bedf23dd20165f88ae6fcb..4331cdc70f973dc23fb494ac4dba2a569745e4a8 100644 (file)
        };
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        leds {
                led_rgb_b: led-rgb-b {
index 42c523b553c98b1a1952240e424db2fdc2976469..80e16ea4154c0ef06f2785005ca129f12fcbdfc9 100644 (file)
        };
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &sdhci {
        bus-width = <8>;
        no-sdio;
index e3a9598b99fca8873fb4d511f82b9e2af612b8f3..1af0a30866f619ae6f1db549f9158679135689ac 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        gpio-leds {
                led_sys_pin: led-sys-pin {
index a0e685b55d21ac6bea9060a0593cfba3a11d38cf..73d8ce4fde2b8144b2e9cf4854e759141c20f119 100644 (file)
        };
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        hym8563 {
                hym8563_int: hym8563-int {
index ef56380530f9ab756de961e2f7785e0277b45725..2975fbb08dfebe635d4cf9697d8986f065e99757 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        emmc {
                emmc_reset: emmc-reset {
index 0d9b5020acc099f84f89ef47a43d7a6cbb867719..bbe500cc924b4c4c1ddd833c32c39cf6c20b60e3 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        gpio-leds {
                sys_led_pin: sys-led-pin {
index 1c0851b45eb8eef5e2626dfde8e6c145392754a9..fbe1d5c06d903340ee9faa6a34cc6f7289957a09 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        pcie2 {
                pcie2_0_rst: pcie2-0-rst {
index a98e804a09495c65454c5262c8c8ceebf06d0569..261655c7ccbfe7a89aa07d4df2d4483352687265 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &saradc {
        vref-supply = <&vcc_1v8_s0>;
        status = "okay";
index 088cfade6f6f14b6383ab844fa174c69fa711fc0..b46abdc27c71deb58a3409a9e45b3b0e36315da3 100644 (file)
        };
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        hym8563 {
                hym8563_int: hym8563-int {
index 253b23ea9fbadf13e9be7457fe66c8064ae7db21..67b88632924872a0c649df42d439554d35524500 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        hym8563 {
                rtc_int: rtc-int {
index ceb6421234ff44176b31cd5a3c3f65f34be7fe4b..0208fc0fbe4f90b7c86145ef3cf478156c071419 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        hym8563 {
                hym8563_int: hym8563-int {
index 0ab7032924cf60768f848e0d5ecbe32c189dbdfe..ff91a8485431b09458dad584e52eef81a98fe1c5 100644 (file)
        reset-gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_HIGH>;
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        emmc {
                emmc_reset: emmc-reset {
index 3cbee5b974700d1e687973566aea229ddc92174a..5a428e00ab938ee500561472d55d743f531d3039 100644 (file)
        };
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        rtl8211f {
                rtl8211f_rst: rtl8211f-rst {
index 6bc46734cc1407833f1133dc640ef57f214d94db..711ac4f2c7cb66d97dc76320f9c87deefcc85dd2 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        fan {
                fan_int: fan-int {
index e3c6dd9b95cf12e13289a170ca64f12c74d2acbb..8f00e0444c009c6cb09fcca5b4c8e7a3965670be 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        hym8563 {
                hym8563_int: hym8563-int {
index bc4077575beb6298917ff545ae5eb721bf1c4651..5b3de53630c6302fe678be5e2b85dd6979bbd2a7 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        audio {
                hp_detect: headphone-detect {
index 812bba0aef1a8b48488339162f232bde30077592..8f70c00a46d30170307f0eeb57cb1533d1d17834 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        audio-amplifier {
                headphone_amplifier_en: headphone-amplifier-en {
index 74a4f03e05e35138232f5393b75c6853fa05d7af..80a8dca4d6a3c83cd5c4c495752a1a634f387403 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        bluetooth-pins {
                bt_reset: bt-reset {
index ac48e7fd3923f4222929afb03b608a647d2c2ed8..88a5e822ed17d4eae555b420f9eb3b75fa5b017e 100644 (file)
        };
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        vdd_sd {
                vdd_sd_en: vdd-sd-en {
index cd47969fadba051a22fdb8118a232c1c124c00b2..fbf062ec3bf17ac6966318be55243e6f2b87a9aa 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        gpio-key {
                key1_pin: key1-pin {
index 1463bd36b1b2e37dfa0da953b3837b33e4e9bf7e..a72063c55140105d5098f1cd7ebf79ad4e90e47c 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        lcd {
                lcd_pwren: lcd-pwren {
index 9e16960b87055a120b6208e75c7ec4189c0e0b4a..be0234d2257d469002e67f51d72c7ac075da4a7d 100644 (file)
        };
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        hym8563 {
                hym8563_int: hym8563-int {
index 676cc4fec269ef8955630680791231deb8a775cb..f894742b1ebef15e943e7f0894f7ae95ac03e40b 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        leds {
                io_led: io-led {
index ef8ce10d8f50ba73f1c9b856355e559c6b76b75d..dd7317bab6135c266f5e767f5efc0fa7ae936183 100644 (file)
        status = "okay";
 };
 
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
 &pinctrl {
        leds {
                led_pins: led-pins {