arm64: dts: freescale: imx8mm-var-som: Rework WiFi/BT and add legacy dts

The VAR-SOM-MX8MM currently integrates the NXP IW61x wireless module,
providing WiFi over SDIO and Bluetooth over UART.

Move the wireless module configuration out of the base
imx8mm-var-som.dtsi and provide dedicated variant includes.
The IW61x configuration is moved to imx8mm-var-som-wifi-bt-iw61x.dtsi
and used by the Symphony evaluation board device tree.

A separate imx8mm-var-som-wifi-brcm-legacy.dtsi include is added to keep
the configuration for the legacy Broadcom SDIO WiFi module used on
earlier SOM revisions.

To preserve compatibility with older SOM revisions, add a separate
imx8mm-var-som-symphony-legacy.dtb, which disables the IW61x setup and
applies the Broadcom-specific configuration.

The Broadcom-based SOM revision is no longer in production, but support
is kept for existing users.

Signed-off-by: Stefano Radaelli <stefano.r@variscite.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
This commit is contained in:
Stefano Radaelli 2026-03-19 19:40:26 +01:00 committed by Frank Li
parent 4c2d9f56f4
commit 8e7ce17e6d
6 changed files with 78 additions and 6 deletions

View File

@ -161,6 +161,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-tqma8mqml-mba8mx.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-tx8m-1610-moduline-iv-306-d.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-tx8m-1610-moduline-mini-111.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-var-som-symphony.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-var-som-symphony-legacy.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw71xx-0x.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw72xx-0x.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-venice-gw73xx-0x.dtb

View File

@ -0,0 +1,19 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2026 Variscite Ltd.
*/
#include "imx8mm-var-som-symphony.dts"
#include "imx8mm-var-som-wifi-brcm-legacy.dtsi"
&bluetooth_iw61x {
status = "disabled";
};
&iw61x_pwrseq {
status = "disabled";
};
&usdhc1 {
/delete-property/ mmc-pwrseq;
};

View File

@ -7,6 +7,7 @@
#include <dt-bindings/leds/common.h>
#include "imx8mm-var-som.dtsi"
#include "imx8mm-var-som-wifi-bt-iw61x.dtsi"
/ {
model = "Variscite VAR-SOM-MX8MM Symphony evaluation board";

View File

@ -0,0 +1,12 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2026 Variscite Ltd.
*/
/* WIFI */
&usdhc1 {
brcmf: wifi@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
};
};

View File

@ -0,0 +1,45 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2026 Variscite Ltd.
*/
/ {
iw61x_pwrseq: wifi-pwrseq {
compatible = "mmc-pwrseq-simple";
post-power-on-delay-ms = <100>;
power-off-delay-us = <10000>;
reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>, /* WIFI_RESET */
<&gpio2 20 GPIO_ACTIVE_LOW>; /* WIFI_PWR_EN */
};
};
&uart2 {
pinctrl-0 = <&pinctrl_uart2>, <&pinctrl_bt>;
bluetooth_iw61x: bluetooth {
compatible = "nxp,88w8987-bt";
};
};
/* WIFI */
&usdhc1 {
pinctrl-0 = <&pinctrl_usdhc1>, <&pinctrl_wifi>;
pinctrl-1 = <&pinctrl_usdhc1_100mhz>, <&pinctrl_wifi>;
pinctrl-2 = <&pinctrl_usdhc1_200mhz>, <&pinctrl_wifi>;
mmc-pwrseq = <&iw61x_pwrseq>;
};
&iomuxc {
pinctrl_bt: bluetoothgrp {
fsl,pins = <
MX8MM_IOMUXC_SD1_DATA4_GPIO2_IO6 0xc1
>;
};
pinctrl_wifi: wifigrp {
fsl,pins = <
MX8MM_IOMUXC_SD2_WP_GPIO2_IO20 0x140
MX8MM_IOMUXC_SD1_RESET_B_GPIO2_IO10 0xc1
>;
};
};

View File

@ -390,7 +390,6 @@ &usbotg2 {
status = "okay";
};
/* WIFI */
&usdhc1 {
#address-cells = <1>;
#size-cells = <0>;
@ -402,11 +401,6 @@ &usdhc1 {
non-removable;
keep-power-in-suspend;
status = "okay";
brcmf: wifi@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
};
};
/* SD */