From 446282cd22502849022b18f537933230060cacea Mon Sep 17 00:00:00 2001 From: Hake Huang Date: Sat, 16 Dec 2023 13:38:57 +0800 Subject: [PATCH] boards: mimxrt595_evk,mimxrt685_evk: Instantiate WM8904 Add Flexcomm signal sharing configuration for the mimxrt595s/cm33 and mimxrt685s/cm33 SoCs. Properly instantiate the I3C peripheral for interfacing with the WM8904's control port. Modify pinctrl DTs of mimxrt595_evk/mimxrt595s/cm33 and mimxrt685_evk/mimxrt685s/cm33. Instantiate the WM8904 codec for said boards. Signed-off-by: Hake Huang Signed-off-by: Yves Vandervennet Signed-off-by: Vit Stanicek --- boards/nxp/mimxrt595_evk/board.c | 16 +++++++--------- .../mimxrt595_evk_mimxrt595s_cm33-pinctrl.dtsi | 11 ++++++----- .../mimxrt595_evk_mimxrt595s_cm33.dts | 9 +++++++++ .../nxp/mimxrt685_evk/mimxrt685_evk-pinctrl.dtsi | 5 +++-- .../mimxrt685_evk_mimxrt685s_cm33.dts | 10 ++++++++++ 5 files changed, 35 insertions(+), 16 deletions(-) diff --git a/boards/nxp/mimxrt595_evk/board.c b/boards/nxp/mimxrt595_evk/board.c index dd2cb36354c..8db60fdcb6b 100644 --- a/boards/nxp/mimxrt595_evk/board.c +++ b/boards/nxp/mimxrt595_evk/board.c @@ -279,34 +279,32 @@ static int mimxrt595_evk_init(void) pm_policy_state_lock_get(PM_STATE_SUSPEND_TO_IDLE, PM_ALL_SUBSTATES); #ifdef CONFIG_I2S - +#ifdef CONFIG_I2S_TEST_SEPARATE_DEVICES /* Set shared signal set 0 SCK, WS from Transmit I2S - Flexcomm3 */ SYSCTL1->SHAREDCTRLSET[0] = SYSCTL1_SHAREDCTRLSET_SHAREDSCKSEL(3) | SYSCTL1_SHAREDCTRLSET_SHAREDWSSEL(3); - -#ifdef CONFIG_I2S_TEST_SEPARATE_DEVICES /* Select Data in from Transmit I2S - Flexcomm 3 */ SYSCTL1->SHAREDCTRLSET[0] |= SYSCTL1_SHAREDCTRLSET_SHAREDDATASEL(3); /* Enable Transmit I2S - Flexcomm 3 for Shared Data Out */ SYSCTL1->SHAREDCTRLSET[0] |= SYSCTL1_SHAREDCTRLSET_FC3DATAOUTEN(1); +#else + /* Set shared signal set 0: SCK, WS from Flexcomm1 */ + SYSCTL1->SHAREDCTRLSET[0] = SYSCTL1_SHAREDCTRLSET_SHAREDSCKSEL(1) | + SYSCTL1_SHAREDCTRLSET_SHAREDWSSEL(1); #endif - /* Set Receive I2S - Flexcomm 1 SCK, WS from shared signal set 0 */ SYSCTL1->FCCTRLSEL[1] = SYSCTL1_FCCTRLSEL_SCKINSEL(1) | SYSCTL1_FCCTRLSEL_WSINSEL(1); - /* Set Transmit I2S - Flexcomm 3 SCK, WS from shared signal set 0 */ SYSCTL1->FCCTRLSEL[3] = SYSCTL1_FCCTRLSEL_SCKINSEL(1) | SYSCTL1_FCCTRLSEL_WSINSEL(1); - #ifdef CONFIG_I2S_TEST_SEPARATE_DEVICES /* Select Receive I2S - Flexcomm 1 Data in from shared signal set 0 */ SYSCTL1->FCCTRLSEL[1] |= SYSCTL1_FCCTRLSEL_DATAINSEL(1); /* Select Transmit I2S - Flexcomm 3 Data out to shared signal set 0 */ SYSCTL1->FCCTRLSEL[3] |= SYSCTL1_FCCTRLSEL_DATAOUTSEL(1); -#endif - -#endif +#endif /* CONFIG_I2S_TEST_SEPARATE_DEVICES */ +#endif /* CONFIG_I2S */ #ifdef CONFIG_REBOOT diff --git a/boards/nxp/mimxrt595_evk/mimxrt595_evk_mimxrt595s_cm33-pinctrl.dtsi b/boards/nxp/mimxrt595_evk/mimxrt595_evk_mimxrt595s_cm33-pinctrl.dtsi index 3f1bb622689..cb994f3326e 100644 --- a/boards/nxp/mimxrt595_evk/mimxrt595_evk_mimxrt595s_cm33-pinctrl.dtsi +++ b/boards/nxp/mimxrt595_evk/mimxrt595_evk_mimxrt595s_cm33-pinctrl.dtsi @@ -2,7 +2,7 @@ * NOTE: File generated by gen_board_pinctrl.py * from MIMXRT595-EVK.mex * - * Copyright 2022, NXP + * Copyright 2022, 2024 NXP * SPDX-License-Identifier: Apache-2.0 */ @@ -29,7 +29,8 @@ group0 { pinmux = , , - ; + , + ; slew-rate = "normal"; input-enable; drive-strength = "high"; @@ -39,7 +40,7 @@ /* TX */ pinmux_flexcomm3_i2s: pinmux_flexcomm3_i2s { group0 { - pinmux = ; + pinmux = , ; input-enable; slew-rate = "normal"; drive-strength = "high"; @@ -236,8 +237,9 @@ pinmux = , ; input-enable; + bias-pull-up; slew-rate = "slow"; - drive-strength = "high"; + drive-strength = "normal"; }; group1 { @@ -246,5 +248,4 @@ drive-strength = "normal"; }; }; - }; diff --git a/boards/nxp/mimxrt595_evk/mimxrt595_evk_mimxrt595s_cm33.dts b/boards/nxp/mimxrt595_evk/mimxrt595_evk_mimxrt595s_cm33.dts index 5cc635cb23a..eb87fa09afa 100644 --- a/boards/nxp/mimxrt595_evk/mimxrt595_evk_mimxrt595s_cm33.dts +++ b/boards/nxp/mimxrt595_evk/mimxrt595_evk_mimxrt595s_cm33.dts @@ -464,6 +464,15 @@ zephyr_udc0: &usbhs { pinctrl-names = "default"; status = "okay"; + + audio_codec: wm8904@1a { + compatible = "wolfson,wm8904"; + reg = <0x1a 0 0>; + clock-source = "MCLK"; + + clocks = <&clkctl0 MCUX_AUDIO_MCLK>; + clock-names = "mclk"; + }; }; &mbox { diff --git a/boards/nxp/mimxrt685_evk/mimxrt685_evk-pinctrl.dtsi b/boards/nxp/mimxrt685_evk/mimxrt685_evk-pinctrl.dtsi index 7a7b6b9c7bd..ece0fe64b8e 100644 --- a/boards/nxp/mimxrt685_evk/mimxrt685_evk-pinctrl.dtsi +++ b/boards/nxp/mimxrt685_evk/mimxrt685_evk-pinctrl.dtsi @@ -2,7 +2,7 @@ * NOTE: File generated by gen_board_pinctrl.py * from MIMXRT685-EVK.mex * - * Copyright 2022, NXP + * Copyright 2022, 2024 NXP * SPDX-License-Identifier: Apache-2.0 */ @@ -49,7 +49,8 @@ group0 { pinmux = , , - ; + , + ; input-enable; slew-rate = "normal"; drive-strength = "high"; diff --git a/boards/nxp/mimxrt685_evk/mimxrt685_evk_mimxrt685s_cm33.dts b/boards/nxp/mimxrt685_evk/mimxrt685_evk_mimxrt685s_cm33.dts index d4b59332467..2b45b5bebd0 100644 --- a/boards/nxp/mimxrt685_evk/mimxrt685_evk_mimxrt685s_cm33.dts +++ b/boards/nxp/mimxrt685_evk/mimxrt685_evk_mimxrt685s_cm33.dts @@ -391,6 +391,16 @@ zephyr_udc0: &usbhs { pinctrl-names = "default"; status = "okay"; + + audio_codec: wm8904@1a { + compatible = "wolfson,wm8904"; + reg = <0x1a 0 0>; + + clock-source = "MCLK"; + + clocks = <&clkctl0 MCUX_AUDIO_MCLK>; + clock-names = "mclk"; + }; }; /* Disable this node if not using USB and need another MPU region */