drivers: dma: esp32c3: add gdma driver

Add GDMA driver for esp32c3.

Signed-off-by: Lucas Tamborrino <lucas.tamborrino@espressif.com>
This commit is contained in:
Lucas Tamborrino
2022-12-28 14:41:02 -03:00
committed by Carles Cufí
parent 9421785fd0
commit 17fbdc55b5
5 changed files with 627 additions and 0 deletions

View File

@@ -24,3 +24,4 @@ zephyr_library_sources_ifdef(CONFIG_DMA_INTEL_ADSP_HDA_LINK_IN dma_intel_adsp_hd
zephyr_library_sources_ifdef(CONFIG_DMA_INTEL_ADSP_HDA_LINK_OUT dma_intel_adsp_hda_link_out.c)
zephyr_library_sources_ifdef(CONFIG_DMA_INTEL_ADSP_GPDMA dma_intel_adsp_gpdma.c dma_dw_common.c)
zephyr_library_sources_ifdef(CONFIG_DMA_GD32 dma_gd32.c)
zephyr_library_sources_ifdef(CONFIG_DMA_ESP32 dma_esp32_gdma.c)

View File

@@ -50,4 +50,6 @@ source "drivers/dma/Kconfig.intel_adsp_hda"
source "drivers/dma/Kconfig.gd32"
source "drivers/dma/Kconfig.esp32"
endif # DMA

View File

@@ -0,0 +1,9 @@
# Copyright (c) 2022 Espressif Systems (Shanghai) Co., Ltd.
# SPDX-License-Identifier: Apache-2.0
config DMA_ESP32
bool "ESP32 General Purpose DMA driver"
depends on DT_HAS_ESPRESSIF_ESP32_GDMA_ENABLED
default y
help
General Purpose DMA for ESP32 series.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,32 @@
/*
* Copyright (c) 2022 Espressif Systems (Shanghai) Co., Ltd.
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_INCLUDE_DRIVERS_DMA_ESP32_H_
#define ZEPHYR_INCLUDE_DRIVERS_DMA_ESP32_H_
enum gdma_trigger_peripheral {
GDMA_TRIG_PERIPH_M2M = -1,
GDMA_TRIG_PERIPH_SPI2 = 0,
GDMA_TRIG_PERIPH_UHCI0 = 2,
GDMA_TRIG_PERIPH_I2S = 4,
GDMA_TRIG_PERIPH_AES = 6,
GDMA_TRIG_PERIPH_SHA = 7,
GDMA_TRIG_PERIPH_ADC = 8,
GDMA_TRIG_PERIPH_INVALID = 0x3F,
};
#define ESP32_DT_INST_DMA_CTLR(n, name) \
COND_CODE_1(DT_INST_NODE_HAS_PROP(n, dmas), \
(DEVICE_DT_GET(DT_INST_DMAS_CTLR_BY_NAME(n, name))), \
(NULL))
#define ESP32_DT_INST_DMA_CELL(n, name, cell) \
COND_CODE_1(DT_INST_NODE_HAS_PROP(n, dmas), \
(DT_INST_DMAS_CELL_BY_NAME(n, name, cell)), \
(0xff))
#endif /* ZEPHYR_INCLUDE_DRIVERS_DMA_ESP32_H_ */