[PATCH v2 6/9] arm64: dts: imx8ulp-evk: Enable LPUART6 for Bluetooth

From: Peng Fan (OSS)

Date: Mon Jul 20 2026 - 10:48:32 EST


From: Sherry Sun <sherry.sun@xxxxxxx>

Enable lpuart6 with RTS/CTS flow control on the i.MX 8ULP EVK board
and add an NXP 88W8987 Bluetooth companion node to pair the UART
transport with the wireless chip.

i.MX8ULP 9X9 EVK use different lpuart6 pins which used for M.2 bluetooth,
also use the sai6 instead of sai5 for PCM interface on M.2, so need to
update the pin setting in dts.

Signed-off-by: Sherry Sun <sherry.sun@xxxxxxx>
Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
---
arch/arm64/boot/dts/freescale/imx8ulp-9x9-evk.dts | 17 +++++++++++++++++
arch/arm64/boot/dts/freescale/imx8ulp-evk.dts | 20 ++++++++++++++++++++
2 files changed, 37 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8ulp-9x9-evk.dts b/arch/arm64/boot/dts/freescale/imx8ulp-9x9-evk.dts
index af8f0d6087f71..71c66c58edc4d 100644
--- a/arch/arm64/boot/dts/freescale/imx8ulp-9x9-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8ulp-9x9-evk.dts
@@ -75,6 +75,23 @@ MX8ULP_PAD_PTE20__USB1_OC 0x10003
>;
};

+&pinctrl_lpuart6 {
+ fsl,pins = <
+ MX8ULP_PAD_PTF18__LPUART6_TX 0x3
+ MX8ULP_PAD_PTF19__LPUART6_RX 0x3
+ MX8ULP_PAD_PTF16__LPUART6_CTS_B 0x3
+ MX8ULP_PAD_PTF17__LPUART6_RTS_B 0x3
+ >;
+};
+
+&lpspi5 { /* conflict with lpuart6 PAD_PTF16-19 */
+ status = "disabled";
+};
+
+&sai5 {
+ status = "disabled";
+};
+
&sai6 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&pinctrl_sai6>;
diff --git a/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts b/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
index 6a92c5ca9a412..84c61656f3f2b 100644
--- a/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
@@ -167,6 +167,17 @@ &lpuart5 {
status = "okay";
};

+&lpuart6 {
+ /* BT */
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_lpuart6>;
+ status = "okay";
+
+ bluetooth {
+ compatible = "nxp,88w8987-bt";
+ };
+};
+
&lpi2c7 {
#address-cells = <1>;
#size-cells = <0>;
@@ -349,6 +360,15 @@ MX8ULP_PAD_PTF15__LPUART5_RX 0x3
>;
};

+ pinctrl_lpuart6: lpuart6grp {
+ fsl,pins = <
+ MX8ULP_PAD_PTE10__LPUART6_TX 0x3
+ MX8ULP_PAD_PTE11__LPUART6_RX 0x3
+ MX8ULP_PAD_PTE9__LPUART6_RTS_B 0x3
+ MX8ULP_PAD_PTE8__LPUART6_CTS_B 0x3
+ >;
+ };
+
pinctrl_lpi2c7: lpi2c7grp {
fsl,pins = <
MX8ULP_PAD_PTE12__LPI2C7_SCL 0x20

--
2.34.1