From bcbe9ca5716942afb2a11ba1b9cbbb435d1ffa51 Mon Sep 17 00:00:00 2001
From: Gunjan Gupta <viraniac@mgmail.com>
Date: Thu, 1 Feb 2024 22:38:21 +0000
Subject: [PATCH] arm64: dts: H616: Add overlays that are also compatible with
 orange pi zero2 and zero3

---
 .../arm64/boot/dts/allwinner/overlay/Makefile |  5 ++++
 .../allwinner/overlay/sun50i-h616-i2c2.dtso   |  8 ++++++
 .../allwinner/overlay/sun50i-h616-i2c3.dtso   |  8 ++++++
 .../allwinner/overlay/sun50i-h616-i2c4.dtso   |  8 ++++++
 .../allwinner/overlay/sun50i-h616-uart2.dtso  |  8 ++++++
 .../allwinner/overlay/sun50i-h616-uart5.dtso  |  8 ++++++
 .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 27 +++++++++++++++++--
 7 files changed, 70 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c2.dtso
 create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c3.dtso
 create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c4.dtso
 create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2.dtso
 create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart5.dtso

diff --git a/arch/arm64/boot/dts/allwinner/overlay/Makefile b/arch/arm64/boot/dts/allwinner/overlay/Makefile
index 84711585fc86..369b2976b1bb 100644
--- a/arch/arm64/boot/dts/allwinner/overlay/Makefile
+++ b/arch/arm64/boot/dts/allwinner/overlay/Makefile
@@ -49,6 +49,11 @@ dtb-$(CONFIG_ARCH_SUNXI) += \
 	sun50i-h6-uart2.dtbo \
 	sun50i-h6-uart3.dtbo \
 	sun50i-h6-w1-gpio.dtbo \
+	sun50i-h616-i2c2.dtbo \
+	sun50i-h616-i2c3.dtbo \
+	sun50i-h616-i2c4.dtbo \
+	sun50i-h616-uart2.dtbo \
+	sun50i-h616-uart5.dtbo \
 	sun50i-h616-spi-spidev.dtbo \
 	sun50i-h616-spidev0_0.dtbo \
 	sun50i-h616-spidev1_0.dtbo \
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c2.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c2.dtso
new file mode 100644
index 000000000000..feebc9ad85fb
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c2.dtso
@@ -0,0 +1,8 @@
+/dts-v1/;
+/plugin/;
+
+&i2c2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c2_ph_pins>;
+	status = "okay";
+};
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c3.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c3.dtso
new file mode 100644
index 000000000000..bb212d3c66da
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c3.dtso
@@ -0,0 +1,8 @@
+/dts-v1/;
+/plugin/;
+
+&i2c3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c3_ph_pins>;
+	status = "okay";
+};
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c4.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c4.dtso
new file mode 100644
index 000000000000..8fbcc658b22c
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c4.dtso
@@ -0,0 +1,8 @@
+/dts-v1/;
+/plugin/;
+
+&i2c4 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c4_ph_pins>;
+	status = "okay";
+};
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2.dtso
new file mode 100644
index 000000000000..6a6806906972
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2.dtso
@@ -0,0 +1,8 @@
+/dts-v1/;
+/plugin/;
+
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart2_pins>;
+	status = "okay";
+};
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart5.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart5.dtso
new file mode 100644
index 000000000000..6a6806906972
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart5.dtso
@@ -0,0 +1,8 @@
+/dts-v1/;
+/plugin/;
+
+&uart5 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart5_pins>;
+	status = "okay";
+};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
index 52bd986abcdb..157b6736770e 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
@@ -319,11 +319,21 @@ i2c0_pins: i2c0-pins {
 				function = "i2c0";
 			};
 
+			i2c2_ph_pins: i2c2-ph-pins {
+				pins = "PH2", "PH3";
+				function = "i2c2";
+			};
+
 			i2c3_ph_pins: i2c3-ph-pins {
 				pins = "PH4", "PH5";
 				function = "i2c3";
 			};
 
+			i2c4_ph_pins: i2c4-ph-pins {
+				pins = "PH6", "PH7";
+				function = "i2c4";
+			};
+
 			ir_rx_pin: ir-rx-pin {
 				pins = "PH10";
 				function = "ir_rx";
@@ -374,7 +384,6 @@ spi0_cs0_pin: spi0-cs0-pin {
 				function = "spi0";
 			};
 
-			/omit-if-no-ref/
 			spi1_pins: spi1-pins {
 				pins = "PH6", "PH7", "PH8";
 				function = "spi1";
@@ -402,6 +410,21 @@ uart1_rts_cts_pins: uart1-rts-cts-pins {
 				pins = "PG8", "PG9";
 				function = "uart1";
 			};
+
+			uart2_pins: uart2-pins {
+				pins = "PH5", "PH6";
+				function = "uart2";
+			};
+
+			uart2_rts_cts_pins: uart2-rts-cts-pins {
+				pins = "PH7", "PH8";
+				function = "uart2";
+			};
+
+			uart5_pins: uart5-pins {
+				pins = "PH2", "PH3";
+				function = "uart5";
+			};
 		};
 
 		gic: interrupt-controller@3021000 {
-- 
2.34.1

