diff --git a/samples/drivers/i2s/echo/boards/mimxrt1060_evk_mimxrt1062_qspi_C.conf b/samples/drivers/i2s/echo/boards/mimxrt1060_evk_mimxrt1062_qspi_C.conf new file mode 100644 index 00000000000..f3144c6f703 --- /dev/null +++ b/samples/drivers/i2s/echo/boards/mimxrt1060_evk_mimxrt1062_qspi_C.conf @@ -0,0 +1,10 @@ +# +# Copyright 2025 NXP +# +# SPDX-License-Identifier: Apache-2.0 +# + +CONFIG_HEAP_MEM_POOL_SIZE=81920 +CONFIG_AUDIO=y +CONFIG_AUDIO_CODEC=y +CONFIG_DMA_TCD_QUEUE_SIZE=4 diff --git a/samples/drivers/i2s/echo/boards/mimxrt1060_evk_mimxrt1062_qspi_C.overlay b/samples/drivers/i2s/echo/boards/mimxrt1060_evk_mimxrt1062_qspi_C.overlay new file mode 100644 index 00000000000..8e631cedf32 --- /dev/null +++ b/samples/drivers/i2s/echo/boards/mimxrt1060_evk_mimxrt1062_qspi_C.overlay @@ -0,0 +1,15 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +i2s_rx: &sai1 { + nxp,rx-sync-mode; + status = "okay"; +}; + +i2s_tx: &sai1 { + status = "okay"; + mclk-output; +}; diff --git a/samples/drivers/i2s/echo/boards/mimxrt1170_evk_mimxrt1176_cm7.conf b/samples/drivers/i2s/echo/boards/mimxrt1170_evk_mimxrt1176_cm7.conf new file mode 100644 index 00000000000..f3144c6f703 --- /dev/null +++ b/samples/drivers/i2s/echo/boards/mimxrt1170_evk_mimxrt1176_cm7.conf @@ -0,0 +1,10 @@ +# +# Copyright 2025 NXP +# +# SPDX-License-Identifier: Apache-2.0 +# + +CONFIG_HEAP_MEM_POOL_SIZE=81920 +CONFIG_AUDIO=y +CONFIG_AUDIO_CODEC=y +CONFIG_DMA_TCD_QUEUE_SIZE=4 diff --git a/samples/drivers/i2s/echo/boards/mimxrt1170_evk_mimxrt1176_cm7_B.overlay b/samples/drivers/i2s/echo/boards/mimxrt1170_evk_mimxrt1176_cm7_B.overlay new file mode 100644 index 00000000000..8e631cedf32 --- /dev/null +++ b/samples/drivers/i2s/echo/boards/mimxrt1170_evk_mimxrt1176_cm7_B.overlay @@ -0,0 +1,15 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +i2s_rx: &sai1 { + nxp,rx-sync-mode; + status = "okay"; +}; + +i2s_tx: &sai1 { + status = "okay"; + mclk-output; +}; diff --git a/samples/drivers/i2s/echo/src/main.c b/samples/drivers/i2s/echo/src/main.c index d9619bf94c7..981b8410fef 100644 --- a/samples/drivers/i2s/echo/src/main.c +++ b/samples/drivers/i2s/echo/src/main.c @@ -9,6 +9,7 @@ #include #include #include +#include #include @@ -40,7 +41,7 @@ static struct gpio_dt_spec sw1_spec = GPIO_DT_SPEC_GET(SW1_NODE, gpios); #endif #define BLOCK_SIZE (BYTES_PER_SAMPLE * SAMPLES_PER_BLOCK) -#define BLOCK_COUNT (INITIAL_BLOCKS + 2) +#define BLOCK_COUNT (INITIAL_BLOCKS + 4) K_MEM_SLAB_DEFINE_STATIC(mem_slab, BLOCK_SIZE, BLOCK_COUNT, 4); static int16_t echo_block[SAMPLES_PER_BLOCK]; @@ -256,6 +257,23 @@ int main(void) if (!init_wm8731_i2c()) { return 0; } + +#else + const struct device *const codec_dev = DEVICE_DT_GET(DT_NODELABEL(audio_codec)); + struct audio_codec_cfg audio_cfg; + + audio_cfg.dai_route = AUDIO_ROUTE_PLAYBACK_CAPTURE; + audio_cfg.dai_type = AUDIO_DAI_TYPE_I2S; + audio_cfg.dai_cfg.i2s.word_size = SAMPLE_BIT_WIDTH; + audio_cfg.dai_cfg.i2s.channels = NUMBER_OF_CHANNELS; + audio_cfg.dai_cfg.i2s.format = I2S_FMT_DATA_FORMAT_I2S; + audio_cfg.dai_cfg.i2s.options = I2S_OPT_FRAME_CLK_MASTER; + audio_cfg.dai_cfg.i2s.frame_clk_freq = SAMPLE_FREQUENCY; + audio_cfg.dai_cfg.i2s.mem_slab = &mem_slab; + audio_cfg.dai_cfg.i2s.block_size = BLOCK_SIZE; + audio_codec_configure(codec_dev, &audio_cfg); + k_msleep(1000); + #endif if (!init_buttons()) { diff --git a/samples/drivers/i2s/i2s_codec/boards/mimxrt1060_evk_mimxrt1062_qspi_C.conf b/samples/drivers/i2s/i2s_codec/boards/mimxrt1060_evk_mimxrt1062_qspi_C.conf new file mode 100644 index 00000000000..9e510b56da5 --- /dev/null +++ b/samples/drivers/i2s/i2s_codec/boards/mimxrt1060_evk_mimxrt1062_qspi_C.conf @@ -0,0 +1,11 @@ +# +# Copyright 2025 NXP +# +# SPDX-License-Identifier: Apache-2.0 +# + +CONFIG_HEAP_MEM_POOL_SIZE=81920 +CONFIG_AUDIO_CODEC=y +CONFIG_DMA_TCD_QUEUE_SIZE=4 +CONFIG_SAMPLE_FREQ=16000 +CONFIG_USE_DMIC=n diff --git a/samples/drivers/i2s/i2s_codec/boards/mimxrt1060_evk_mimxrt1062_qspi_C.overlay b/samples/drivers/i2s/i2s_codec/boards/mimxrt1060_evk_mimxrt1062_qspi_C.overlay new file mode 100644 index 00000000000..f7dc5b914ff --- /dev/null +++ b/samples/drivers/i2s/i2s_codec/boards/mimxrt1060_evk_mimxrt1062_qspi_C.overlay @@ -0,0 +1,9 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&sai1 { + mclk-output; +}; diff --git a/samples/drivers/i2s/output/boards/mimxrt1060_evk_mimxrt1062_qspi_C.conf b/samples/drivers/i2s/output/boards/mimxrt1060_evk_mimxrt1062_qspi_C.conf new file mode 100644 index 00000000000..c27a69285c6 --- /dev/null +++ b/samples/drivers/i2s/output/boards/mimxrt1060_evk_mimxrt1062_qspi_C.conf @@ -0,0 +1,2 @@ +# Raise DMA TCD Queue size, as this is required by the I2S SAI driver +CONFIG_DMA_TCD_QUEUE_SIZE=4