Re: [PATCH 6/9] arm64: dts: imx8ulp-evk: Enable LPUART6 for Bluetooth
From: Frank Li
Date: Wed Jul 15 2026 - 11:17:59 EST
On Wed, Jul 15, 2026 at 08:33:07PM +0800, Peng Fan (OSS) wrote:
> 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 | 21 +++++++++++++++++++++
> 2 files changed, 38 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..66e99cd24040f 100644
> --- a/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
> @@ -167,6 +167,18 @@ &lpuart5 {
> status = "okay";
> };
>
> +&lpuart6 {
> + /* BT */
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <&pinctrl_lpuart6>;
> + pinctrl-1 = <&pinctrl_lpuart6>;
sleep is the same as default state, are you sure need both?
Frank
> + status = "okay";
> +
> + bluetooth {
> + compatible = "nxp,88w8987-bt";
> + };
> +};
> +
> &lpi2c7 {
> #address-cells = <1>;
> #size-cells = <0>;
> @@ -349,6 +361,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
>
>