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

Frank Li Frank.li at oss.nxp.com
Wed Jul 15 08:17:36 PDT 2026


On Wed, Jul 15, 2026 at 08:33:07PM +0800, Peng Fan (OSS) wrote:
> From: Sherry Sun <sherry.sun at nxp.com>
>
> 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 at nxp.com>
> Signed-off-by: Peng Fan <peng.fan at nxp.com>
> ---
>  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
>
>



More information about the linux-arm-kernel mailing list