diff mbox series

[v1,3/3] ARM: dts: meson8m2: mxiii-plus: Enable Bluetooth and WiFi support

Message ID 20230321171213.2808460-4-martin.blumenstingl@googlemail.com (mailing list archive)
State New, archived
Headers show
Series ARM: dts: Enable WiFi and Bluetooth support on MXIII-Plus | expand

Commit Message

Martin Blumenstingl March 21, 2023, 5:12 p.m. UTC
The MXIII Plus uses an Ampak AP6330 Bluetooth and WiFi combo chip.
Bluetooth is connected to &uart_A and requires toggling GPIOX_20.
WiFi can be routed to either &sdhc or &sdio. Route WiFi to &sdhc
since  &sdio is already connected to the SD card. Additionally WiFi
requires toggling GPIOX_11 and GPIOAO_6 as well as enabling the 32kHz
clock signal.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
---
 arch/arm/boot/dts/meson8m2-mxiii-plus.dts | 48 ++++++++++++++++++++++-
 1 file changed, 47 insertions(+), 1 deletion(-)

Comments

Neil Armstrong March 22, 2023, 10:30 a.m. UTC | #1
On 21/03/2023 18:12, Martin Blumenstingl wrote:
> The MXIII Plus uses an Ampak AP6330 Bluetooth and WiFi combo chip.
> Bluetooth is connected to &uart_A and requires toggling GPIOX_20.
> WiFi can be routed to either &sdhc or &sdio. Route WiFi to &sdhc
> since  &sdio is already connected to the SD card. Additionally WiFi
> requires toggling GPIOX_11 and GPIOAO_6 as well as enabling the 32kHz
> clock signal.
> 
> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> ---
>   arch/arm/boot/dts/meson8m2-mxiii-plus.dts | 48 ++++++++++++++++++++++-
>   1 file changed, 47 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/boot/dts/meson8m2-mxiii-plus.dts b/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
> index fa6d55f1cfb9..aa4d4bf70629 100644
> --- a/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
> +++ b/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
> @@ -19,7 +19,6 @@ aliases {
>   		ethernet0 = &ethmac;
>   		i2c0 = &i2c_AO;
>   		serial0 = &uart_AO;
> -		serial1 = &uart_A;
>   		mmc0 = &sd_card_slot;
>   	};
>   
> @@ -45,12 +44,32 @@ button-function {
>   		};
>   	};
>   
> +	sdio_pwrseq: sdio-pwrseq {
> +		compatible = "mmc-pwrseq-simple";
> +
> +		pinctrl-0 = <&xtal_32k_out_pins>;
> +		pinctrl-names = "default";
> +
> +		reset-gpios = <&gpio GPIOX_11 GPIO_ACTIVE_LOW>,
> +			      <&gpio_ao GPIOAO_6 GPIO_ACTIVE_LOW>;
> +
> +		clocks = <&xtal_32k_out>;
> +		clock-names = "ext_clock";
> +	};
> +
>   	vcc_3v3: regulator-vcc3v3 {
>   		compatible = "regulator-fixed";
>   		regulator-name = "VCC3V3";
>   		regulator-min-microvolt = <3300000>;
>   		regulator-max-microvolt = <3300000>;
>   	};
> +
> +	xtal_32k_out: xtal-32k-out-clk {
> +		compatible = "fixed-clock";
> +		#clock-cells = <0>;
> +		clock-frequency = <32768>;
> +		clock-output-names = "xtal_32k_out";
> +	};
>   };
>   
>   &cpu0 {
> @@ -192,6 +211,27 @@ &saradc {
>   	vref-supply = <&vddio_ao1v8>;
>   };
>   
> +/* SDIO wifi */
> +&sdhc {
> +	status = "okay";
> +
> +	pinctrl-0 = <&sdxc_a_pins>;
> +	pinctrl-names = "default";
> +
> +	bus-width = <4>;
> +	max-frequency = <50000000>;
> +
> +	disable-wp;
> +	non-removable;
> +	cap-mmc-highspeed;
> +	cap-sd-highspeed;
> +
> +	mmc-pwrseq = <&sdio_pwrseq>;
> +
> +	vmmc-supply = <&vcc_3v3>;
> +	vqmmc-supply = <&vcc_3v3>;
> +};
> +
>   &sdio {
>   	status = "okay";
>   
> @@ -222,6 +262,12 @@ &uart_A {
>   	pinctrl-0 = <&uart_a1_pins>, <&uart_a1_cts_rts_pins>;
>   	pinctrl-names = "default";
>   	uart-has-rtscts;
> +
> +	bluetooth {
> +		compatible = "brcm,bcm20702a1";
> +		shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>;
> +		max-speed = <2000000>;
> +	};
>   };
>   
>   &uart_AO {

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/meson8m2-mxiii-plus.dts b/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
index fa6d55f1cfb9..aa4d4bf70629 100644
--- a/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
+++ b/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
@@ -19,7 +19,6 @@  aliases {
 		ethernet0 = &ethmac;
 		i2c0 = &i2c_AO;
 		serial0 = &uart_AO;
-		serial1 = &uart_A;
 		mmc0 = &sd_card_slot;
 	};
 
@@ -45,12 +44,32 @@  button-function {
 		};
 	};
 
+	sdio_pwrseq: sdio-pwrseq {
+		compatible = "mmc-pwrseq-simple";
+
+		pinctrl-0 = <&xtal_32k_out_pins>;
+		pinctrl-names = "default";
+
+		reset-gpios = <&gpio GPIOX_11 GPIO_ACTIVE_LOW>,
+			      <&gpio_ao GPIOAO_6 GPIO_ACTIVE_LOW>;
+
+		clocks = <&xtal_32k_out>;
+		clock-names = "ext_clock";
+	};
+
 	vcc_3v3: regulator-vcc3v3 {
 		compatible = "regulator-fixed";
 		regulator-name = "VCC3V3";
 		regulator-min-microvolt = <3300000>;
 		regulator-max-microvolt = <3300000>;
 	};
+
+	xtal_32k_out: xtal-32k-out-clk {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <32768>;
+		clock-output-names = "xtal_32k_out";
+	};
 };
 
 &cpu0 {
@@ -192,6 +211,27 @@  &saradc {
 	vref-supply = <&vddio_ao1v8>;
 };
 
+/* SDIO wifi */
+&sdhc {
+	status = "okay";
+
+	pinctrl-0 = <&sdxc_a_pins>;
+	pinctrl-names = "default";
+
+	bus-width = <4>;
+	max-frequency = <50000000>;
+
+	disable-wp;
+	non-removable;
+	cap-mmc-highspeed;
+	cap-sd-highspeed;
+
+	mmc-pwrseq = <&sdio_pwrseq>;
+
+	vmmc-supply = <&vcc_3v3>;
+	vqmmc-supply = <&vcc_3v3>;
+};
+
 &sdio {
 	status = "okay";
 
@@ -222,6 +262,12 @@  &uart_A {
 	pinctrl-0 = <&uart_a1_pins>, <&uart_a1_cts_rts_pins>;
 	pinctrl-names = "default";
 	uart-has-rtscts;
+
+	bluetooth {
+		compatible = "brcm,bcm20702a1";
+		shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>;
+		max-speed = <2000000>;
+	};
 };
 
 &uart_AO {