build/patch/kernel/archive/sunxi-6.1/patches.megous/arm64-dts-rk3399-pinephone-pro-Add-5V-power-supply.patch

101 lines
3.0 KiB
Diff

From 601e528e513ad53138c262ed5ac8d9a82a6ab29d Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megi@xff.cz>
Date: Sun, 4 Sep 2022 23:27:30 +0200
Subject: [PATCH 278/389] arm64: dts: rk3399-pinephone-pro: Add 5V power supply
Enable 5V power supply used by some devices on the board.
Signed-off-by: Ondrej Jirman <megi@xff.cz>
---
.../dts/rockchip/rk3399-pinephone-pro.dts | 60 +++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
index 782316ad512b..472699d5af9b 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
@@ -158,6 +158,50 @@ vcc_sys: vcc-sys-regulator {
regulator-boot-on;
};
+ vcc5v0_sys: vcc5v0-host-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc5v0_sys";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ regulator-boot-on;
+ vin-supply = <&boost_otg>;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
+ };
+
+ /*
+ * This is not a regulator. GPIO0_A6 is used to force enable VCC_SYS <->
+ * VBAT+ Q7 switch that helps boost the RK818's power path's current carrying
+ * capacity when operating the phone from the battery in case VBUS_TYPEC
+ * has 5V provided by the phone itself and not by the external power
+ * supply. (this happens in USB host mode)
+ *
+ * GPIO0_A6 low: Q7 is enabled if there's 0V on VBUS_TYPEC (phone is not
+ * powered from external power supply)
+ * GPIO0_A6 high: Q7 is enabled no matter what
+ *
+ * GPIO0_A6 must be high when the phone is providing VBUS_TYPEC power.
+ * This keeps the power path boost enabled for all cases when the phone
+ * runs from the battery.
+ *
+ * In other words, GPIO0_A6 is used to override the automatic disabling
+ * of Q7 when VBUS_TYPEC has 5V in USB host mode.
+ */
+ vcc5v0_typec: vcc5v0-typec-regulator {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vcc5v0_typec_en>;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-name = "vcc5v0_typec";
+ vin-supply = <&boost_otg>;
+ };
+
vcc3v3_sys: vcc3v3-sys-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc3v3_sys";
@@ -276,6 +320,7 @@ rk818: pmic@1c {
vcc7-supply = <&vcc3v3_sys>;
vcc8-supply = <&vcc_sys>;
vcc9-supply = <&vcc3v3_sys>;
+ usb-supply = <&vcc5v0_typec>;
regulators {
vdd_cpu_l: DCDC_REG1 {
@@ -407,6 +452,21 @@ regulator-state-mem {
regulator-on-in-suspend;
};
};
+
+ boost_otg: DCDC_BOOST {
+ regulator-name = "boost_otg";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
+ };
+
+ otg_switch: OTG_SWITCH {
+ regulator-name = "otg_switch";
+ };
};
/*
--
2.35.3