forked from zephyrproject-rtos/zephyr
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
board: mimxrt685_evk/mimxrt685s/hifi4: Add init code
Add initialisation code for the HiFi 4 DSP domain of the mimxrt685_evk board. Responsible for setting up signal sharing between Flexcomm zephyrproject-rtos#1 and Flexcomm zephyrproject-rtos#3 peripherals both in the I2S mode (simultaneous audio playback and capture). Signed-off-by: Vit Stanicek <vit.stanicek@nxp.com>
- Loading branch information
Showing
2 changed files
with
50 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
/* | ||
* Copyright 2020-2024 NXP | ||
* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
#include <zephyr/init.h> | ||
#include <zephyr/devicetree.h> | ||
#include <fsl_device_registers.h> | ||
|
||
static int mimxrt685_evk_hifi4_init(void) | ||
{ | ||
/* flexcomm1 and flexcomm3 are configured to loopback the TX signal to RX */ | ||
#if (DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm1), nxp_lpc_i2s, okay)) && \ | ||
(DT_NODE_HAS_COMPAT_STATUS(DT_NODELABEL(flexcomm3), nxp_lpc_i2s, okay)) && \ | ||
CONFIG_I2S | ||
|
||
/* 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); | ||
#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 | ||
|
||
return 0; | ||
} | ||
|
||
SYS_INIT(mimxrt685_evk_hifi4_init, PRE_KERNEL_1, 0); |