From ea805f1a15ff797f935bba6b7bd7fb995b81ed4f Mon Sep 17 00:00:00 2001 From: Patrick Yavitz Date: Wed, 2 Aug 2023 19:28:24 -0400 Subject: [PATCH] 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 --- .../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>; + }; +}; -- 2.39.2