]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
arm64: zynqmp: add USB hub supply regulators
authorShaikh Mohammed Suhan <suhan.sm@amd.com>
Tue, 9 Jun 2026 07:48:20 +0000 (09:48 +0200)
committerMichal Simek <michal.simek@amd.com>
Wed, 8 Jul 2026 06:55:50 +0000 (08:55 +0200)
Add fixed supply regulators for the onboard USB hub (USB2744) used on
Kria platforms.

The USB hub requires two always-on power rails:
- vdd:  3.3V main supply
- vdd2: auxiliary supply

Model these rails as fixed regulators and reference them from the hub
node to accurately describe the hardware.

Signed-off-by: Shaikh Mohammed Suhan <suhan.sm@amd.com>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/541ee484c0f73fda630022528ddc56d01a481bca.1780991287.git.michal.simek@amd.com
arch/arm/dts/zynqmp-sck-kd-g-revA.dtso
arch/arm/dts/zynqmp-sck-kr-g-revA.dtso
arch/arm/dts/zynqmp-sck-kr-g-revB.dtso
arch/arm/dts/zynqmp-sck-kv-g-revA.dtso
arch/arm/dts/zynqmp-sck-kv-g-revB.dtso

index 021bf8ac26e6b7d0cc89d6f30083e37374d89ed3..02b9d82eb7c7a1f6909e65db37b18ee18af9eac1 100644 (file)
                gpio-controller;
                gpios = <&slg7xl45106 3 GPIO_ACTIVE_LOW>;
        };
+
+       vdd_usb_hub: regulator-vdd-usb-hub {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_usb_hub";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd2_usb_hub: regulator-vdd2-usb-hub {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd2_usb_hub";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
 };
 
 &can0 {
                peer-hub = <&hub_3_0>;
                i2c-bus = <&hub>;
                reset-gpios = <&slg_delay 0 10000 10000>;
+               vdd-supply = <&vdd_usb_hub>;
+               vdd2-supply = <&vdd2_usb_hub>;
        };
 
        /* 3.0 hub on port 2 */
index 048aeb1e765482a950eb4c720b887c7b955dbb85..47f0fb5f74f13e4d669469a95256b876d98c3c17 100644 (file)
                gpios = <&slg7xl45106 3 GPIO_ACTIVE_LOW>,
                        <&slg7xl45106 4 GPIO_ACTIVE_LOW>;
        };
+
+       vdd_usb_hub: regulator-vdd-usb-hub {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_usb_hub";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd2_usb_hub: regulator-vdd2-usb-hub {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd2_usb_hub";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
 };
 
 &i2c1 { /* I2C_SCK C26/C27 - MIO from SOM */
                peer-hub = <&hub_3_0>;
                i2c-bus = <&hub_1>;
                reset-gpios = <&slg_delay 0 10000 10000>;
+               vdd-supply = <&vdd_usb_hub>;
+               vdd2-supply = <&vdd2_usb_hub>;
        };
 
        /* 3.0 hub on port 2 */
                peer-hub = <&hub1_3_0>;
                i2c-bus = <&hub_2>;
                reset-gpios = <&slg_delay 1 10000 10000>;
+               vdd-supply = <&vdd_usb_hub>;
+               vdd2-supply = <&vdd2_usb_hub>;
        };
 
        /* 3.0 hub on port 2 */
index 2eef6ba7df7555022965b9e9bae3ec4a85b6b8aa..b3c75f67bbd6dfec9aa64a0b17328d4724188a78 100644 (file)
                gpios = <&slg7xl45106 3 GPIO_ACTIVE_LOW>,
                        <&slg7xl45106 4 GPIO_ACTIVE_LOW>;
        };
+
+       vdd_usb_hub: regulator-vdd-usb-hub {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_usb_hub";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd2_usb_hub: regulator-vdd2-usb-hub {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd2_usb_hub";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
 };
 
 &i2c1 { /* I2C_SCK C26/C27 - MIO from SOM */
                peer-hub = <&hub_3_0>;
                i2c-bus = <&hub_1>;
                reset-gpios = <&slg_delay 0 10000 10000>;
+               vdd-supply = <&vdd_usb_hub>;
+               vdd2-supply = <&vdd2_usb_hub>;
        };
 
        /* 3.0 hub on port 2 */
                peer-hub = <&hub1_3_0>;
                i2c-bus = <&hub_2>;
                reset-gpios = <&slg_delay 1 10000 10000>;
+               vdd-supply = <&vdd_usb_hub>;
+               vdd2-supply = <&vdd2_usb_hub>;
        };
 
        /* 3.0 hub on port 2 */
index ea947cd2dc02c8dea56ab59d30fb1a83a8d0a043..3c551f303150372e614618e6c7eef9caa7be8561 100644 (file)
                gpio-controller;
                gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
        };
+
+       vdd_usb_hub: regulator-vdd-usb-hub {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_usb_hub";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd2_usb_hub: regulator-vdd2-usb-hub {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd2_usb_hub";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
 };
 
 &i2c1 { /* I2C_SCK C23/C24 - MIO from SOM */
                reg = <1>;
                peer-hub = <&hub_3_0>;
                reset-gpios = <&slg_delay 0 10000 10000>;
+               vdd-supply = <&vdd_usb_hub>;
+               vdd2-supply = <&vdd2_usb_hub>;
        };
 
        /* 3.0 hub on port 2 */
index ea7b9253468eb5fee2c1da3365e08bdd695a857b..a60bd7b7bdb2b1ab225949f6e59a2dba47c15792 100644 (file)
                gpio-controller;
                gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
        };
+
+       vdd_usb_hub: regulator-vdd-usb-hub {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_usb_hub";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd2_usb_hub: regulator-vdd2-usb-hub {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd2_usb_hub";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
 };
 
 &i2c1 { /* I2C_SCK C23/C24 - MIO from SOM */
                peer-hub = <&hub_3_0>;
                i2c-bus = <&hub>;
                reset-gpios = <&slg_delay 0 10000 10000>;
+               vdd-supply = <&vdd_usb_hub>;
+               vdd2-supply = <&vdd2_usb_hub>;
        };
 
        /* 3.0 hub on port 2 */