From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Patrick Yavitz <pyavitz@xxxxx.com>
Date: Tue, 24 Oct 2023 09:10:10 -0400
Subject: [PATCH] general: extra: meson64 overlays

Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
---
 arch/arm64/boot/dts/amlogic/overlay/Makefile  | 22 ++++++++++-
 .../meson-g12a-radxa-zero-gpio-10-led.dts     | 26 +++++++++++++
 .../meson-g12a-radxa-zero-gpio-8-led.dts      | 26 +++++++++++++
 ...radxa-zero-i2c-ao-m0-gpioao-2-gpioao-3.dts | 15 ++++++++
 ...a-radxa-zero-i2c-ee-m1-gpioh-6-gpioh-7.dts | 15 ++++++++
 ...radxa-zero-i2c-ee-m1-gpiox-10-gpiox-11.dts | 15 ++++++++
 ...radxa-zero-i2c-ee-m3-gpioa-14-gpioa-15.dts | 15 ++++++++
 ...meson-g12a-radxa-zero-pwm-c-on-gpiox-8.dts | 17 +++++++++
 ...n-g12a-radxa-zero-pwmao-a-on-gpioao-11.dts | 17 +++++++++
 .../meson-g12a-radxa-zero-spi-spidev.dts      | 38 +++++++++++++++++++
 ...xa-zero-uart-ao-a-on-gpioao-0-gpioao-1.dts | 15 ++++++++
 ...xa-zero-uart-ao-b-on-gpioao-2-gpioao-3.dts | 15 ++++++++
 ...xa-zero-uart-ao-b-on-gpioao-8-gpioao-9.dts | 15 ++++++++
 .../meson-g12a-radxa-zero-uart-ee-c.dts       | 15 ++++++++
 .../meson-g12b-bananapi-m2s-rtl8822cs.dts     | 23 +++++++++++
 .../overlay/meson-g12b-odroid-n2-spi.dts      | 23 +++++++++++
 .../meson-g12b-waveshare-cm4-io-base-usb.dts  | 20 ++++++++++
 .../meson-sm1-bananapi-m5-rtl8822cs.dts       | 23 +++++++++++
 .../overlay/meson-sm1-bananapi-uartA.dts      | 15 ++++++++
 .../overlay/meson-sm1-bananapi-uartAO_B.dts   | 14 +++++++
 .../meson-sm1-bananapi-uartA_cts_rts.dts      | 17 +++++++++
 21 files changed, 400 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-gpio-10-led.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-gpio-8-led.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ao-m0-gpioao-2-gpioao-3.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ee-m1-gpioh-6-gpioh-7.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ee-m1-gpiox-10-gpiox-11.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ee-m3-gpioa-14-gpioa-15.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-pwm-c-on-gpiox-8.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-pwmao-a-on-gpioao-11.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-spi-spidev.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ao-a-on-gpioao-0-gpioao-1.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ao-b-on-gpioao-2-gpioao-3.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ao-b-on-gpioao-8-gpioao-9.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ee-c.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12b-bananapi-m2s-rtl8822cs.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12b-odroid-n2-spi.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-g12b-waveshare-cm4-io-base-usb.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-m5-rtl8822cs.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-uartA.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-uartAO_B.dts
 create mode 100644 arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-uartA_cts_rts.dts

diff --git a/arch/arm64/boot/dts/amlogic/overlay/Makefile b/arch/arm64/boot/dts/amlogic/overlay/Makefile
index 9d5c727602d1..1662ecbcefff 100644
--- a/arch/arm64/boot/dts/amlogic/overlay/Makefile
+++ b/arch/arm64/boot/dts/amlogic/overlay/Makefile
@@ -6,7 +6,27 @@ dtbo-$(CONFIG_ARCH_MESON) += \
 	meson-uartC.dtbo \
 	meson-w1-gpio.dtbo \
 	meson-w1AB-gpio.dtbo \
-	meson-g12-gxl-cma-pool-896MB.dtbo
+	meson-g12-gxl-cma-pool-896MB.dtbo \
+	meson-g12a-radxa-zero-gpio-8-led.dtbo \
+	meson-g12a-radxa-zero-gpio-10-led.dtbo \
+	meson-g12a-radxa-zero-i2c-ao-m0-gpioao-2-gpioao-3.dtbo \
+	meson-g12a-radxa-zero-i2c-ee-m1-gpioh-6-gpioh-7.dtbo \
+	meson-g12a-radxa-zero-i2c-ee-m1-gpiox-10-gpiox-11.dtbo \
+	meson-g12a-radxa-zero-i2c-ee-m3-gpioa-14-gpioa-15.dtbo \
+	meson-g12a-radxa-zero-pwm-c-on-gpiox-8.dtbo \
+	meson-g12a-radxa-zero-pwmao-a-on-gpioao-11.dtbo \
+	meson-g12a-radxa-zero-spi-spidev.dtbo \
+	meson-g12a-radxa-zero-uart-ao-a-on-gpioao-0-gpioao-1.dtbo \
+	meson-g12a-radxa-zero-uart-ao-b-on-gpioao-2-gpioao-3.dtbo \
+	meson-g12a-radxa-zero-uart-ao-b-on-gpioao-8-gpioao-9.dtbo \
+	meson-g12a-radxa-zero-uart-ee-c.dtbo \
+	meson-g12b-bananapi-m2s-rtl8822cs.dtbo \
+	meson-g12b-odroid-n2-spi.dtbo \
+	meson-g12b-waveshare-cm4-io-base-usb.dtbo \
+	meson-sm1-bananapi-m5-rtl8822cs.dtbo \
+	meson-sm1-bananapi-uartA.dtbo \
+	meson-sm1-bananapi-uartA_cts_rts.dtbo \
+	meson-sm1-bananapi-uartAO_B.dtbo
 
 scr-$(CONFIG_ARCH_MESON) += \
        meson-fixup.scr
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-gpio-10-led.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-gpio-10-led.dts
new file mode 100644
index 000000000000..d76430328955
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-gpio-10-led.dts
@@ -0,0 +1,26 @@
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/gpio/meson-g12a-gpio.h>
+
+/ {
+	compatible = "radxa,zero", "amlogic,g12a";
+
+	fragment@0 {
+		target-path = "/";
+			__overlay__ {
+
+			leds {
+				compatible = "gpio-leds";
+
+				led-green {
+					label = "radxa-zero:green";
+					gpios = <&gpio_ao GPIOAO_10 GPIO_ACTIVE_HIGH>;
+					linux,default-trigger = "heartbeat";
+					default-state = "on";
+				};
+			};
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-gpio-8-led.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-gpio-8-led.dts
new file mode 100644
index 000000000000..9b294e97f79f
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-gpio-8-led.dts
@@ -0,0 +1,26 @@
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/gpio/meson-g12a-gpio.h>
+
+/ {
+	compatible = "radxa,zero", "amlogic,g12a";
+
+	fragment@0 {
+		target-path = "/";
+			__overlay__ {
+
+			leds {
+				compatible = "gpio-leds";
+
+				led-green {
+					label = "radxa-zero:green";
+					gpios = <&gpio_ao GPIOAO_8 GPIO_ACTIVE_HIGH>;
+					linux,default-trigger = "heartbeat";
+					default-state = "on";
+				};
+			};
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ao-m0-gpioao-2-gpioao-3.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ao-m0-gpioao-2-gpioao-3.dts
new file mode 100644
index 000000000000..3f241cb60179
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ao-m0-gpioao-2-gpioao-3.dts
@@ -0,0 +1,15 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "radxa,zero", "amlogic,g12a";
+
+	fragment@0 {
+		target = <&i2c_AO>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-0 = <&i2c_ao_sck_pins &i2c_ao_sda_pins>;
+			pinctrl-names = "default";
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ee-m1-gpioh-6-gpioh-7.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ee-m1-gpioh-6-gpioh-7.dts
new file mode 100644
index 000000000000..a68284bf61b8
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ee-m1-gpioh-6-gpioh-7.dts
@@ -0,0 +1,15 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "radxa,zero", "amlogic,g12a";
+
+	fragment@0 {
+		target = <&i2c1>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-0 = <&i2c1_sda_h6_pins &i2c1_sck_h7_pins>;
+			pinctrl-names = "default";
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ee-m1-gpiox-10-gpiox-11.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ee-m1-gpiox-10-gpiox-11.dts
new file mode 100644
index 000000000000..eb9c402fb633
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ee-m1-gpiox-10-gpiox-11.dts
@@ -0,0 +1,15 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "radxa,zero", "amlogic,g12a";
+
+	fragment@0 {
+		target = <&i2c1>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-0 = <&i2c1_sda_x_pins &i2c1_sck_x_pins>;
+			pinctrl-names = "default";
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ee-m3-gpioa-14-gpioa-15.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ee-m3-gpioa-14-gpioa-15.dts
new file mode 100644
index 000000000000..12a7bc4d460b
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-i2c-ee-m3-gpioa-14-gpioa-15.dts
@@ -0,0 +1,15 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "radxa,zero", "amlogic,g12a";
+
+	fragment@0 {
+		target = <&i2c3>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-0 = <&i2c3_sck_a_pins &i2c3_sda_a_pins>;
+			pinctrl-names = "default";
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-pwm-c-on-gpiox-8.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-pwm-c-on-gpiox-8.dts
new file mode 100644
index 000000000000..14ca6c1964f8
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-pwm-c-on-gpiox-8.dts
@@ -0,0 +1,17 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "radxa,zero", "amlogic,g12a";
+
+	fragment@0 {
+		target = <&pwm_cd>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-0 = <&pwm_c_x8_pins>;
+			pinctrl-names = "default";
+			clocks = <&xtal>;
+			clock-names = "clkin2";
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-pwmao-a-on-gpioao-11.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-pwmao-a-on-gpioao-11.dts
new file mode 100644
index 000000000000..6edbe62224cc
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-pwmao-a-on-gpioao-11.dts
@@ -0,0 +1,17 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "radxa,zero", "amlogic,g12a";
+
+	fragment@0 {
+		target = <&pwm_AO_ab>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-0 = <&pwm_ao_a_pins>;
+			pinctrl-names = "default";
+			clocks = <&xtal>;
+			clock-names = "clkin3";
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-spi-spidev.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-spi-spidev.dts
new file mode 100644
index 000000000000..abb23385a407
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-spi-spidev.dts
@@ -0,0 +1,38 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "radxa,zero", "amlogic,g12a";
+
+	fragment@0 {
+		target = <&spicc0>;
+		__overlay__ {
+			pinctrl-0 = <&spicc0_x_pins &spicc0_ss0_x_pins>;
+			pinctrl-names = "default";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			spidev@0 {
+				compatible = "armbian,spi-dev";
+				status = "disabled";
+				reg = <0>;
+				spi-max-frequency = <10000000>;
+			};
+		};
+	};
+
+	fragment@1 {
+		target = <&spicc1>;
+		__overlay__ {
+			pinctrl-0 = <&spicc1_pins &spicc1_ss0_pins>;
+			pinctrl-names = "default";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			spidev@0 {
+				compatible = "armbian,spi-dev";
+				status = "disabled";
+				reg = <0>;
+				spi-max-frequency = <10000000>;
+			};
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ao-a-on-gpioao-0-gpioao-1.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ao-a-on-gpioao-0-gpioao-1.dts
new file mode 100644
index 000000000000..350448d20d88
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ao-a-on-gpioao-0-gpioao-1.dts
@@ -0,0 +1,15 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "radxa,zero", "amlogic,g12a";
+
+	fragment@0 {
+		target = <&uart_AO>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-0 = <&uart_ao_a_pins>;
+			pinctrl-names = "default";
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ao-b-on-gpioao-2-gpioao-3.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ao-b-on-gpioao-2-gpioao-3.dts
new file mode 100644
index 000000000000..26790de42535
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ao-b-on-gpioao-2-gpioao-3.dts
@@ -0,0 +1,15 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "radxa,zero", "amlogic,g12a";
+
+	fragment@0 {
+		target = <&uart_AO_B>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-0 = <&uart_ao_b_2_3_pins>;
+			pinctrl-names = "default";
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ao-b-on-gpioao-8-gpioao-9.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ao-b-on-gpioao-8-gpioao-9.dts
new file mode 100644
index 000000000000..ff3e522854b0
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ao-b-on-gpioao-8-gpioao-9.dts
@@ -0,0 +1,15 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "radxa,zero", "amlogic,g12a";
+
+	fragment@0 {
+		target = <&uart_AO_B>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-0 = <&uart_ao_b_8_9_pins>;
+			pinctrl-names = "default";
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ee-c.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ee-c.dts
new file mode 100644
index 000000000000..afcf79eeab21
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12a-radxa-zero-uart-ee-c.dts
@@ -0,0 +1,15 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "radxa,zero", "amlogic,g12a";
+
+	fragment@0 {
+		target = <&uart_C>;
+		__overlay__ {
+			status = "okay";
+			pinctrl-0 = <&uart_c_pins &uart_c_cts_rts_pins>;
+			pinctrl-names = "default";
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12b-bananapi-m2s-rtl8822cs.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12b-bananapi-m2s-rtl8822cs.dts
new file mode 100644
index 000000000000..f9d014f03789
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12b-bananapi-m2s-rtl8822cs.dts
@@ -0,0 +1,23 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	/* Banana Pi M2S/M5 */
+	compatible = "bananapi,bpi-m2s", "bananapi,bpi-m5";
+
+	/* RTL8822CS SDIO WIFI */
+	fragment@0 {
+		target = <&sd_emmc_a>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+
+	/* RTL8822CS BLUETOOTH */
+	fragment@1 {
+		target = <&uart_A>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12b-odroid-n2-spi.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12b-odroid-n2-spi.dts
new file mode 100644
index 000000000000..658afb1fb58d
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12b-odroid-n2-spi.dts
@@ -0,0 +1,23 @@
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/gpio/meson-g12a-gpio.h>
+
+/ {
+	fragment@0 {
+		target = <&sd_emmc_c>;
+		__overlay__ {
+			pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_4b_pins>, <&emmc_ds_pins>;
+			bus-width = <4>;
+		};
+	};
+
+	fragment@1 {
+		target = <&spifc>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-g12b-waveshare-cm4-io-base-usb.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-g12b-waveshare-cm4-io-base-usb.dts
new file mode 100644
index 000000000000..0516113267d3
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-g12b-waveshare-cm4-io-base-usb.dts
@@ -0,0 +1,20 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "bananapi,bpi-cm4io", "bananapi,bpi-cm4", "amlogic,a311d", "amlogic,g12b";
+
+	fragment@0 {
+		target-path = "/";
+		__overlay__ {
+			model = "Waveshare CM4-IO Baseboard with BPI-CM4 Module";
+		};
+	};
+	
+	fragment@1 {
+		target = <&usb>;
+		__overlay__ {
+			dr_mode = "host";
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-m5-rtl8822cs.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-m5-rtl8822cs.dts
new file mode 100644
index 000000000000..f9d014f03789
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-m5-rtl8822cs.dts
@@ -0,0 +1,23 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	/* Banana Pi M2S/M5 */
+	compatible = "bananapi,bpi-m2s", "bananapi,bpi-m5";
+
+	/* RTL8822CS SDIO WIFI */
+	fragment@0 {
+		target = <&sd_emmc_a>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+
+	/* RTL8822CS BLUETOOTH */
+	fragment@1 {
+		target = <&uart_A>;
+		__overlay__ {
+			status = "okay";
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-uartA.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-uartA.dts
new file mode 100644
index 000000000000..ea2f401786e6
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-uartA.dts
@@ -0,0 +1,15 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "bananapi,bpi-m5", "bananapi,bpi-m2-pro", "amlogic,sm1";
+
+	fragment@0 {
+		target = <&uart_A>;
+
+		__overlay__ {
+			status = "okay";
+		};
+	};
+};
+
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-uartAO_B.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-uartAO_B.dts
new file mode 100644
index 000000000000..efac8a5140b3
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-uartAO_B.dts
@@ -0,0 +1,14 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "bananapi,bpi-m5", "bananapi,bpi-m2-pro", "amlogic,sm1";
+
+	fragment@0 {
+		target = <&uart_AO_B>;
+
+		__overlay__ {
+			status = "okay";
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-uartA_cts_rts.dts b/arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-uartA_cts_rts.dts
new file mode 100644
index 000000000000..40276d8e5f8f
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/overlay/meson-sm1-bananapi-uartA_cts_rts.dts
@@ -0,0 +1,17 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+	compatible = "bananapi,bpi-m5", "bananapi,bpi-m2-pro", "amlogic,sm1";
+
+	fragment@0 {
+		target = <&uart_A>;
+
+		__overlay__ {
+			status = "okay";
+			pinctrl-names = "default";
+			pinctrl-0 = <&uart_a_cts_rts_pins>;
+		};
+	};
+};
+
-- 
Armbian

