Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Silabs LDMA initial support #82611

Merged
merged 5 commits into from
Dec 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions boards/silabs/dev_kits/sltb010a/doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ The sltb010a board configuration supports the following hardware features:
+-----------+------------+-------------------------------------+
| UART | on-chip | serial |
+-----------+------------+-------------------------------------+
| DMA | on-chip | ldma |
+-----------+------------+-------------------------------------+
| WATCHDOG | on-chip | watchdog |
+-----------+------------+-------------------------------------+
| TRNG | on-chip | true random number generator |
Expand Down
1 change: 1 addition & 0 deletions boards/silabs/dev_kits/sltb010a/sltb010a_0.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ supported:
- gpio
- uart
- i2c
- dma
- spi
- clock_control
vendor: silabs
1 change: 1 addition & 0 deletions boards/silabs/dev_kits/sltb010a/sltb010a_2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,6 @@ supported:
- gpio
- uart
- i2c
- dma
- spi
vendor: silabs
2 changes: 2 additions & 0 deletions boards/silabs/dev_kits/xg24_dk2601b/doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ The board configuration supports the following hardware features:
+-----------+------------+-------------------------------------+
| UART | on-chip | serial |
+-----------+------------+-------------------------------------+
| DMA | on-chip | ldma |
+-----------+------------+-------------------------------------+
| TRNG | on-chip | semailbox |
+-----------+------------+-------------------------------------+
| WATCHDOG | on-chip | watchdog |
Expand Down
1 change: 1 addition & 0 deletions boards/silabs/dev_kits/xg24_dk2601b/xg24_dk2601b.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ supported:
- counter
- gpio
- uart
- dma
- watchdog
- clock_control
testing:
Expand Down
2 changes: 2 additions & 0 deletions boards/silabs/dev_kits/xg27_dk2602a/doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ The xg27_dk2602a board configuration supports the following hardware features:
+-----------+------------+-------------------------------------+
| UART | on-chip | serial |
+-----------+------------+-------------------------------------+
| DMA | on-chip | ldma |
+-----------+------------+-------------------------------------+

Flashing
========
Expand Down
1 change: 1 addition & 0 deletions boards/silabs/dev_kits/xg27_dk2602a/xg27_dk2602a.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@ supported:
- counter
- gpio
- uart
- dma
- clock_control
vendor: silabs
2 changes: 2 additions & 0 deletions boards/silabs/radio_boards/slwrb4180a/doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ The board configuration supports the following hardware features:
+-----------+------------+-------------------------------------+
| I2C | on-chip | i2c port-polling |
+-----------+------------+-------------------------------------+
| DMA | on-chip | ldma |
+-----------+------------+-------------------------------------+
| WATCHDOG | on-chip | watchdog |
+-----------+------------+-------------------------------------+

Expand Down
1 change: 1 addition & 0 deletions boards/silabs/radio_boards/slwrb4180a/slwrb4180a.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ supported:
- gpio
- nvs
- uart
- dma
- watchdog
testing:
ignore_tags:
Expand Down
2 changes: 2 additions & 0 deletions boards/silabs/radio_boards/xg24_rb4187c/doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ The board configuration supports the following hardware features:
+-----------+------------+-------------------------------------+
| UART | on-chip | serial |
+-----------+------------+-------------------------------------+
| DMA | on-chip | ldma |
+-----------+------------+-------------------------------------+
| I2C | on-chip | i2c |
+-----------+------------+-------------------------------------+
| TRNG | on-chip | semailbox |
Expand Down
1 change: 1 addition & 0 deletions boards/silabs/radio_boards/xg24_rb4187c/xg24_rb4187c.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ supported:
- bluetooth
- gpio
- uart
- dma
- watchdog
testing:
ignore_tags:
Expand Down
1 change: 1 addition & 0 deletions drivers/dma/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ zephyr_library_sources_ifdef(CONFIG_DMA_MCUX_SMARTDMA dma_mcux_smartdma.c)
zephyr_library_sources_ifdef(CONFIG_DMA_ANDES_ATCDMAC300 dma_andes_atcdmac300.c)
zephyr_library_sources_ifdef(CONFIG_DMA_SEDI dma_sedi.c)
zephyr_library_sources_ifdef(CONFIG_DMA_SI32 dma_si32.c)
zephyr_library_sources_ifdef(CONFIG_DMA_SILABS_LDMA dma_silabs_ldma.c)
zephyr_library_sources_ifdef(CONFIG_DMA_SMARTBOND dma_smartbond.c)
zephyr_library_sources_ifdef(CONFIG_DMA_NXP_SOF_HOST_DMA dma_nxp_sof_host_dma.c)
zephyr_library_sources_ifdef(CONFIG_DMA_EMUL dma_emul.c)
Expand Down
2 changes: 2 additions & 0 deletions drivers/dma/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ source "drivers/dma/Kconfig.sedi"

source "drivers/dma/Kconfig.si32"

source "drivers/dma/Kconfig.silabs"

source "drivers/dma/Kconfig.smartbond"

source "drivers/dma/Kconfig.nxp_sof_host_dma"
Expand Down
21 changes: 21 additions & 0 deletions drivers/dma/Kconfig.silabs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright (c) 2024 Silicon-labs
# SPDX-License-Identifier: Apache-2.0

config DMA_SILABS_LDMA
bool "Silabs DMA driver"
default y
select SYS_MEM_BLOCKS
select SOC_GECKO_LDMA
depends on DT_HAS_SILABS_LDMA_ENABLED
help
Driver for Silabs DMA.

if DMA_SILABS_LDMA

config DMA_MAX_DESCRIPTOR
int "Max Number of block_config (LDMA_Descriptor)"
default 8
help
Max Number of block_config (LDMA_Descriptor)

endif
Loading
Loading