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 <hake.huang@oss.nxp.com>
Signed-off-by: Yves Vandervennet <yves.vandervennet@nxp.com>
Signed-off-by: Vit Stanicek <vit.stanicek@nxp.com>
This commit is contained in:
Hake Huang 2023-12-16 13:38:57 +08:00 committed by Carles Cufí
commit 446282cd22
5 changed files with 35 additions and 16 deletions

View file

@ -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

View file

@ -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 = <FC1_RXD_SDA_MOSI_DATA_PIO0_9>,
<FC1_TXD_SCL_MISO_WS_PIO0_8>,
<FC1_SCK_PIO0_7>;
<FC1_SCK_PIO0_7>,
<MCLK_PIO1_10>;
slew-rate = "normal";
input-enable;
drive-strength = "high";
@ -39,7 +40,7 @@
/* TX */
pinmux_flexcomm3_i2s: pinmux_flexcomm3_i2s {
group0 {
pinmux = <FC3_RXD_SDA_MOSI_DATA_PIO0_23>;
pinmux = <FC3_RXD_SDA_MOSI_DATA_PIO0_23>, <MCLK_PIO1_10>;
input-enable;
slew-rate = "normal";
drive-strength = "high";
@ -236,8 +237,9 @@
pinmux = <I3C0_SCL_PIO2_29>,
<I3C0_SDA_PIO2_30>;
input-enable;
bias-pull-up;
slew-rate = "slow";
drive-strength = "high";
drive-strength = "normal";
};
group1 {
@ -246,5 +248,4 @@
drive-strength = "normal";
};
};
};

View file

@ -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 {

View file

@ -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 = <FC3_RXD_SDA_MOSI_DATA_PIO0_23>,
<FC3_TXD_SCL_MISO_WS_PIO0_22>,
<FC3_SCK_PIO0_21>;
<FC3_SCK_PIO0_21>,
<MCLK_PIO1_10>;
input-enable;
slew-rate = "normal";
drive-strength = "high";

View file

@ -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 */