Skip to content

Commit 1971bc0

Browse files
smalaekartben
authored andcommitted
drivers: i2s: siwx91x: Add siwx91x I2S primary driver
Implement I2S driver for siwx91x device Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
1 parent f671b68 commit 1971bc0

File tree

4 files changed

+943
-0
lines changed

4 files changed

+943
-0
lines changed

boards/silabs/radio_boards/siwx917_rb4338a/siwx917_rb4338a.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ supported:
1818
- watchdog
1919
- spi
2020
- uart
21+
- i2s
2122
- wifi
2223
- rtc
2324
vendor: silabs

drivers/i2s/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ zephyr_library_sources_ifdef(CONFIG_I2S_MCUX_FLEXCOMM i2s_mcux_flexcomm.c)
1313
zephyr_library_sources_ifdef(CONFIG_I2S_NRFX i2s_nrfx.c)
1414
zephyr_library_sources_ifdef(CONFIG_I2S_MCUX_SAI i2s_mcux_sai.c)
1515
zephyr_library_sources_ifdef(CONFIG_I2S_ESP32 i2s_esp32.c)
16+
zephyr_library_sources_ifdef(CONFIG_I2S_SILABS_SIWX91X i2s_silabs_siwx91x.c)
1617
zephyr_library_sources_ifdef(CONFIG_I2S_TEST i2s_test.c)

drivers/i2s/Kconfig.siwx91x

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Copyright (c) 2025 Silicon Laboratories Inc.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
menuconfig I2S_SILABS_SIWX91X
5+
bool "Silabs Siwx91x MCU I2S controller driver"
6+
default y
7+
depends on DT_HAS_SILABS_SIWX91X_I2S_ENABLED
8+
select CACHE_MANAGEMENT if CPU_HAS_DCACHE
9+
select DMA
10+
select PINCTRL
11+
select GPIO
12+
help
13+
Enable I2S support on the Siwx91x family.
14+
15+
if I2S_SILABS_SIWX91X
16+
17+
config I2S_SILABS_SIWX91X_RX_BLOCK_COUNT
18+
int "RX queue length"
19+
default 4
20+
21+
config I2S_SILABS_SIWX91X_TX_BLOCK_COUNT
22+
int "TX queue length"
23+
default 4
24+
25+
config I2S_SILABS_SIWX91X_DMA_MAX_BLOCKS
26+
int "Maximum DMA transfer block per channel for a transaction."
27+
default 16
28+
help
29+
One block is needed for every 1024 bytes
30+
31+
endif # I2S_SILABS_SIWX91X

0 commit comments

Comments
 (0)