Commit bd77d0ad authored by Jagan Teki's avatar Jagan Teki Committed by Heiko Stuebner
Browse files

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: default avatarJagan Teki <jagan@amarulasolutions.com>
Tested-by: default avatarSuniel Mahesh <sunil@amarulasolutions.com>
Link: https://lore.kernel.org/r/20200818184505.30064-1-jagan@amarulasolutions.com


Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
parent 9123e3a7
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -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 @@
		regulator-boot-on;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&dc_12v>;
		vin-supply = <&sys_12v>;
	};

	vcc3v3_pcie: vcc3v3-pcie {
@@ -34,8 +44,12 @@
		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 {
+10 −2
Original line number Diff line number Diff line
@@ -110,6 +110,14 @@
		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 @@
		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 @@
		regulator-boot-on;
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		vin-supply = <&dc_12v>;
		vin-supply = <&sys_12v>;
	};

	vdd_log: vdd-log {