113 lines
2.6 KiB
Diff
113 lines
2.6 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Patrick Yavitz <pyavitz@xxxxx.com>
|
||
|
Date: Wed, 2 Aug 2023 19:36:07 -0400
|
||
|
Subject: arch: arm64: dts: amlogic: add wifi/bt support to bananapi m5
|
||
|
|
||
|
The BPI-M5 has an optional RTL8822CS WiFi/BT mezzanine board. Describe
|
||
|
the board but mark the sd_emmc_a and uart_A nodes disabled so they can
|
||
|
be enabled via overlay or fdtput when the board is connected.
|
||
|
|
||
|
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
|
||
|
---
|
||
|
arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts | 66 +++++++++-
|
||
|
1 file changed, 65 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts
|
||
|
index f045bf851638..5f6071ee84a6 100644
|
||
|
--- a/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts
|
||
|
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-bananapi-m5.dts
|
||
|
@@ -25,6 +25,20 @@ cvbs_connector_in: endpoint {
|
||
|
};
|
||
|
};
|
||
|
|
||
|
+ sdio_pwrseq: sdio-pwrseq {
|
||
|
+ compatible = "mmc-pwrseq-simple";
|
||
|
+ reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
|
||
|
+ clocks = <&wifi32k>;
|
||
|
+ clock-names = "ext_clock";
|
||
|
+ };
|
||
|
+
|
||
|
+ wifi32k: wifi32k {
|
||
|
+ compatible = "pwm-clock";
|
||
|
+ #clock-cells = <0>;
|
||
|
+ clock-frequency = <32768>;
|
||
|
+ pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
|
||
|
+ };
|
||
|
+
|
||
|
sound {
|
||
|
compatible = "amlogic,axg-sound-card";
|
||
|
model = "BPI-M5";
|
||
|
@@ -149,7 +163,6 @@ &acodec {
|
||
|
status = "okay";
|
||
|
};
|
||
|
|
||
|
-
|
||
|
&clkc_audio {
|
||
|
status = "okay";
|
||
|
};
|
||
|
@@ -172,6 +185,42 @@ &frddr_c {
|
||
|
status = "okay";
|
||
|
};
|
||
|
|
||
|
+&pwm_ef {
|
||
|
+ status = "okay";
|
||
|
+ pinctrl-0 = <&pwm_e_pins>;
|
||
|
+ pinctrl-names = "default";
|
||
|
+};
|
||
|
+
|
||
|
+/* SDIO */
|
||
|
+&sd_emmc_a {
|
||
|
+ /* enable if WiFi/BT board connected */
|
||
|
+ status = "disabled";
|
||
|
+ pinctrl-0 = <&sdio_pins>;
|
||
|
+ pinctrl-1 = <&sdio_clk_gate_pins>;
|
||
|
+ pinctrl-names = "default", "clk-gate";
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+
|
||
|
+ bus-width = <4>;
|
||
|
+ sd-uhs-sdr104;
|
||
|
+ max-frequency = <50000000>;
|
||
|
+
|
||
|
+ non-removable;
|
||
|
+ disable-wp;
|
||
|
+
|
||
|
+ /* WiFi firmware requires power in suspend */
|
||
|
+ keep-power-in-suspend;
|
||
|
+
|
||
|
+ mmc-pwrseq = <&sdio_pwrseq>;
|
||
|
+
|
||
|
+ vmmc-supply = <&vddao_3v3>;
|
||
|
+ vqmmc-supply = <&vddao_1v8>;
|
||
|
+
|
||
|
+ rtl8822cs: wifi@1 {
|
||
|
+ reg = <1>;
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
&tdmif_b {
|
||
|
status = "okay";
|
||
|
};
|
||
|
@@ -219,3 +268,18 @@ &toddr_b {
|
||
|
&toddr_c {
|
||
|
status = "okay";
|
||
|
};
|
||
|
+
|
||
|
+&uart_A {
|
||
|
+ /* enable if WiFi/BT board connected */
|
||
|
+ status = "disabled";
|
||
|
+ pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
|
||
|
+ pinctrl-names = "default";
|
||
|
+ uart-has-rtscts;
|
||
|
+
|
||
|
+ bluetooth {
|
||
|
+ compatible = "realtek,rtl8822cs-bt";
|
||
|
+ enable-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
|
||
|
+ host-wake-gpios = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>;
|
||
|
+ device-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>;
|
||
|
+ };
|
||
|
+};
|
||
|
--
|
||
|
Armbian
|
||
|
|