Skip to content

Commit 4a887a7

Browse files
committed
change(hal): move regdma related API from lp_aon_ll to pau_ll
1 parent aeba992 commit 4a887a7

File tree

9 files changed

+158
-153
lines changed

9 files changed

+158
-153
lines changed

components/hal/esp32c5/include/hal/lp_aon_ll.h

Lines changed: 1 addition & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
2+
* SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
@@ -85,54 +85,6 @@ static inline void lp_aon_ll_inform_wakeup_type(bool dslp)
8585
}
8686
}
8787

88-
/**
89-
* @brief Set the maximum number of linked lists supported by REGDMA
90-
* @param count: the maximum number of regdma link
91-
*/
92-
static inline void lp_aon_ll_set_regdma_link_count(int count)
93-
{
94-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg0, branch_link_length_aon, count);
95-
}
96-
97-
/**
98-
* @brief Set the maximum number of times a single linked list can run for REGDMA. If a linked list continuously reads in a loop
99-
* for some reason and the execution count exceeds this configured number, a timeout will be triggered.
100-
* @param count: the maximum number of loop
101-
*/
102-
static inline void lp_aon_ll_set_regdma_link_loop_threshold(int count)
103-
{
104-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg1, link_work_tout_thres_aon, count);
105-
}
106-
107-
/**
108-
* @brief Set the timeout duration for accessing registers. If REGDMA encounters bus-related issues while accessing
109-
* registers and gets stuck on the bus, a timeout will be triggered.
110-
* @param count: the maximum number of time
111-
*/
112-
static inline void lp_aon_ll_set_regdma_link_reg_access_tout_threshold(int count)
113-
{
114-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg1, link_backup_tout_thres_aon, count);
115-
}
116-
117-
/**
118-
* @brief Set the regdma_link_addr
119-
* @param addr: the addr of regdma_link
120-
*/
121-
static inline void lp_aon_ll_set_regdma_link_addr(uint32_t addr)
122-
{
123-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg2, link_addr_aon, addr);
124-
}
125-
126-
static inline void lp_aon_ll_set_regdma_link_wait_retry_count(int count)
127-
{
128-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg1, link_wait_tout_thres_aon, count);
129-
}
130-
131-
static inline void lp_aon_ll_set_regdma_link_wait_read_interval(int interval)
132-
{
133-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg0, read_interval_aon, interval);
134-
}
135-
13688
#ifdef __cplusplus
13789
}
13890
#endif

components/hal/esp32c5/include/hal/pau_ll.h

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
2+
* SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
@@ -137,6 +137,55 @@ static inline void pau_ll_clear_regdma_backup_error_intr_state(pau_dev_t *dev)
137137
dev->int_clr.error_int_clr = 1;
138138
}
139139

140+
141+
/**
142+
* @brief Set the maximum number of linked lists supported by REGDMA
143+
* @param count: the maximum number of regdma link
144+
*/
145+
static inline void pau_ll_set_regdma_link_count(int count)
146+
{
147+
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg0, branch_link_length_aon, count);
148+
}
149+
150+
/**
151+
* @brief Set the maximum number of times a single linked list can run for REGDMA. If a linked list continuously reads in a loop
152+
* for some reason and the execution count exceeds this configured number, a timeout will be triggered.
153+
* @param count: the maximum number of loop
154+
*/
155+
static inline void pau_ll_set_regdma_link_loop_threshold(int count)
156+
{
157+
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg1, link_work_tout_thres_aon, count);
158+
}
159+
160+
/**
161+
* @brief Set the timeout duration for accessing registers. If REGDMA encounters bus-related issues while accessing
162+
* registers and gets stuck on the bus, a timeout will be triggered.
163+
* @param count: the maximum number of time
164+
*/
165+
static inline void pau_ll_set_regdma_link_reg_access_tout_threshold(int count)
166+
{
167+
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg1, link_backup_tout_thres_aon, count);
168+
}
169+
170+
/**
171+
* @brief Set the regdma_link_addr
172+
* @param addr: the addr of regdma_link
173+
*/
174+
static inline void pau_ll_set_regdma_link_addr(uint32_t addr)
175+
{
176+
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg2, link_addr_aon, addr);
177+
}
178+
179+
static inline void pau_ll_set_regdma_link_wait_retry_count(int count)
180+
{
181+
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg1, link_wait_tout_thres_aon, count);
182+
}
183+
184+
static inline void pau_ll_set_regdma_link_wait_read_interval(int interval)
185+
{
186+
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg0, read_interval_aon, interval);
187+
}
188+
140189
#ifdef __cplusplus
141190
}
142191
#endif

components/hal/esp32c5/pau_hal.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
2+
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
@@ -12,7 +12,7 @@
1212

1313
void pau_hal_set_regdma_entry_link_addr(pau_hal_context_t *hal, pau_regdma_link_addr_t *link_addr)
1414
{
15-
lp_aon_ll_set_regdma_link_addr((uint32_t)(*link_addr)[0]);
15+
pau_ll_set_regdma_link_addr((uint32_t)(*link_addr)[0]);
1616
}
1717

1818
void IRAM_ATTR pau_hal_start_regdma_modem_link(pau_hal_context_t *hal, bool backup_or_restore)
@@ -59,20 +59,20 @@ void IRAM_ATTR pau_hal_stop_regdma_extra_link(pau_hal_context_t *hal)
5959
void pau_hal_regdma_link_count_config(pau_hal_context_t *hal, int count)
6060
{
6161
HAL_ASSERT(count > 0);
62-
lp_aon_ll_set_regdma_link_count(count - 1);
62+
pau_ll_set_regdma_link_count(count - 1);
6363
}
6464
#endif
6565

6666
void pau_hal_set_regdma_work_timeout(pau_hal_context_t *hal, uint32_t loop_num, uint32_t time)
6767
{
6868
HAL_ASSERT(loop_num > 0 && time > 0);
69-
lp_aon_ll_set_regdma_link_loop_threshold(loop_num);
70-
lp_aon_ll_set_regdma_link_reg_access_tout_threshold(time);
69+
pau_ll_set_regdma_link_loop_threshold(loop_num);
70+
pau_ll_set_regdma_link_reg_access_tout_threshold(time);
7171
}
7272

7373
void pau_hal_set_regdma_wait_timeout(pau_hal_context_t *hal, int count, int interval)
7474
{
7575
HAL_ASSERT(count > 0 && interval > 0);
76-
lp_aon_ll_set_regdma_link_wait_retry_count(count);
77-
lp_aon_ll_set_regdma_link_wait_read_interval(interval);
76+
pau_ll_set_regdma_link_wait_retry_count(count);
77+
pau_ll_set_regdma_link_wait_read_interval(interval);
7878
}

components/hal/esp32h21/include/hal/lp_aon_ll.h

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -85,54 +85,6 @@ static inline void lp_aon_ll_inform_wakeup_type(bool dslp)
8585
}
8686
}
8787

88-
/**
89-
* @brief Set the maximum number of linked lists supported by REGDMA
90-
* @param count: the maximum number of regdma link
91-
*/
92-
static inline void lp_aon_ll_set_regdma_link_count(int count)
93-
{
94-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg0, aon_branch_link_length_aon, count);
95-
}
96-
97-
/**
98-
* @brief Set the maximum number of times a single linked list can run for REGDMA. If a linked list continuously reads in a loop
99-
* for some reason and the execution count exceeds this configured number, a timeout will be triggered.
100-
* @param count: the maximum number of loop
101-
*/
102-
static inline void lp_aon_ll_set_regdma_link_loop_threshold(int count)
103-
{
104-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg1, aon_link_work_tout_thres_aon, count);
105-
}
106-
107-
/**
108-
* @brief Set the timeout duration for accessing registers. If REGDMA encounters bus-related issues while accessing
109-
* registers and gets stuck on the bus, a timeout will be triggered.
110-
* @param count: the maximum number of time
111-
*/
112-
static inline void lp_aon_ll_set_regdma_link_reg_access_tout_threshold(int count)
113-
{
114-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg1, aon_link_backup_tout_thres_aon, count);
115-
}
116-
117-
/**
118-
* @brief Set the regdma_link_addr
119-
* @param addr: the addr of regdma_link
120-
*/
121-
static inline void lp_aon_ll_set_regdma_link_addr(uint32_t addr)
122-
{
123-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg2, aon_link_addr_aon, addr);
124-
}
125-
126-
static inline void lp_aon_ll_set_regdma_link_wait_retry_count(int count)
127-
{
128-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg1, aon_link_wait_tout_thres_aon, count);
129-
}
130-
131-
static inline void lp_aon_ll_set_regdma_link_wait_read_interval(int interval)
132-
{
133-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg0, aon_read_interval_aon, interval);
134-
}
135-
13688
#ifdef __cplusplus
13789
}
13890
#endif

components/hal/esp32h21/include/hal/pau_ll.h

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,54 @@ static inline void pau_ll_clear_regdma_backup_error_intr_state(pau_dev_t *dev)
137137
dev->int_clr.error_int_clr = 1;
138138
}
139139

140+
/**
141+
* @brief Set the maximum number of linked lists supported by REGDMA
142+
* @param count: the maximum number of regdma link
143+
*/
144+
static inline void pau_ll_set_regdma_link_count(int count)
145+
{
146+
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg0, aon_branch_link_length_aon, count);
147+
}
148+
149+
/**
150+
* @brief Set the maximum number of times a single linked list can run for REGDMA. If a linked list continuously reads in a loop
151+
* for some reason and the execution count exceeds this configured number, a timeout will be triggered.
152+
* @param count: the maximum number of loop
153+
*/
154+
static inline void pau_ll_set_regdma_link_loop_threshold(int count)
155+
{
156+
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg1, aon_link_work_tout_thres_aon, count);
157+
}
158+
159+
/**
160+
* @brief Set the timeout duration for accessing registers. If REGDMA encounters bus-related issues while accessing
161+
* registers and gets stuck on the bus, a timeout will be triggered.
162+
* @param count: the maximum number of time
163+
*/
164+
static inline void pau_ll_set_regdma_link_reg_access_tout_threshold(int count)
165+
{
166+
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg1, aon_link_backup_tout_thres_aon, count);
167+
}
168+
169+
/**
170+
* @brief Set the regdma_link_addr
171+
* @param addr: the addr of regdma_link
172+
*/
173+
static inline void pau_ll_set_regdma_link_addr(uint32_t addr)
174+
{
175+
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg2, aon_link_addr_aon, addr);
176+
}
177+
178+
static inline void pau_ll_set_regdma_link_wait_retry_count(int count)
179+
{
180+
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg1, aon_link_wait_tout_thres_aon, count);
181+
}
182+
183+
static inline void pau_ll_set_regdma_link_wait_read_interval(int interval)
184+
{
185+
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg0, aon_read_interval_aon, interval);
186+
}
187+
140188
#ifdef __cplusplus
141189
}
142190
#endif

components/hal/esp32h21/pau_hal.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
void pau_hal_set_regdma_entry_link_addr(pau_hal_context_t *hal, pau_regdma_link_addr_t *link_addr)
1818
{
19-
lp_aon_ll_set_regdma_link_addr((uint32_t)(*link_addr)[0]);
19+
pau_ll_set_regdma_link_addr((uint32_t)(*link_addr)[0]);
2020
}
2121

2222
void IRAM_ATTR pau_hal_start_regdma_modem_link(pau_hal_context_t *hal, bool backup_or_restore)
@@ -63,20 +63,20 @@ void IRAM_ATTR pau_hal_stop_regdma_extra_link(pau_hal_context_t *hal)
6363
void pau_hal_regdma_link_count_config(pau_hal_context_t *hal, int count)
6464
{
6565
HAL_ASSERT(count > 0);
66-
lp_aon_ll_set_regdma_link_count(count - 1);
66+
pau_ll_set_regdma_link_count(count - 1);
6767
}
6868
#endif
6969

7070
void pau_hal_set_regdma_work_timeout(pau_hal_context_t *hal, uint32_t loop_num, uint32_t time)
7171
{
7272
HAL_ASSERT(loop_num > 0 && time > 0);
73-
lp_aon_ll_set_regdma_link_loop_threshold(loop_num);
74-
lp_aon_ll_set_regdma_link_reg_access_tout_threshold(time);
73+
pau_ll_set_regdma_link_loop_threshold(loop_num);
74+
pau_ll_set_regdma_link_reg_access_tout_threshold(time);
7575
}
7676

7777
void pau_hal_set_regdma_wait_timeout(pau_hal_context_t *hal, int count, int interval)
7878
{
7979
HAL_ASSERT(count > 0 && interval > 0);
80-
lp_aon_ll_set_regdma_link_wait_retry_count(count);
81-
lp_aon_ll_set_regdma_link_wait_read_interval(interval);
80+
pau_ll_set_regdma_link_wait_retry_count(count);
81+
pau_ll_set_regdma_link_wait_read_interval(interval);
8282
}

components/hal/esp32h4/include/hal/lp_aon_ll.h

Lines changed: 1 addition & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -96,46 +96,11 @@ static inline void lp_aon_ll_inform_wakeup_type(bool dslp)
9696
* @brief Set the maximum number of linked lists supported by REGDMA
9797
* @param count: the maximum number of regdma link
9898
*/
99-
static inline void lp_aon_ll_set_regdma_link_count(int count)
99+
static inline void pau_ll_set_regdma_link_count(int count)
100100
{
101101
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg0, aon_branch_link_length_aon, count);
102102
}
103103

104-
static inline void lp_aon_ll_set_regdma_link_addr(uint32_t addr)
105-
{
106-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg2, aon_link_addr_aon, addr);
107-
}
108-
109-
/**
110-
* @brief Set the maximum number of times a single linked list can run for REGDMA. If a linked list continuously reads in a loop
111-
* for some reason and the execution count exceeds this configured number, a timeout will be triggered.
112-
* @param count: the maximum number of loop
113-
*/
114-
static inline void lp_aon_ll_set_regdma_link_loop_threshold(int count)
115-
{
116-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg1, aon_link_work_tout_thres_aon, count);
117-
}
118-
119-
/**
120-
* @brief Set the timeout duration for accessing registers. If REGDMA encounters bus-related issues while accessing
121-
* registers and gets stuck on the bus, a timeout will be triggered.
122-
* @param count: the maximum number of time
123-
*/
124-
static inline void lp_aon_ll_set_regdma_link_reg_access_tout_threshold(int count)
125-
{
126-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg1, aon_link_backup_tout_thres_aon, count);
127-
}
128-
129-
static inline void lp_aon_ll_set_regdma_link_wait_retry_count(int count)
130-
{
131-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg1, aon_link_wait_tout_thres_aon, count);
132-
}
133-
134-
static inline void lp_aon_ll_set_regdma_link_wait_read_interval(int interval)
135-
{
136-
HAL_FORCE_MODIFY_U32_REG_FIELD(LP_AON.backup_dma_cfg0, aon_read_interval_aon, interval);
137-
}
138-
139104
#ifdef __cplusplus
140105
}
141106
#endif

0 commit comments

Comments
 (0)