From 9a893c6bd97d0a550caca9bb9178bd91a52b2ee3 Mon Sep 17 00:00:00 2001 From: Emilio Benavente Date: Fri, 28 Mar 2025 12:21:04 -0500 Subject: [PATCH] boards: nxp: Added I2S Support for RW612 Added I2S support for RW612. Signed-off-by: Emilio Benavente --- boards/nxp/frdm_rw612/frdm_rw612-pinctrl.dtsi | 9 ++++++++- boards/nxp/frdm_rw612/frdm_rw612.yaml | 3 ++- .../nxp/rd_rw612_bga/rd_rw612_bga-pinctrl.dtsi | 9 ++++++++- boards/nxp/rd_rw612_bga/rd_rw612_bga.dtsi | 2 +- boards/nxp/rd_rw612_bga/rd_rw612_bga.yaml | 3 ++- soc/nxp/rw/soc.c | 16 ++++++++++++++++ 6 files changed, 37 insertions(+), 5 deletions(-) diff --git a/boards/nxp/frdm_rw612/frdm_rw612-pinctrl.dtsi b/boards/nxp/frdm_rw612/frdm_rw612-pinctrl.dtsi index 3a6e78919a3..b54f0aa7e91 100644 --- a/boards/nxp/frdm_rw612/frdm_rw612-pinctrl.dtsi +++ b/boards/nxp/frdm_rw612/frdm_rw612-pinctrl.dtsi @@ -1,5 +1,5 @@ /* - * Copyright 2022-2024 NXP + * Copyright 2022-2025 NXP * * SPDX-License-Identifier: Apache-2.0 */ @@ -72,4 +72,11 @@ slew-rate = "ultra"; }; }; + + pinmux_flexcomm1_i2s: pinmux_flexcomm1_i2s { + group0 { + pinmux = ; + slew-rate = "normal"; + }; + }; }; diff --git a/boards/nxp/frdm_rw612/frdm_rw612.yaml b/boards/nxp/frdm_rw612/frdm_rw612.yaml index 6ec0eb9bd51..59697fc6cbf 100644 --- a/boards/nxp/frdm_rw612/frdm_rw612.yaml +++ b/boards/nxp/frdm_rw612/frdm_rw612.yaml @@ -1,5 +1,5 @@ # -# Copyright 2022-2024 NXP +# Copyright 2022-2025 NXP # # SPDX-License-Identifier: Apache-2.0 # @@ -18,6 +18,7 @@ supported: - dma - spi - i2c + - i2s - entropy - usb_device - watchdog diff --git a/boards/nxp/rd_rw612_bga/rd_rw612_bga-pinctrl.dtsi b/boards/nxp/rd_rw612_bga/rd_rw612_bga-pinctrl.dtsi index a82b286091a..c98853fa499 100644 --- a/boards/nxp/rd_rw612_bga/rd_rw612_bga-pinctrl.dtsi +++ b/boards/nxp/rd_rw612_bga/rd_rw612_bga-pinctrl.dtsi @@ -1,5 +1,5 @@ /* - * Copyright 2022-2024 NXP + * Copyright 2022-2025 NXP * * SPDX-License-Identifier: Apache-2.0 */ @@ -119,4 +119,11 @@ slew-rate = "normal"; }; }; + + pinmux_flexcomm1_i2s: pinmux_flexcomm1_i2s { + group0 { + pinmux = ; + slew-rate = "normal"; + }; + }; }; diff --git a/boards/nxp/rd_rw612_bga/rd_rw612_bga.dtsi b/boards/nxp/rd_rw612_bga/rd_rw612_bga.dtsi index 71ea2d07989..4c050c63d91 100644 --- a/boards/nxp/rd_rw612_bga/rd_rw612_bga.dtsi +++ b/boards/nxp/rd_rw612_bga/rd_rw612_bga.dtsi @@ -1,5 +1,5 @@ /* - * Copyright 2022-2024 NXP + * Copyright 2022-2025 NXP * * SPDX-License-Identifier: Apache-2.0 */ diff --git a/boards/nxp/rd_rw612_bga/rd_rw612_bga.yaml b/boards/nxp/rd_rw612_bga/rd_rw612_bga.yaml index 6f319e7215d..7e3402f7fc8 100644 --- a/boards/nxp/rd_rw612_bga/rd_rw612_bga.yaml +++ b/boards/nxp/rd_rw612_bga/rd_rw612_bga.yaml @@ -1,5 +1,5 @@ # -# Copyright 2022-2024 NXP +# Copyright 2022-2025 NXP # # SPDX-License-Identifier: Apache-2.0 # @@ -24,6 +24,7 @@ supported: - gpio - hwinfo - i2c + - i2s - pwm - spi - usb_device diff --git a/soc/nxp/rw/soc.c b/soc/nxp/rw/soc.c index e3a54f26d38..92c2b8aab91 100644 --- a/soc/nxp/rw/soc.c +++ b/soc/nxp/rw/soc.c @@ -230,6 +230,22 @@ __weak __ramfunc void clock_init(void) */ CLOCK_AttachClk(kAUDIO_PLL_to_DMIC_CLK); CLOCK_SetClkDiv(kCLOCK_DivDmicClk, 4); + + #if (DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm0), nxp_lpc_i2s, okay)) + CLOCK_AttachClk(kAUDIO_PLL_to_FLEXCOMM0); + #endif + #if (DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm1), nxp_lpc_i2s, okay)) + CLOCK_AttachClk(kAUDIO_PLL_to_FLEXCOMM1); + #endif + #if (DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm2), nxp_lpc_i2s, okay)) + CLOCK_AttachClk(kAUDIO_PLL_to_FLEXCOMM2); + #endif + #if (DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm3), nxp_lpc_i2s, okay)) + CLOCK_AttachClk(kAUDIO_PLL_to_FLEXCOMM3); + #endif + #if (DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm14), nxp_lpc_i2s, okay)) + CLOCK_AttachClk(kAUDIO_PLL_to_FLEXCOMM14); + #endif #endif #if DT_NODE_HAS_STATUS_OKAY(DT_NODELABEL(lcdic)) && CONFIG_MIPI_DBI_NXP_LCDIC