Skip to content

Commit e353f92

Browse files
committed
feat(gdma): support gdma on esp32h4
1 parent 1c6405e commit e353f92

File tree

19 files changed

+1010
-348
lines changed

19 files changed

+1010
-348
lines changed

components/hal/esp32h4/include/hal/ahb_dma_ll.h

Lines changed: 671 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
#pragma once
7+
8+
#include "soc/pcr_struct.h"
9+
#include "hal/ahb_dma_ll.h"
10+
#define GDMA_LL_AHB_BURST_SIZE_ADJUSTABLE 1 // AHB GDMA supports adjustable burst size
11+
12+
#ifdef __cplusplus
13+
extern "C" {
14+
#endif
15+
16+
/**
17+
* @brief Enable the bus clock for the DMA module
18+
*/
19+
static inline void gdma_ll_enable_bus_clock(int group_id, bool enable)
20+
{
21+
(void)group_id;
22+
PCR.gdma_conf.gdma_clk_en = enable;
23+
}
24+
25+
/**
26+
* @brief Reset the DMA module
27+
*/
28+
static inline void gdma_ll_reset_register(int group_id)
29+
{
30+
(void)group_id;
31+
PCR.gdma_conf.gdma_rst_en = 1;
32+
PCR.gdma_conf.gdma_rst_en = 0;
33+
}
34+
35+
#ifdef __cplusplus
36+
}
37+
#endif

components/hal/include/hal/apm_hal.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,12 @@ int apm_hal_apm_ctrl_get_int_src_num(apm_ctrl_path_t *apm_path);
251251
#endif //CONFIG_IDF_TARGET_ESP32P4
252252

253253
#elif SOC_APM_CTRL_FILTER_SUPPORTED //!SOC_APM_SUPPORTED
254+
255+
#if CONFIG_IDF_TARGET_ESP32H4
256+
#include "soc/hp_apm_reg.h"
257+
#define apm_hal_apm_ctrl_filter_enable_all(en) \
258+
REG_WRITE(HP_APM_FUNC_CTRL_REG, en ? 0xFFFFFFFF : 0);
259+
#else
254260
#include "soc/hp_apm_reg.h"
255261
#include "soc/lp_apm_reg.h"
256262
#include "soc/lp_apm0_reg.h"
@@ -259,9 +265,10 @@ int apm_hal_apm_ctrl_get_int_src_num(apm_ctrl_path_t *apm_path);
259265
REG_WRITE(LP_APM_FUNC_CTRL_REG, en ? 0xFFFFFFFF : 0); \
260266
REG_WRITE(LP_APM0_FUNC_CTRL_REG, en ? 0xFFFFFFFF : 0); \
261267
REG_WRITE(HP_APM_FUNC_CTRL_REG, en ? 0xFFFFFFFF : 0);
262-
263268
#endif
264269

270+
#endif //SOC_APM_CTRL_FILTER_SUPPORTED
271+
265272
#ifdef __cplusplus
266273
}
267274
#endif

components/soc/esp32c2/gdma_periph.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
const gdma_signal_conn_t gdma_periph_signals = {
1010
.groups = {
1111
[0] = {
12-
.module = PERIPH_GDMA_MODULE,
1312
.pairs = {
1413
[0] = {
1514
.rx_irq_id = ETS_DMA_CH0_INTR_SOURCE,

components/soc/esp32c3/gdma_periph.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
const gdma_signal_conn_t gdma_periph_signals = {
1010
.groups = {
1111
[0] = {
12-
.module = PERIPH_GDMA_MODULE,
1312
.pairs = {
1413
[0] = {
1514
.rx_irq_id = ETS_DMA_CH0_INTR_SOURCE,

components/soc/esp32c5/gdma_periph.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
const gdma_signal_conn_t gdma_periph_signals = {
1111
.groups = {
1212
[0] = {
13-
.module = PERIPH_GDMA_MODULE,
1413
.pairs = {
1514
[0] = {
1615
.rx_irq_id = ETS_DMA_IN_CH0_INTR_SOURCE,

components/soc/esp32c6/gdma_periph.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
const gdma_signal_conn_t gdma_periph_signals = {
1111
.groups = {
1212
[0] = {
13-
.module = PERIPH_GDMA_MODULE,
1413
.pairs = {
1514
[0] = {
1615
.rx_irq_id = ETS_DMA_IN_CH0_INTR_SOURCE,

components/soc/esp32c61/gdma_periph.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
const gdma_signal_conn_t gdma_periph_signals = {
1111
.groups = {
1212
[0] = {
13-
.module = PERIPH_GDMA_MODULE,
1413
.pairs = {
1514
[0] = {
1615
.rx_irq_id = ETS_DMA_IN_CH0_INTR_SOURCE,

components/soc/esp32h2/gdma_periph.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
const gdma_signal_conn_t gdma_periph_signals = {
1111
.groups = {
1212
[0] = {
13-
.module = PERIPH_GDMA_MODULE,
1413
.pairs = {
1514
[0] = {
1615
.rx_irq_id = ETS_DMA_IN_CH0_INTR_SOURCE,

components/soc/esp32h21/gdma_periph.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
const gdma_signal_conn_t gdma_periph_signals = {
1111
.groups = {
1212
[0] = {
13-
.module = PERIPH_GDMA_MODULE,
1413
.pairs = {
1514
[0] = {
1615
.rx_irq_id = ETS_DMA_IN_CH0_INTR_SOURCE,

0 commit comments

Comments
 (0)