arm64: dts: rockchip: Fix power routing to support POE on rk3399-roc-pc

When POE used, the current power routing is failing to power-up
the PMIC regulators which cause Linux boot hangs.

This patch is trying to update the power routing in order to
support Type C0 and POE powering methods.

As per the schematics, sys_12v is a common output power regulator
when type c and POE power being used. sys_12v is supplied by dc_12v
which is supplied from MP8859 in type c0 power routing and sys_12v
is supplied by MP8009 PoE PD in POE power supply routing.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Tested-by: Suniel Mahesh <sunil@amarulasolutions.com>
Link: https://lore.kernel.org/r/20200818184505.30064-1-jagan@amarulasolutions.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
This commit is contained in:
Jagan Teki 2020-08-19 00:15:05 +05:30 committed by Heiko Stuebner
parent 9123e3a74e
commit bd77d0ad7a
2 changed files with 26 additions and 4 deletions

View File

@ -11,6 +11,16 @@ / {
model = "Firefly ROC-RK3399-PC Mezzanine Board";
compatible = "firefly,roc-rk3399-pc-mezzanine", "rockchip,rk3399";
/* MP8009 PoE PD */
poe_12v: poe-12v {
compatible = "regulator-fixed";
regulator-name = "poe_12v";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <12000000>;
regulator-max-microvolt = <12000000>;
};
vcc3v3_ngff: vcc3v3-ngff {
compatible = "regulator-fixed";
regulator-name = "vcc3v3_ngff";
@ -22,7 +32,7 @@ vcc3v3_ngff: vcc3v3-ngff {
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&dc_12v>;
vin-supply = <&sys_12v>;
};
vcc3v3_pcie: vcc3v3-pcie {
@ -34,10 +44,14 @@ vcc3v3_pcie: vcc3v3-pcie {
pinctrl-0 = <&vcc3v3_pcie_en>;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&dc_12v>;
vin-supply = <&sys_12v>;
};
};
&sys_12v {
vin-supply = <&poe_12v>;
};
&pcie_phy {
status = "okay";
};

View File

@ -110,6 +110,14 @@ vcc_vbus_typec0: vcc-vbus-typec0 {
regulator-max-microvolt = <5000000>;
};
sys_12v: sys-12v {
compatible = "regulator-fixed";
regulator-name = "sys_12v";
regulator-always-on;
regulator-boot-on;
vin-supply = <&dc_12v>;
};
/* switched by pmic_sleep */
vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
compatible = "regulator-fixed";
@ -141,7 +149,7 @@ vcc3v3_sys: vcc3v3-sys {
regulator-boot-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
vin-supply = <&dc_12v>;
vin-supply = <&sys_12v>;
};
vcca_0v9: vcca-0v9 {
@ -186,7 +194,7 @@ vcc_sys: vcc-sys {
regulator-boot-on;
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&dc_12v>;
vin-supply = <&sys_12v>;
};
vdd_log: vdd-log {