]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: freescale: imx8mm-var-som: Rework WiFi/BT and add legacy dts
authorStefano Radaelli <stefano.r@variscite.com>
Thu, 19 Mar 2026 18:40:26 +0000 (19:40 +0100)
committerFrank Li <Frank.Li@nxp.com>
Fri, 27 Mar 2026 13:52:34 +0000 (09:52 -0400)
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>
arch/arm64/boot/dts/freescale/Makefile
arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony-legacy.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dts
arch/arm64/boot/dts/freescale/imx8mm-var-som-wifi-brcm-legacy.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mm-var-som-wifi-bt-iw61x.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mm-var-som.dtsi

index 31bc80586c682e3fa59d9905d3aa6d478c261d2b..960fa4adaefba67bc86bbe5d530a429a528219ce 100644 (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
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony-legacy.dts b/arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony-legacy.dts
new file mode 100644 (file)
index 0000000..faa7074
--- /dev/null
@@ -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;
+};
index 9f4e004f0a37584b36c3d7609390864f608046d2..2b608470da8e05875c68b2bc195045f428d2709b 100644 (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";
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-var-som-wifi-brcm-legacy.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-var-som-wifi-brcm-legacy.dtsi
new file mode 100644 (file)
index 0000000..f44a846
--- /dev/null
@@ -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";
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-var-som-wifi-bt-iw61x.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-var-som-wifi-bt-iw61x.dtsi
new file mode 100644 (file)
index 0000000..15990d1
--- /dev/null
@@ -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
+               >;
+       };
+};
index 749342b9a0a77ea0b3229cc531fa0aeb729e1a78..4c863fe2284a4b6d6236f980930c3c3602e2fa48 100644 (file)
        status = "okay";
 };
 
-/* WIFI */
 &usdhc1 {
        #address-cells = <1>;
        #size-cells = <0>;
        non-removable;
        keep-power-in-suspend;
        status = "okay";
-
-       brcmf: wifi@1 {
-               reg = <1>;
-               compatible = "brcm,bcm4329-fmac";
-       };
 };
 
 /* SD */