Skip to content

Commit e1213c8

Browse files
committed
Merge branch 'feat/soc_config_h' into 'master'
split soc_caps.h and standardize its name/usage Closes IDF-11815 See merge request espressif/esp-idf!35445
2 parents 4e12ed0 + 0999aee commit e1213c8

File tree

126 files changed

+955
-978
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+955
-978
lines changed

components/esp_driver_gptimer/src/gptimer.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@ static esp_err_t gptimer_create_sleep_retention_link_cb(void *timer)
1717
{
1818
int group_id = ((gptimer_t *)timer)->group->group_id;
1919
int timer_id = ((gptimer_t *)timer)->timer_id;
20-
esp_err_t err = sleep_retention_entries_create(tg_timer_reg_retention_info[group_id][timer_id].regdma_entry_array,
21-
tg_timer_reg_retention_info[group_id][timer_id].array_size,
22-
REGDMA_LINK_PRI_GPTIMER, tg_timer_reg_retention_info[group_id][timer_id].module);
20+
esp_err_t err = sleep_retention_entries_create(soc_timg_gptimer_retention_infos[group_id][timer_id].regdma_entry_array,
21+
soc_timg_gptimer_retention_infos[group_id][timer_id].array_size,
22+
REGDMA_LINK_PRI_GPTIMER, soc_timg_gptimer_retention_infos[group_id][timer_id].module);
2323
return err;
2424
}
2525

2626
static void gptimer_create_retention_module(gptimer_t *timer)
2727
{
2828
int group_id = timer->group->group_id;
2929
int timer_id = timer->timer_id;
30-
sleep_retention_module_t module = tg_timer_reg_retention_info[group_id][timer_id].module;
30+
sleep_retention_module_t module = soc_timg_gptimer_retention_infos[group_id][timer_id].module;
3131
if (sleep_retention_is_module_inited(module) && !sleep_retention_is_module_created(module)) {
3232
if (sleep_retention_module_allocate(module) != ESP_OK) {
3333
// even though the sleep retention module create failed, GPTimer driver should still work, so just warning here
@@ -41,12 +41,12 @@ static esp_err_t gptimer_register_to_group(gptimer_t *timer)
4141
{
4242
gptimer_group_t *group = NULL;
4343
int timer_id = -1;
44-
for (int i = 0; i < SOC_TIMER_GROUPS; i++) {
44+
for (int i = 0; i < SOC_TIMG_ATTR(INST_NUM); i++) {
4545
group = gptimer_acquire_group_handle(i);
4646
ESP_RETURN_ON_FALSE(group, ESP_ERR_NO_MEM, TAG, "no mem for group (%d)", i);
4747
// loop to search free timer in the group
4848
portENTER_CRITICAL(&group->spinlock);
49-
for (int j = 0; j < SOC_TIMER_GROUP_TIMERS_PER_GROUP; j++) {
49+
for (int j = 0; j < SOC_GPTIMER_ATTR(TIMERS_PER_TIMG); j++) {
5050
if (!group->timers[j]) {
5151
timer_id = j;
5252
group->timers[j] = timer;
@@ -65,7 +65,7 @@ static esp_err_t gptimer_register_to_group(gptimer_t *timer)
6565
ESP_RETURN_ON_FALSE(timer_id != -1, ESP_ERR_NOT_FOUND, TAG, "no free timer");
6666

6767
#if GPTIMER_USE_RETENTION_LINK
68-
sleep_retention_module_t module = tg_timer_reg_retention_info[group->group_id][timer_id].module;
68+
sleep_retention_module_t module = soc_timg_gptimer_retention_infos[group->group_id][timer_id].module;
6969
sleep_retention_module_init_param_t init_param = {
7070
.cbs = {
7171
.create = {
@@ -93,7 +93,7 @@ static void gptimer_unregister_from_group(gptimer_t *timer)
9393
portEXIT_CRITICAL(&group->spinlock);
9494

9595
#if GPTIMER_USE_RETENTION_LINK
96-
sleep_retention_module_t module = tg_timer_reg_retention_info[group->group_id][timer_id].module;
96+
sleep_retention_module_t module = soc_timg_gptimer_retention_infos[group->group_id][timer_id].module;
9797
if (sleep_retention_is_module_created(module)) {
9898
sleep_retention_module_free(module);
9999
}
@@ -209,11 +209,11 @@ esp_err_t gptimer_del_timer(gptimer_handle_t timer)
209209
ESP_RETURN_ON_ERROR(gptimer_destroy(timer), TAG, "destroy gptimer failed");
210210

211211
switch (clk_src) {
212-
#if SOC_TIMER_GROUP_SUPPORT_RC_FAST
212+
#if TIMER_LL_FUNC_CLOCK_SUPPORT_RC_FAST
213213
case GPTIMER_CLK_SRC_RC_FAST:
214214
periph_rtc_dig_clk8m_disable();
215215
break;
216-
#endif // SOC_TIMER_GROUP_SUPPORT_RC_FAST
216+
#endif // TIMER_LL_FUNC_CLOCK_SUPPORT_RC_FAST
217217
default:
218218
break;
219219
}
@@ -288,7 +288,7 @@ esp_err_t gptimer_register_event_callbacks(gptimer_handle_t timer, const gptimer
288288
if (timer->intr_priority) {
289289
isr_flags |= 1 << (timer->intr_priority);
290290
}
291-
ESP_RETURN_ON_ERROR(esp_intr_alloc_intrstatus(timer_group_periph_signals.groups[group_id].timer_irq_id[timer_id], isr_flags,
291+
ESP_RETURN_ON_ERROR(esp_intr_alloc_intrstatus(soc_timg_gptimer_signals[group_id][timer_id].irq_id, isr_flags,
292292
(uint32_t)timer_ll_get_intr_status_reg(timer->hal.dev), TIMER_LL_EVENT_ALARM(timer_id),
293293
gptimer_default_isr, timer, &timer->intr), TAG, "install interrupt service failed");
294294
}

components/esp_driver_gptimer/src/gptimer_common.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212

1313
typedef struct gptimer_platform_t {
1414
_lock_t mutex; // platform level mutex lock
15-
gptimer_group_t *groups[SOC_TIMER_GROUPS]; // timer group pool
16-
int group_ref_counts[SOC_TIMER_GROUPS]; // reference count used to protect group install/uninstall
15+
gptimer_group_t *groups[SOC_TIMG_ATTR(INST_NUM)]; // timer group pool
16+
int group_ref_counts[SOC_TIMG_ATTR(INST_NUM)]; // reference count used to protect group install/uninstall
1717
} gptimer_platform_t;
1818

1919
// gptimer driver platform, it's always a singleton
@@ -48,7 +48,7 @@ gptimer_group_t *gptimer_acquire_group_handle(int group_id)
4848
// !!! HARDWARE SHARED RESOURCE !!!
4949
// the gptimer and watchdog reside in the same the timer group
5050
// we need to increase/decrease the reference count before enable/disable/reset the peripheral
51-
PERIPH_RCC_ACQUIRE_ATOMIC(timer_group_periph_signals.groups[group_id].module, ref_count) {
51+
PERIPH_RCC_ACQUIRE_ATOMIC(soc_timg_gptimer_signals[group_id][0].parent_module, ref_count) {
5252
if (ref_count == 0) {
5353
timer_ll_enable_bus_clock(group_id, true);
5454
timer_ll_reset_register(group_id);
@@ -76,7 +76,7 @@ void gptimer_release_group_handle(gptimer_group_t *group)
7676

7777
if (do_deinitialize) {
7878
// disable bus clock for the timer group
79-
PERIPH_RCC_RELEASE_ATOMIC(timer_group_periph_signals.groups[group_id].module, ref_count) {
79+
PERIPH_RCC_RELEASE_ATOMIC(soc_timg_gptimer_signals[group_id][0].parent_module, ref_count) {
8080
if (ref_count == 0) {
8181
timer_ll_enable_bus_clock(group_id, false);
8282
}
@@ -92,13 +92,13 @@ esp_err_t gptimer_select_periph_clock(gptimer_t *timer, gptimer_clock_source_t s
9292
int timer_id = timer->timer_id;
9393
int group_id = timer->group->group_id;
9494
// TODO: [clk_tree] to use a generic clock enable/disable or acquire/release function for all clock source
95-
#if SOC_TIMER_GROUP_SUPPORT_RC_FAST
95+
#if TIMER_LL_FUNC_CLOCK_SUPPORT_RC_FAST
9696
if (src_clk == GPTIMER_CLK_SRC_RC_FAST) {
9797
// RC_FAST clock is not enabled automatically on start up, we enable it here manually.
9898
// Note there's a ref count in the enable/disable function, we must call them in pair in the driver.
9999
periph_rtc_dig_clk8m_enable();
100100
}
101-
#endif // SOC_TIMER_GROUP_SUPPORT_RC_FAST
101+
#endif // TIMER_LL_FUNC_CLOCK_SUPPORT_RC_FAST
102102
timer->clk_src = src_clk;
103103

104104
// get clock source frequency
@@ -111,19 +111,19 @@ esp_err_t gptimer_select_periph_clock(gptimer_t *timer, gptimer_clock_source_t s
111111
// driver will create different pm lock for that purpose, according to different clock source
112112
esp_pm_lock_type_t pm_lock_type = ESP_PM_NO_LIGHT_SLEEP;
113113

114-
#if SOC_TIMER_GROUP_SUPPORT_RC_FAST
114+
#if TIMER_LL_FUNC_CLOCK_SUPPORT_RC_FAST
115115
if (src_clk == GPTIMER_CLK_SRC_RC_FAST) {
116116
// RC_FAST won't be turn off in sleep and won't change its frequency during DFS
117117
need_pm_lock = false;
118118
}
119-
#endif // SOC_TIMER_GROUP_SUPPORT_RC_FAST
119+
#endif // TIMER_LL_FUNC_CLOCK_SUPPORT_RC_FAST
120120

121-
#if SOC_TIMER_GROUP_SUPPORT_APB
121+
#if TIMER_LL_FUNC_CLOCK_SUPPORT_APB
122122
if (src_clk == GPTIMER_CLK_SRC_APB) {
123123
// APB clock frequency can be changed during DFS
124124
pm_lock_type = ESP_PM_APB_FREQ_MAX;
125125
}
126-
#endif // SOC_TIMER_GROUP_SUPPORT_APB
126+
#endif // TIMER_LL_FUNC_CLOCK_SUPPORT_APB
127127

128128
#if CONFIG_IDF_TARGET_ESP32C2
129129
if (src_clk == GPTIMER_CLK_SRC_PLL_F40M) {
@@ -135,7 +135,7 @@ esp_err_t gptimer_select_periph_clock(gptimer_t *timer, gptimer_clock_source_t s
135135
#endif // CONFIG_IDF_TARGET_ESP32C2
136136

137137
if (need_pm_lock) {
138-
ESP_RETURN_ON_ERROR(esp_pm_lock_create(pm_lock_type, 0, timer_group_periph_signals.groups[group_id].module_name[timer_id], &timer->pm_lock),
138+
ESP_RETURN_ON_ERROR(esp_pm_lock_create(pm_lock_type, 0, soc_timg_gptimer_signals[group_id][timer_id].module_name, &timer->pm_lock),
139139
TAG, "create pm lock failed");
140140
}
141141
#endif // CONFIG_PM_ENABLE

components/esp_driver_gptimer/src/gptimer_priv.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
// Set the maximum log level for gptimer driver
1515
#define LOG_LOCAL_LEVEL ESP_LOG_VERBOSE
1616
#endif
17-
#include "soc/soc_caps.h"
17+
#include "soc/soc_caps_full.h"
1818
#include "freertos/FreeRTOS.h"
1919
#include "esp_err.h"
2020
#include "esp_log.h"
@@ -69,7 +69,7 @@ typedef struct gptimer_t gptimer_t;
6969
typedef struct gptimer_group_t {
7070
int group_id;
7171
portMUX_TYPE spinlock; // to protect per-group register level concurrent access
72-
gptimer_t *timers[SOC_TIMER_GROUP_TIMERS_PER_GROUP];
72+
gptimer_t *timers[SOC_GPTIMER_ATTR(TIMERS_PER_TIMG)];
7373
} gptimer_group_t;
7474

7575
typedef enum {

0 commit comments

Comments
 (0)