build/patch/kernel/archive/sunxi-6.4/patches.megous/arm64-dts-pinephone-pro-Add-modem-support.patch

150 lines
3.7 KiB
Diff
Raw Normal View History

From b6b9cc5c8d06b0b8fda503ce4db4fc20a596ca3a Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megi@xff.cz>
Date: Fri, 9 Sep 2022 16:39:58 +0200
Subject: [PATCH 287/469] arm64: dts: pinephone-pro: Add modem support
- Host USB for the modem
- Power supplies
- Power controller driver
Signed-off-by: Ondrej Jirman <megi@xff.cz>
---
.../dts/rockchip/rk3399-pinephone-pro.dts | 93 +++++++++++++++++++
1 file changed, 93 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
index e4136ba33a92..716d21b7e8d3 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
@@ -273,6 +273,30 @@ vcca1v8_s3: vcc1v8-s3-regulator {
regulator-boot-on;
};
+ vcc_4g_5v: vcc-4g-5v {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpio = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vcc_4g_5v_en>;
+ regulator-name = "vcc_4g_5v";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&vcc5v0_sys>;
+ };
+
+ vcc_4g: vcc-4g {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpio = <&gpio4 RK_PC7 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&vcc_4g_en>;
+ regulator-name = "vcc_4g";
+ regulator-min-microvolt = <3800000>;
+ regulator-max-microvolt = <3800000>;
+ vin-supply = <&vcc_sys>;
+ };
+
vcc1v8_codec: vcc1v8-codec-regulator {
compatible = "regulator-fixed";
enable-active-high;
@@ -989,6 +1013,35 @@ mipi_in_panel: endpoint {
};
};
+&uart3 {
+ status = "okay";
+
+ modem {
+ compatible = "quectel,eg25";
+ char-device-name = "modem-power";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&modem_control_pins>;
+
+ power-supply = <&vcc_4g>;
+ vbus-supply = <&vcc_4g_5v>;
+
+ enable-gpios = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; // W_DISABLE#
+ reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
+ status-gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_HIGH>;
+ pwrkey-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
+
+ host-ready-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; // apready
+ wakeup-gpios = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; // ri
+
+ dtr-gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;
+ cts-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
+ rts-gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;
+
+ quectel,qdai = "3,0,0,4,0,0,1,1";
+ };
+};
+
&pmu_io_domains {
pmu1830-supply = <&vcc_1v8>;
status = "okay";
@@ -1059,6 +1112,29 @@ flash_pins: flash-pins {
};
};
+ modem {
+ vcc_4g_5v_en: vcc-4g-5v-en-pin {
+ rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ vcc_4g_en: vcc-4g-en-pin {
+ rockchip,pins = <4 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+
+ modem_control_pins: modem-control-pins {
+ rockchip,pins =
+ <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>,
+ <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>,
+ <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>,
+ <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>,
+ <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>,
+ <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>,
+ <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>,
+ <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>,
+ <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
pmic {
pmic_int_l: pmic-int-l {
rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
@@ -1215,6 +1291,15 @@ &u2phy0_host {
phy-supply = <&vcc5v0_sys>;
};
+&u2phy1 {
+ status = "okay";
+};
+
+&u2phy1_host {
+ status = "okay";
+ phy-supply = <&vcc5v0_sys>;
+};
+
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
@@ -1248,6 +1333,14 @@ &usb_host0_ohci {
status = "okay";
};
+&usb_host1_ehci {
+ status = "okay";
+};
+
+&usb_host1_ohci {
+ status = "okay";
+};
+
&usbdrd3_0 {
status = "okay";
};
--
2.34.1