Skip to content

Commit ab76a34

Browse files
smalaekartben
authored andcommitted
drivers: spi: siwx91x: Add siwx91x SPI primary driver
Implement SPI driver for siwx91x device Signed-off-by: Sai Santhosh Malae <[email protected]>
1 parent 8542e40 commit ab76a34

File tree

5 files changed

+695
-0
lines changed

5 files changed

+695
-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
@@ -16,5 +16,6 @@ supported:
1616
- i2c
1717
- pwm
1818
- watchdog
19+
- spi
1920
- wifi
2021
vendor: silabs

drivers/spi/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ zephyr_library_sources_ifdef(CONFIG_SPI_SAM0 spi_sam0.c)
5656
zephyr_library_sources_ifdef(CONFIG_SPI_SEDI spi_sedi.c)
5757
zephyr_library_sources_ifdef(CONFIG_SPI_SIFIVE spi_sifive.c)
5858
zephyr_library_sources_ifdef(CONFIG_SPI_SILABS_EUSART spi_silabs_eusart.c)
59+
zephyr_library_sources_ifdef(CONFIG_SPI_SILABS_SIWX91X_GSPI spi_silabs_siwx91x_gspi.c)
5960
zephyr_library_sources_ifdef(CONFIG_SPI_SILABS_USART spi_silabs_usart.c)
6061
zephyr_library_sources_ifdef(CONFIG_SPI_SMARTBOND spi_smartbond.c)
6162
zephyr_library_sources_ifdef(CONFIG_SPI_STM32 spi_ll_stm32.c)

drivers/spi/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ source "drivers/spi/Kconfig.sam0"
133133
source "drivers/spi/Kconfig.sedi"
134134
source "drivers/spi/Kconfig.sifive"
135135
source "drivers/spi/Kconfig.silabs_eusart"
136+
source "drivers/spi/Kconfig.silabs_siwx91x_gspi"
136137
source "drivers/spi/Kconfig.silabs_usart"
137138
source "drivers/spi/Kconfig.smartbond"
138139
source "drivers/spi/Kconfig.spi_emul"
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Copyright (c) 2025 Silicon Laboratories Inc.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config SPI_SILABS_SIWX91X_GSPI
5+
bool "Silabs GSPI SPI Primary controller driver"
6+
default y
7+
depends on DT_HAS_SILABS_GSPI_ENABLED
8+
select GPIO
9+
select PINCTRL
10+
help
11+
Enable the GSPI SPI primary driver for the Silabs SiWx91x SoC series.
12+
13+
if SPI_SILABS_SIWX91X_GSPI
14+
15+
config SPI_SILABS_SIWX91X_GSPI_DMA
16+
bool "DMA Support"
17+
select DMA
18+
help
19+
Enable DMA support for SIWX91X MCU GSPI driver.
20+
21+
config SPI_SILABS_SIWX91X_GSPI_DMA_MAX_BLOCKS
22+
int "Maximum DMA transfer block per channel for a transaction."
23+
depends on SPI_SILABS_SIWX91X_GSPI_DMA
24+
default 16
25+
help
26+
One block is needed for every chunk found in the SPI transaction and every 1024 bytes
27+
28+
endif # SPI_SILABS_SIWX91X_GSPI

0 commit comments

Comments
 (0)