i.MX93 Wireless SiP is created by integrating i.MX93 and IW610 WLCSP
(Wi-Fi + BLE + 802.15.4). And i.MX93 Wireless EVK board with the i.MX93
Wireless SiP basically reuse the i.MX93 11x11 EVK board, with some minor
functional and pin connection differences.
Here are the detailed differences between i.MX93 Wireless EVK and i.MX93
11x11 EVK board.
Function differences:
Function i.MX93W EVK i.MX93 EVK
WIFI/BT IW610 in i.MX93W IW612 M.2 module
MQS N Y
PDM MIC N Y
M.2 N Y
RPi 40-pin HDR Limited support(pin conflict) Y
Pin connection differences:
Function Signal name i.MX93W EVK i.MX93 EVK
WIFI/BT SPI_FRM SAI1_TXFS (spi1.PCS0) GPIO_IO08 (spi3.PCS0)
SPI_TXD SAI1_TXC (spi1.SIN) GPIO_IO09 (spi3.SIN)
SPI_RXD SAI1_RXD0 (spi1.SOUT) GPIO_IO10 (spi3.SOUT)
SPI_CLK SAI1_TXD0 (spi1.SCK) GPIO_IO11 (spi3.SCK)
SPI_INT CCM_CLKO1 on-board IO expander
NB_WAKE_IN PDM_CLK on-module IO expander
WL_WAKE_IN PDM_BIT_STREAM0 on-module IO expander
IND_RST_WL PDM_BIT_STREAM1 on-module IO expander
IND_RST_NB GPIO_IO28 on-module IO expander
PDn GPIO_IO29 on-module IO expander
NB_WAKE_OUT GPIO_IO14 on-board IO expander
WL_WAKE_OUT GPIO_IO15 CCM_CLKO1
I2C3 I2C3_SDA GPIO_IO00 GPIO_IO28
I2C3_SCL GPIO_IO01 GPIO_IO29
Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
---
arch/arm64/boot/dts/freescale/Makefile | 1 +
arch/arm64/boot/dts/freescale/imx93w-evk.dts | 73 ++++++++++++++++++++
2 files changed, 74 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx93w-evk.dts
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 700bab4d3e60..d0ea746c59b8 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -418,6 +418,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-9x9-qsb-i3c.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-evk.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-frdm.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-14x14-evk.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx93w-evk.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-kontron-bl-osm-s.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx93w-evk.dts b/arch/arm64/boot/dts/freescale/imx93w-evk.dts
new file mode 100644
index 000000000000..f09587dc74f6
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx93w-evk.dts
@@ -0,0 +1,73 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2026 NXP
+ */
+
+#include "imx93-11x11-evk.dts"
+
+/ {
+ model = "NXP i.MX93W EVK board";
+ compatible = "fsl,imx93-wireless-evk", "fsl,imx93";
+
+ /delete-node/ regulator-m2-pwr;
+
+ sound-bt-sco {
+ status = "disabled";
+ };
+
+ sound-micfil {
+ status = "disabled";
+ };
+};
+
+&pcal6524 {
+ /delete-node/ m2-pcm-level-shifter-hog;
+};
+
+®_usdhc3_vmmc {
+ /delete-property/ vin-supply;
+ pinctrl-0 = <&pinctrl_reg_usdhc3_vmmc>;
+ pinctrl-names = "default";
+ gpio = <&gpio2 29 GPIO_ACTIVE_HIGH>;
+};
+
+&usdhc3_pwrseq {
+ pinctrl-0 = <&pinctrl_usdhc3_pwrseq>;
+ pinctrl-names = "default";
+ reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
+};
+
+&micfil {
+ status = "disabled";
+};
+
+&sai1 {
+ status = "disabled";
+};
+
+&iomuxc {
+ pinctrl_lpi2c3: lpi2c3grp {
+ fsl,pins = <
+ MX93_PAD_GPIO_IO00__LPI2C3_SDA 0x40000b9e
+ MX93_PAD_GPIO_IO01__LPI2C3_SCL 0x40000b9e
+ >;
+ };
+
+ pinctrl_reg_usdhc3_vmmc: regusdhc3vmmcgrp {
+ fsl,pins = <
+ MX93_PAD_GPIO_IO29__GPIO2_IO29 0x31e
+ >;
+ };
+
+ pinctrl_usdhc3_pwrseq: usdhc3pwrseqgrp {
+ fsl,pins = <
+ MX93_PAD_PDM_BIT_STREAM1__GPIO1_IO10 0x31e
+ >;
+ };
+
+ pinctrl_usdhc3_wlan: usdhc3wlangrp {
+ fsl,pins = <
+ MX93_PAD_GPIO_IO15__GPIO2_IO15 0x31e
+ >;
+ };
+};
--
2.37.1
On Fri, Jan 23, 2026 at 10:44:48AM +0800, Sherry Sun wrote:
> i.MX93 Wireless SiP is created by integrating i.MX93 and IW610 WLCSP
> (Wi-Fi + BLE + 802.15.4). And i.MX93 Wireless EVK board with the i.MX93
> Wireless SiP basically reuse the i.MX93 11x11 EVK board, with some minor
> functional and pin connection differences.
>
> Here are the detailed differences between i.MX93 Wireless EVK and i.MX93
> 11x11 EVK board.
>
> Function differences:
> Function i.MX93W EVK i.MX93 EVK
> WIFI/BT IW610 in i.MX93W IW612 M.2 module
> MQS N Y
> PDM MIC N Y
> M.2 N Y
> RPi 40-pin HDR Limited support(pin conflict) Y
>
> Pin connection differences:
> Function Signal name i.MX93W EVK i.MX93 EVK
> WIFI/BT SPI_FRM SAI1_TXFS (spi1.PCS0) GPIO_IO08 (spi3.PCS0)
> SPI_TXD SAI1_TXC (spi1.SIN) GPIO_IO09 (spi3.SIN)
> SPI_RXD SAI1_RXD0 (spi1.SOUT) GPIO_IO10 (spi3.SOUT)
> SPI_CLK SAI1_TXD0 (spi1.SCK) GPIO_IO11 (spi3.SCK)
> SPI_INT CCM_CLKO1 on-board IO expander
> NB_WAKE_IN PDM_CLK on-module IO expander
> WL_WAKE_IN PDM_BIT_STREAM0 on-module IO expander
> IND_RST_WL PDM_BIT_STREAM1 on-module IO expander
> IND_RST_NB GPIO_IO28 on-module IO expander
> PDn GPIO_IO29 on-module IO expander
> NB_WAKE_OUT GPIO_IO14 on-board IO expander
> WL_WAKE_OUT GPIO_IO15 CCM_CLKO1
> I2C3 I2C3_SDA GPIO_IO00 GPIO_IO28
> I2C3_SCL GPIO_IO01 GPIO_IO29
>
> Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
> ---
> arch/arm64/boot/dts/freescale/Makefile | 1 +
> arch/arm64/boot/dts/freescale/imx93w-evk.dts | 73 ++++++++++++++++++++
> 2 files changed, 74 insertions(+)
> create mode 100644 arch/arm64/boot/dts/freescale/imx93w-evk.dts
>
> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> index 700bab4d3e60..d0ea746c59b8 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -418,6 +418,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-9x9-qsb-i3c.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-evk.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-frdm.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx93-14x14-evk.dtb
> +dtb-$(CONFIG_ARCH_MXC) += imx93w-evk.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx93-kontron-bl-osm-s.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin.dtb
> diff --git a/arch/arm64/boot/dts/freescale/imx93w-evk.dts b/arch/arm64/boot/dts/freescale/imx93w-evk.dts
> new file mode 100644
> index 000000000000..f09587dc74f6
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx93w-evk.dts
> @@ -0,0 +1,73 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright 2026 NXP
> + */
> +
> +#include "imx93-11x11-evk.dts"
> +
> +/ {
> + model = "NXP i.MX93W EVK board";
> + compatible = "fsl,imx93-wireless-evk", "fsl,imx93";
> +
> + /delete-node/ regulator-m2-pwr;
If you remove nodes then clearly you do not share a common design, thus
you should not include other DTSI... and definitely even more confusing
to include other DTS.
> +
> + sound-bt-sco {
> + status = "disabled";
> + };
> +
> + sound-micfil {
> + status = "disabled";
Kind of same here.
It's poor practice to include DTS inside DTS, some platforms disallow
this. Is it acceptable pattern in NXP/iMX?
> + };
> +};
> +
> +&pcal6524 {
> + /delete-node/ m2-pcm-level-shifter-hog;
Why do you remove so much?
> +};
> +
> +®_usdhc3_vmmc {
> + /delete-property/ vin-supply;
Do you understand how inclusion works? You claim here you have common
parts. Removing them means they are not common.
Best regards,
Krzysztof
On Fri, Jan 23, 2026 at 10:02:34AM +0100, Krzysztof Kozlowski wrote:
> On Fri, Jan 23, 2026 at 10:44:48AM +0800, Sherry Sun wrote:
> > i.MX93 Wireless SiP is created by integrating i.MX93 and IW610 WLCSP
> > (Wi-Fi + BLE + 802.15.4). And i.MX93 Wireless EVK board with the i.MX93
> > Wireless SiP basically reuse the i.MX93 11x11 EVK board, with some minor
> > functional and pin connection differences.
> >
> > Here are the detailed differences between i.MX93 Wireless EVK and i.MX93
> > 11x11 EVK board.
> >
> > Function differences:
> > Function i.MX93W EVK i.MX93 EVK
> > WIFI/BT IW610 in i.MX93W IW612 M.2 module
> > MQS N Y
> > PDM MIC N Y
> > M.2 N Y
> > RPi 40-pin HDR Limited support(pin conflict) Y
> >
> > Pin connection differences:
> > Function Signal name i.MX93W EVK i.MX93 EVK
> > WIFI/BT SPI_FRM SAI1_TXFS (spi1.PCS0) GPIO_IO08 (spi3.PCS0)
> > SPI_TXD SAI1_TXC (spi1.SIN) GPIO_IO09 (spi3.SIN)
> > SPI_RXD SAI1_RXD0 (spi1.SOUT) GPIO_IO10 (spi3.SOUT)
> > SPI_CLK SAI1_TXD0 (spi1.SCK) GPIO_IO11 (spi3.SCK)
> > SPI_INT CCM_CLKO1 on-board IO expander
> > NB_WAKE_IN PDM_CLK on-module IO expander
> > WL_WAKE_IN PDM_BIT_STREAM0 on-module IO expander
> > IND_RST_WL PDM_BIT_STREAM1 on-module IO expander
> > IND_RST_NB GPIO_IO28 on-module IO expander
> > PDn GPIO_IO29 on-module IO expander
> > NB_WAKE_OUT GPIO_IO14 on-board IO expander
> > WL_WAKE_OUT GPIO_IO15 CCM_CLKO1
> > I2C3 I2C3_SDA GPIO_IO00 GPIO_IO28
> > I2C3_SCL GPIO_IO01 GPIO_IO29
> >
> > Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
> > ---
> > arch/arm64/boot/dts/freescale/Makefile | 1 +
> > arch/arm64/boot/dts/freescale/imx93w-evk.dts | 73 ++++++++++++++++++++
> > 2 files changed, 74 insertions(+)
> > create mode 100644 arch/arm64/boot/dts/freescale/imx93w-evk.dts
> >
> > diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> > index 700bab4d3e60..d0ea746c59b8 100644
> > --- a/arch/arm64/boot/dts/freescale/Makefile
> > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > @@ -418,6 +418,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-9x9-qsb-i3c.dtb
> > dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-evk.dtb
> > dtb-$(CONFIG_ARCH_MXC) += imx93-11x11-frdm.dtb
> > dtb-$(CONFIG_ARCH_MXC) += imx93-14x14-evk.dtb
> > +dtb-$(CONFIG_ARCH_MXC) += imx93w-evk.dtb
> > dtb-$(CONFIG_ARCH_MXC) += imx93-kontron-bl-osm-s.dtb
> > dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash.dtb
> > dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin.dtb
> > diff --git a/arch/arm64/boot/dts/freescale/imx93w-evk.dts b/arch/arm64/boot/dts/freescale/imx93w-evk.dts
> > new file mode 100644
> > index 000000000000..f09587dc74f6
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/freescale/imx93w-evk.dts
> > @@ -0,0 +1,73 @@
> > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > +/*
> > + * Copyright 2026 NXP
> > + */
> > +
> > +#include "imx93-11x11-evk.dts"
> > +
> > +/ {
> > + model = "NXP i.MX93W EVK board";
> > + compatible = "fsl,imx93-wireless-evk", "fsl,imx93";
> > +
> > + /delete-node/ regulator-m2-pwr;
>
> If you remove nodes then clearly you do not share a common design, thus
> you should not include other DTSI... and definitely even more confusing
> to include other DTS.
>
> > +
> > + sound-bt-sco {
> > + status = "disabled";
> > + };
> > +
> > + sound-micfil {
> > + status = "disabled";
>
> Kind of same here.
>
> It's poor practice to include DTS inside DTS, some platforms disallow
> this. Is it acceptable pattern in NXP/iMX?
Some old platform used it. It is discouraged for new platform.
Frank
>
> > + };
> > +};
> > +
> > +&pcal6524 {
> > + /delete-node/ m2-pcm-level-shifter-hog;
>
> Why do you remove so much?
>
> > +};
> > +
> > +®_usdhc3_vmmc {
> > + /delete-property/ vin-supply;
>
> Do you understand how inclusion works? You claim here you have common
> parts. Removing them means they are not common.
>
> Best regards,
> Krzysztof
>
© 2016 - 2026 Red Hat, Inc.