drivers: i2s: Add support for nRF TDM peripherals

Add a shim that allows using the nRF TDM
(Time division multiplexed audio interface) HAL by I2S Zephyr API.

Signed-off-by: Adam Kondraciuk <adam.kondraciuk@nordicsemi.no>
This commit is contained in:
Adam Kondraciuk 2024-11-27 16:19:17 +01:00 committed by Benjamin Cabé
commit 5676c65ee8
3 changed files with 1227 additions and 0 deletions

View file

@ -11,6 +11,7 @@ zephyr_library_sources_ifdef(CONFIG_I2S_STM32 i2s_ll_stm32.c)
zephyr_library_sources_ifdef(CONFIG_I2S_LITEX i2s_litex.c)
zephyr_library_sources_ifdef(CONFIG_I2S_MCUX_FLEXCOMM i2s_mcux_flexcomm.c)
zephyr_library_sources_ifdef(CONFIG_I2S_NRFX i2s_nrfx.c)
zephyr_library_sources_ifdef(CONFIG_I2S_NRF_TDM i2s_nrf_tdm.c)
zephyr_library_sources_ifdef(CONFIG_I2S_MCUX_SAI i2s_mcux_sai.c)
zephyr_library_sources_ifdef(CONFIG_I2S_ESP32 i2s_esp32.c)
zephyr_library_sources_ifdef(CONFIG_I2S_SILABS_SIWX91X i2s_silabs_siwx91x.c)

View file

@ -22,3 +22,24 @@ config I2S_NRFX_TX_BLOCK_COUNT
default 4
endif # I2S_NRFX
menuconfig I2S_NRF_TDM
bool "nRF TDM driver"
default y
depends on DT_HAS_NORDIC_NRF_TDM_ENABLED
select CLOCK_CONTROL
select PINCTRL
help
Enable support for TDM driver for nRF MCU series.
if I2S_NRF_TDM
config I2S_NRF_TDM_RX_BLOCK_COUNT
int "RX queue length"
default 4
config I2S_NRF_TDM_TX_BLOCK_COUNT
int "TX queue length"
default 4
endif # I2S_NRF_TDM

1205
drivers/i2s/i2s_nrf_tdm.c Normal file

File diff suppressed because it is too large Load diff