Skip to content

Commit 9be8822

Browse files
Merge branch 'feature/esp32c61_light_sleep_support_stage_deepsleep' into 'master'
feat(esp_hw_support): support esp32c61 deepsleep Closes PM-203 and IDF-9245 See merge request espressif/esp-idf!33301
2 parents 903c11f + d9c15bb commit 9be8822

File tree

9 files changed

+37
-14
lines changed

9 files changed

+37
-14
lines changed
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
2-
| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
1+
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
2+
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | -------- |

components/esp_system/port/cpu_start.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -751,7 +751,7 @@ void IRAM_ATTR call_start_cpu0(void)
751751
#endif
752752
#endif
753753

754-
#if SOC_DEEP_SLEEP_SUPPORTED //TODO: IDF-9245
754+
#if SOC_DEEP_SLEEP_SUPPORTED
755755
// Need to unhold the IOs that were hold right before entering deep sleep, which are used as wakeup pins
756756
if (rst_reas[0] == RESET_REASON_CORE_DEEP_SLEEP) {
757757
esp_deep_sleep_wakeup_io_reset();

components/hal/esp32c61/modem_clock_hal.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ void IRAM_ATTR modem_clock_hal_set_clock_domain_icg_bitmap(modem_clock_hal_conte
5959
}
6060
}
6161

62-
uint32_t modem_clock_hal_get_clock_domain_icg_bitmap(modem_clock_hal_context_t *hal, modem_clock_domain_t domain)
62+
uint32_t IRAM_ATTR modem_clock_hal_get_clock_domain_icg_bitmap(modem_clock_hal_context_t *hal, modem_clock_domain_t domain)
6363
{
6464
HAL_ASSERT(domain < MODEM_CLOCK_DOMAIN_MAX);
6565
uint32_t bitmap = 0;

components/soc/esp32c61/include/soc/Kconfig.soc_caps.in

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@ config SOC_LP_TIMER_SUPPORTED
107107
bool
108108
default y
109109

110+
config SOC_LP_AON_SUPPORTED
111+
bool
112+
default y
113+
110114
config SOC_CLK_TREE_SUPPORTED
111115
bool
112116
default y
@@ -131,6 +135,10 @@ config SOC_LIGHT_SLEEP_SUPPORTED
131135
bool
132136
default y
133137

138+
config SOC_DEEP_SLEEP_SUPPORTED
139+
bool
140+
default y
141+
134142
config SOC_PM_SUPPORTED
135143
bool
136144
default y
@@ -295,6 +303,10 @@ config SOC_GPIO_OUT_RANGE_MAX
295303
int
296304
default 21
297305

306+
config SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP
307+
bool
308+
default y
309+
298310
config SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK
299311
int
300312
default 0
@@ -783,6 +795,14 @@ config SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH
783795
int
784796
default 12
785797

798+
config SOC_PM_SUPPORT_EXT1_WAKEUP
799+
bool
800+
default y
801+
802+
config SOC_PM_SUPPORT_EXT1_WAKEUP_MODE_PER_PIN
803+
bool
804+
default y
805+
786806
config SOC_PM_SUPPORT_CPU_PD
787807
bool
788808
default y

components/soc/esp32c61/include/soc/soc_caps.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
#define SOC_APM_SUPPORTED 1 /*!< Support for APM peripheral */
4949
#define SOC_PMU_SUPPORTED 1
5050
#define SOC_LP_TIMER_SUPPORTED 1
51-
// \#define SOC_LP_AON_SUPPORTED 1
51+
#define SOC_LP_AON_SUPPORTED 1
5252
// \#define SOC_LP_PERIPHERALS_SUPPORTED 1
5353
#define SOC_CLK_TREE_SUPPORTED 1
5454
// \#define SOC_ASSIST_DEBUG_SUPPORTED 1 //TODO: [ESP32C61] IDF-9269
@@ -61,6 +61,7 @@
6161
// \#define SOC_SDIO_SLAVE_SUPPORTED 0
6262
// \#define SOC_PAU_SUPPORTED 0
6363
#define SOC_LIGHT_SLEEP_SUPPORTED 1
64+
#define SOC_DEEP_SLEEP_SUPPORTED 1
6465
#define SOC_PM_SUPPORTED 1
6566
#define SOC_ECDSA_SUPPORTED 1
6667
#define SOC_SPIRAM_SUPPORTED 1
@@ -179,7 +180,7 @@
179180
#define SOC_GPIO_OUT_RANGE_MAX 21
180181

181182
// GPIO0~6 on ESP32C61 can support chip deep sleep wakeup
182-
// \#define SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP (1) //TODO: IDF-9245
183+
#define SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP (1)
183184
#define SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK (0ULL | BIT0 | BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6)
184185
#define SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT (7)
185186

@@ -414,8 +415,8 @@
414415
// #define SOC_PM_SUPPORT_WIFI_WAKEUP (1)
415416
// #define SOC_PM_SUPPORT_BEACON_WAKEUP (1)
416417
// #define SOC_PM_SUPPORT_BT_WAKEUP (1)
417-
// #define SOC_PM_SUPPORT_EXT1_WAKEUP (1)
418-
// #define SOC_PM_SUPPORT_EXT1_WAKEUP_MODE_PER_PIN (1) /*!<Supports one bit per pin to configure the EXT1 trigger level */
418+
#define SOC_PM_SUPPORT_EXT1_WAKEUP (1)
419+
#define SOC_PM_SUPPORT_EXT1_WAKEUP_MODE_PER_PIN (1) /*!<Supports one bit per pin to configure the EXT1 trigger level */
419420
#define SOC_PM_SUPPORT_CPU_PD (1)
420421
#define SOC_PM_SUPPORT_MODEM_PD (1)
421422
#define SOC_PM_SUPPORT_XTAL32K_PD (1)
@@ -431,8 +432,6 @@
431432
/* macro redefine for pass esp_wifi headers md5sum check */
432433
#define MAC_SUPPORT_PMU_MODEM_STATE SOC_PM_SUPPORT_PMU_MODEM_STATE
433434

434-
// #define SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY (1) /*!<Supports CRC only the stub code in RTC memory */
435-
436435
#define SOC_PM_CPU_RETENTION_BY_SW (1)
437436
#define SOC_PM_MODEM_RETENTION_BY_REGDMA (0)
438437
#define SOC_EXT_MEM_CACHE_TAG_IN_CPU_DOMAIN (1)

examples/system/.build-test-rules.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ examples/system/deep_sleep:
3232

3333
examples/system/deep_sleep_wake_stub:
3434
disable:
35-
- if: IDF_TARGET in ["esp32c2", "esp32p4", "esp32c61"]
35+
- if: ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB != 1
3636
temporary: true
37-
reason: target(s) is not supported yet # TODO: [esp32c61] IDF-9245
37+
reason: target(s) is not supported yet
3838

3939
examples/system/efuse:
4040
enable:

examples/system/deep_sleep/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
2-
| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
1+
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
2+
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | -------- |
33

44
# Deep Sleep Example
55

examples/system/deep_sleep/main/Kconfig.projbuild

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ menu "Example Configuration"
4141
default 2 if !IDF_TARGET_ESP32H2
4242
default 10 if IDF_TARGET_ESP32H2
4343
range 0 7 if IDF_TARGET_ESP32C6 || IDF_TARGET_ESP32C5
44+
range 0 6 if IDF_TARGET_ESP32C61
4445
range 7 14 if IDF_TARGET_ESP32H2
4546
range 0 21 if IDF_TARGET_ESP32S2
4647
range 0 21 if IDF_TARGET_ESP32S3
@@ -116,6 +117,7 @@ menu "Example Configuration"
116117
default 4 if !IDF_TARGET_ESP32H2
117118
default 11 if IDF_TARGET_ESP32H2
118119
range 0 7 if IDF_TARGET_ESP32C6 || IDF_TARGET_ESP32C5
120+
range 0 6 if IDF_TARGET_ESP32C61
119121
range 7 14 if IDF_TARGET_ESP32H2
120122
range 0 21 if IDF_TARGET_ESP32S2
121123
range 0 21 if IDF_TARGET_ESP32S3
@@ -270,6 +272,7 @@ menu "Example Configuration"
270272
int "Enable wakeup from GPIO"
271273
default 0
272274
range 0 7 if IDF_TARGET_ESP32C6 || IDF_TARGET_ESP32C5
275+
range 0 6 if IDF_TARGET_ESP32C61
273276
range 0 15 if IDF_TARGET_ESP32P4
274277
range 0 5 if !IDF_TARGET_ESP32C6 && !IDF_TARGET_ESP32C5
275278

examples/system/deep_sleep/pytest_deep_sleep.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
pytest.mark.esp32c3,
2121
pytest.mark.esp32c5,
2222
pytest.mark.esp32c6,
23+
pytest.mark.esp32c61,
2324
pytest.mark.esp32h2,
2425
pytest.mark.esp32p4,
2526
pytest.mark.esp32c2,

0 commit comments

Comments
 (0)