From 2ee09f1d8da9d5fcf7b2579525c87151ee0896a2 Mon Sep 17 00:00:00 2001
From: Clayton Craft <clayton@craftyguy.net>
Date: Wed, 16 Dec 2020 20:16:14 -0800
Subject: [PATCH] dts: pinephone: drop modem-power node

---
 .../allwinner/sun50i-a64-pinephone-1.0.dts    | 26 +++---------------
 .../allwinner/sun50i-a64-pinephone-1.1.dts    | 27 +++----------------
 .../allwinner/sun50i-a64-pinephone-1.2.dts    | 27 +++----------------
 .../dts/allwinner/sun50i-a64-pinephone.dtsi   | 12 +++++++++
 4 files changed, 24 insertions(+), 68 deletions(-)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts
index 0530881d8401..144f1eca9f8d 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts
@@ -87,28 +87,6 @@ &reg_drivevbus {
 	status = "okay";
 };
 
-&uart3 {
-	modem {
-		compatible = "quectel,eg25";
-		char-device-name = "modem-power";
-
-		power-supply = <&reg_vbat_bb>; /* PL7 */
-
-		enable-gpios = <&pio 7 8 GPIO_ACTIVE_LOW>; /* PH8 */
-		reset-gpios = <&pio 2 4 GPIO_ACTIVE_HIGH>; /* PC4 */
-		pwrkey-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
-
-		sleep-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
-		wakeup-gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>; /* PB2-RI */
-
-		cts-gpios = <&pio 3 5 GPIO_ACTIVE_HIGH>; /* PD5-CTS */
-		dtr-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6-DTR */
-		rts-gpios = <&pio 3 4 GPIO_ACTIVE_HIGH>; /* PD4-RTS */
-
-		quectel,qdai = "1,1,0,1,0,0,1,1";
-	};
-};
-
 &usbphy {
 	usb-role-switch;
 
@@ -123,6 +101,10 @@ &codec_analog {
 	allwinner,internal-bias-resistor;
 };
 
+&ring_indicator {
+	gpios = <&pio 1 2 GPIO_ACTIVE_LOW>; /* PB2 */
+};
+
 &sgm3140 {
 	enable-gpios = <&pio 2 3 GPIO_ACTIVE_HIGH>; /* PC3 */
 	flash-gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts
index 053e4add9973..78982fe051de 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts
@@ -101,29 +101,6 @@ &sgm3140 {
 	flash-gpios = <&pio 2 3 GPIO_ACTIVE_HIGH>; /* PC3 */
 };
 
-&uart3 {
-	modem {
-		compatible = "quectel,eg25";
-		char-device-name = "modem-power";
-
-		power-supply = <&reg_vbat_bb>; /* PL7 */
-
-		enable-gpios = <&pio 7 8 GPIO_ACTIVE_LOW>; /* PH8 */
-		reset-gpios = <&pio 2 4 GPIO_ACTIVE_HIGH>; /* PC4 */
-		pwrkey-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
-		//status-pwrkey-multiplexed; /* status acts as pwrkey */
-
-		sleep-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
-		wakeup-gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>; /* PB2-RI */
-
-		dtr-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6-DTR */
-		cts-gpios = <&pio 3 5 GPIO_ACTIVE_HIGH>; /* PD5-CTS */
-		rts-gpios = <&pio 3 4 GPIO_ACTIVE_HIGH>; /* PD4-RTS */
-
-		quectel,qdai = "1,1,0,1,0,0,1,1";
-	};
-};
-
 &usbphy {
 	usb-role-switch;
 
@@ -137,3 +114,7 @@ usb0_drd_sw: endpoint {
 &hdmi {
 	extcon = <&anx7688 0>;
 };
+
+&ring_indicator {
+	gpios = <&pio 1 2 GPIO_ACTIVE_LOW>; /* PB2 */
+};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts
index ec4927dfe9dc..57b651d695af 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts
@@ -93,29 +93,6 @@ &sgm3140 {
 	flash-gpios = <&pio 2 3 GPIO_ACTIVE_HIGH>; /* PC3 */
 };
 
-&uart3 {
-	modem {
-		compatible = "quectel,eg25";
-		char-device-name = "modem-power";
-
-		power-supply = <&reg_vbat_bb>; /* PL7 */
-
-		enable-gpios = <&pio 7 8 GPIO_ACTIVE_LOW>; /* PH8 */
-		reset-gpios = <&pio 2 4 GPIO_ACTIVE_HIGH>; /* PC4 */
-		status-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
-		pwrkey-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
-
-		host-ready-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
-		wakeup-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6-RI */
-
-		dtr-gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>; /* PB2-DTR */
-		cts-gpios = <&pio 3 5 GPIO_ACTIVE_HIGH>; /* PD5-CTS */
-		rts-gpios = <&pio 3 4 GPIO_ACTIVE_HIGH>; /* PD4-RTS */
-
-		quectel,qdai = "1,1,0,1,0,0,1,1";
-	};
-};
-
 &usbphy {
 	usb-role-switch;
 
@@ -129,3 +106,7 @@ usb0_drd_sw: endpoint {
 &hdmi {
 	extcon = <&anx7688 0>;
 };
+
+&ring_indicator {
+	gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL6 */
+};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
index fe7f2113a727..68392dee4407 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
@@ -310,6 +310,17 @@ ec25_codec: ec25-codec {
 		sound-name-prefix = "Modem";
 	};
 
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		ring_indicator: ring-indicator {
+			label = "Ring Indicator";
+			linux,can-disable;
+			linux,code = <KEY_WAKEUP>;
+			wakeup-source;
+		};
+	};
+
 	i2c_csi: i2c-csi {
 		compatible = "i2c-gpio";
 		sda-gpios = <&pio 4 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; /* PE13 */
@@ -382,6 +393,7 @@ reg_usb_5v: usb-5v {
 	reg_vbat_bb: vbat-bb {
 		compatible = "regulator-fixed";
 		regulator-name = "vbat-bb";
+		regulator-always-on;
 		regulator-min-microvolt = <3500000>;
 		regulator-max-microvolt = <3500000>;
 		gpio = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
-- 
2.45.0

