Commit Graph
80 Commits
Author SHA1 Message Date
jingli cb0f517fe3 soc/soc_caps: update soc caps for chips that support power-down of modem hardware
Closes WIFI-4424
2023-03-10 14:15:27 +08:00
Jing Li cec892d355 Merge branch 'refactor/refactor_deep_sleep_example' into 'master'
examples/deep sleep: refactor deep sleep example to make codes more structured

See merge request espressif/esp-idf!22635
2023-03-10 10:45:30 +08:00
jingli b6580ea4ac example: refactor deep sleep example to make codes more structured 2023-03-09 15:23:56 +08:00
jingli 238f31d93b uart: add low level func for uart to set err wr mask 2023-03-09 10:28:33 +08:00
jingli e38e5be9ac system/test: use TEST_ESP_OK instead of ESP_ERROR_CHECK 2023-03-06 10:58:18 +08:00
jingli 955f2838fc konfig: make rtc fast mem related kconfig depend on SOC_RTC_FAST_MEM_SUPPORTED 2023-03-06 10:58:18 +08:00
jingli c8be36c3f4 examples/wifi/power_save: use 1000Hz freertos tick to lower sleep time threshold 2023-03-06 10:58:18 +08:00
jingli 49b40f1999 esp32c2/ci: reenable deep sleep example test 2023-03-06 10:58:18 +08:00
jingli baaef3bd48 examples/system/deep_sleep:
Use nvs instead of RTC_DATA_ATTR to record deep sleep enter time when
the target chip does not have rtc mem.
2023-03-06 10:56:59 +08:00
jingli 001c6f5e86 examples/system/light_sleep:
Add some hints in README to remind users that they can try to power down
the CPU and SPI Flash for lower power consumption.
2023-03-06 10:34:37 +08:00
Jing Li a529771d88 Merge branch 'refactor/pm_use_unified_esp_pm_config_t' into 'master'
pm: refactor pm codes to use unified esp_pm_config_t

See merge request espressif/esp-idf!22472
2023-02-24 14:06:19 +08:00
jingli 3a648e8ed6 ci: h2 does not support deep sleep currently, comment some codes to avoid ci error 2023-02-23 11:36:13 +08:00
jingli eede7295d1 docs: upate migration guides for deprecated type and header file in power management component 2023-02-23 11:36:13 +08:00
jingli 4c3d1e24d7 codeclean: remove unused sleep related functions 2023-02-23 11:36:13 +08:00
jingli 8f415a7f44 refactor: power management component use unified esp_pm_config_t 2023-02-23 11:36:07 +08:00
Jing Li 75a82988f1 Merge branch 'refactor/wdt_use_unified_type' into 'master'
wdt: refactor wdt codes to use unified type

Closes IDF-5653

See merge request espressif/esp-idf!22378
2023-02-21 09:46:06 +08:00
jingli 9c37441b17 wdt: refactor wdt codes to use unified type 2023-02-15 12:08:55 +08:00
jingli 28c7620cba sleep: fix gpio wakeup not working properly in some cases
Before this fix, when we call esp_pm_configure after gpio_wakeup_enable,
the configuration of GPIO in sleep state in gpio_wakeup_enable will be
overwritten by esp_pm_configure.
2023-02-11 01:06:18 +00:00
jingli 557a1ed1a5 soc_caps: remove SOC_GPIO_SUPPORT_SLP_SWITCH
all esp chips support this feature
2023-02-11 01:06:18 +00:00
Jing Li 409804f673 Merge branch 'feature/support_feature_depend_on_rtc_fast_mem_for_esp32c2' into 'master'
esp32c2: support feature(rtc time) depend on rtc fast mem

Closes IDF-3901, IDF-4239, IDF-5053, IDF-5060, and IDF-5131

See merge request espressif/esp-idf!19067
2023-02-07 15:16:01 +08:00
jingli af9c6e3175 esp32c2/rtc: fix 8md256 as rtc slow clk not work properly during deep sleep 2023-02-02 20:41:11 +08:00
jingli 13b5e625a7 UT/esp32c2: reenable pm and sleep related UT 2023-02-02 20:26:08 +08:00
jingli 2e4f0c7926 UT/esp32c2: reenable rtc clk calibration compensation UT 2023-02-02 20:26:08 +08:00
jingli f8cc2ec86d esp32c2: support rtc time feature depend on rtc memory, since c2 does not have rtc memory 2023-02-02 20:25:59 +08:00
jingli cf244a14f0 bt: fix bt sleep flow hangs in btdm_sleep_clock_sync
Bluetooth low power related logic and regs have separate power domain from MAC and BB,
and do not power down during light sleep. If reset when power up MAC and BB in sleep
flow, it may destroy the state of bt low power part.
2022-11-29 14:28:32 +08:00
jingli 0d8ece50fd Coexistence: remove reset for esp32's modem when PU to avoid SoftAP fail to work in some cases 2022-10-19 17:26:26 +08:00
Jing Li dd2f861b68 Merge branch 'bugfix/fix_current_leakage_when_hold_digital_io_during_deep_sleep' into 'master'
esp_hw_support/sleep: fix current leakage when hold digital io during deep sleep

Closes AUD-4032, IDF-5967, and ESPCS-867

See merge request espressif/esp-idf!20197
2022-10-11 16:46:48 +08:00
jingli 5f60c4345e esp_hw_support/sleep: remove redundant spinlock protection for deep sleep 2022-10-11 12:11:36 +08:00
jingli 2b8c43df69 hal/gpio_ll: fix digital gpio can not enable hold during deep sleep when force_unhold set(32/s2/s3) 2022-10-11 12:11:36 +08:00
jingli 128d82eaaa hal/gpio_ll: fix digital gpio can not disable hold during deep sleep 2022-10-11 12:11:36 +08:00
jingli b903a2253b esp_hw_support/sleep: fix current leakage when hold digital io during deep sleep 2022-10-11 12:11:28 +08:00
jingli 101c2c6c3e esp_hw_support/sleep: fix light sleep wakeup flag
light sleep wakeup flag is true to indicate the most recent successful wakeup from light sleep,
which means the most recent light sleep occurred successfully and then wakes up by wakeup source
2022-10-09 19:59:24 +08:00
jingli 0a44d09f4f esp32/rtc: fix xtal unstable in some cases when sleep
1. add xtal buf wait to fix high temperature restart issue
2. add min sleep value to fix xtal stop due to too short sleep time issue
2022-10-09 19:58:58 +08:00
jingli 42699637ec soc: remove unused DR_REG_DPORT_END macro for c2/c3/s2/s3 2022-09-22 11:45:20 +08:00
jingli cce2af9193 wifi/bt: fix part of modem module not reset when power up 2022-09-22 11:45:20 +08:00
Jing Li db1bbdafea Merge branch 'bugfix/fix_c2_xtal_unstable_when_wakeup_from_sleep' into 'master'
esp_hw_support/esp32c2/rtc: fix c2 xtal unstable when wakeup from sleep

See merge request espressif/esp-idf!20272
2022-09-21 22:53:59 +08:00
jingli 04530d7112 esp_hw_support/esp32c2/rtc: take a safer xtal buf wait 2022-09-21 12:27:26 +00:00
jingli 60c1811433 esp_hw_support/clk_cali: remove redundant check for cali value 2022-09-21 03:03:25 +00:00
jingli 05a2fbe810 esp_hw_support/clk_cali: fix xtal32k error detect 2022-09-21 03:03:25 +00:00
Jing Li b51d4dfacd Merge branch 'bugfix/fix_clk_cali_logic_for_c2' into 'master'
esp32c2/clk_cali: fix rtc slow clk cali logic

See merge request espressif/esp-idf!19553
2022-08-17 11:11:19 +08:00
jingli c70094f64a esp32c2/clk_cali: fix rtc slow clk cali logic 2022-08-15 16:31:54 +08:00
Jing Li c25c254666 Merge branch 'feature/further_support_esp32c2_sleep' into 'master'
esp32c2/sleep: further support sleep for esp32c2 with 26MHz XTAL

Closes IDF-5544

See merge request espressif/esp-idf!19017
2022-08-08 13:26:15 +08:00
jingli 209cb1f8ee docs: fix xtal kconfig related description 2022-08-05 19:12:29 +08:00
jingli fcbaac4d42 examples/wifi/power_save: fix project kconfig file 2022-08-05 19:12:29 +08:00
jingli ee3423834e kconfig: refactor xtal freq kconfig to common configuration item 2022-08-05 19:12:29 +08:00
jingli a61abcc22e examples/system/light_sleep: fix uart garbled output 2022-08-05 19:10:53 +08:00
jingli ee17949e39 examples/system/light_sleep: fix baudrate for uart wakeup source 2022-08-05 19:10:53 +08:00
Jing Li 2c41aae1e7 Merge branch 'bugfix/temp_fix_clk8m_and_cpu_cannot_pd_at_the_same_time' into 'master'
esp_hw_support/sleep: fix cannot pd cpu and rc fast at the same time during light sleep

Closes WIFI-4492 and IDF-5473

See merge request espressif/esp-idf!19196
2022-07-28 14:45:28 +08:00
jingli 7211b0a89a esp_hw_support/sleep: fix cannot pd cpu and rc fast at the same time during light sleep
Since cpu retention dma use rc fast as clk source, so rc_fast_digi
will be enabled when we config to pd cpu. And cpu retention does not
need rc fast keep on during light sleep. So, if we use rc_fast_digi
to determine whether rc fast can be powered down, then cpu and and
rc fast cannot pd at the same time.
2022-07-28 11:10:58 +08:00
Jing Li 66395a5c00 system/sleep: further fix spi flash/ram current leakage 2022-07-21 19:14:26 +08:00
Jing Li 9fd5e15b83 Merge branch 'docs/improve_docs_for_flash_power_down' into 'master'
docs: improve docs about flash power-down

Closes IDF-5258

See merge request espressif/esp-idf!18696
2022-07-06 11:02:54 +08:00
jingli d3c6fff25a improve docs about flash power-down 2022-07-05 19:25:21 +08:00
Jing Li 6c8dc275a1 Merge branch 'refactor/improve_flash_power_down_logic' into 'master'
sleep: improve flash power down logic

See merge request espressif/esp-idf!17901
2022-06-20 11:05:58 +08:00
jingli 3a908c66e6 use API instead of Kconfig 2022-06-17 19:57:47 +08:00
jingli 824e0ddca8 improve flash power down logic 2022-06-17 18:01:43 +08:00
Jing Li 074c708cf0 Merge branch 'refactor/simplify_code_for_time_compensation_when_sleep' into 'master'
system/sleep: simplify code for time compensation when wakeup from light sleep

See merge request espressif/esp-idf!18491
2022-06-15 14:38:40 +08:00
jingli 30e7af2ffb system/sleep: simplify code for time compensation when wakeup from light sleep 2022-06-14 14:49:26 +08:00
jingli 93a5087e58 add PM related soc caps about power down rtc slow/fast mem
Supporting rtc slow/fast mem does not mean supporting
rtc slow/fast mem power down.
2022-05-30 15:26:50 +08:00
jingli 1781ce3b98 further fix rtc attr for esp32c2 2022-05-28 08:52:55 +00:00
jingli 84628ba883 fix rtc attr for esp32c2 2022-05-28 08:52:55 +00:00
jingli ae127b04cd fix ld err since esp32c2 do not suport config gpio of spi flash via efuse 2022-05-27 19:29:38 +08:00
jingli e70c434780 fix compile error for esp32c2, since esp32c2 no longer support RTC fast mem 2022-05-27 19:29:38 +08:00
jingli 27edaaef91 add wakeup enable for bt 2022-05-27 19:29:38 +08:00
jingli db102da7c6 update sleep params for esp32c2 2022-05-27 19:29:38 +08:00
jingli 9eec740a16 enable external 32k osc for esp32c2 2022-05-27 19:29:29 +08:00
jingli efd5376fc0 fix power_save demo 2022-05-27 18:37:11 +08:00
Jing Li ac0d16cdc8 Merge branch 'bugfix/fix_cannot_lslp_again_after_ulp_wakeup' into 'master'
sleep: fix cannot lightsleep again after a wakeup from ULP

Closes IDFGH-4396

See merge request espressif/esp-idf!17970
2022-05-13 22:25:23 +08:00
jingli a85e187ea7 remove wrong function rtc_cntl_ll_ulp_wakeup_enable for esp32s2 and esp32s3 2022-05-12 21:51:21 +08:00
jingli abb6bb1181 esp_hw_support/sleep: fix cannot enable sleep reject in some cases
When enable sleep reject before this fix, we have two limitations:
1. it must be light sleep
2. RTC GPIO wakeup source must be set

We require light sleep because `esp_deep_sleep_start` function has
been declared with "noreturn" attribute, So developers don't expect
that this function may return (due to an error or a sleep reject).
But the requirement for RTC GPIO wakeup source is not reasonable for
all chips. This requirement exists because ESP32 only supports RTC GPIO
and SDIO sleep reject sources. But later chips support all sleep reject
sources.

This fix brings the following changes:
for ESP32: RTC GPIO and SDIO sleep reject sources can be enabled
           when corresponding wakeup source is set.

for later chips: all sleep reject sources can be enabled when
                 corresponding wakeup source is set.
2022-05-12 19:09:57 +08:00
jingli ddcc5bfe38 improve ulp riscv test case
Add second sleep and wakeup test in test case `ULP-RISC-V is able to wakeup main CPU from light sleep`
2022-05-12 19:08:57 +08:00
jingli dd414b9305 esp_hw_‎support/sleep: ‎fix cannot lightsleep again after a wakeup from ULP
Since ulp wakeup signal are connected to ulp int raw(except esp32), we
need to clear ulp int raw before sleep when ulp wakeup enabled. Otherwise,
if the ulp int raw is already set, chip will not sleep properly.

Closes https://github.com/espressif/esp-idf/issues/6229
2022-05-12 17:57:08 +08:00
Jing Li e503ebf5f9 Merge branch 'bugfix/_rtc_slow_length_incorrectly_optimized' into 'master'
sleep_power_domain: fix _rtc_slow_length being incorrectly optimized by compiler

Closes IDFGH-4705

See merge request espressif/esp-idf!17887
2022-04-26 11:29:02 +08:00
jingli f3ea7f8838 fix _rtc_slow_length being incorrectly optimized by compiler 2022-04-24 23:13:48 +08:00
jingli 252a4eceb4 fix rtc mem load err(since the voltage of rtc regulator is too low) 2022-04-21 23:38:16 +08:00
Jing Li 0a64094a60 Merge branch 'bugfix/a_small_fix_for_multi_heap' into 'master'
Heap: fix wrong arg passed to assert_valid_block

See merge request espressif/esp-idf!17274
2022-02-25 05:09:13 +00:00
jingli 6c25dd4ec1 fix param passed to assert_valid_block, should be block not ptr 2022-02-24 13:50:16 +08:00
Jing Li a0e794b2ca heap: adjust the order of RTC memory heap caps and regions 2021-12-29 08:49:42 +00:00
jingli 0ea1825f64 reduce bootup time when using usb-serial-jtag 2021-11-29 17:21:11 +08:00
Jing Li caa9e323cc Merge branch 'bugfix/fix_ota_crash' into 'master'
fix: app crash when OTA because the OTA task's stack is in rtc fast memory

See merge request espressif/esp-idf!15720
2021-11-09 08:45:01 +00:00
jingli efbc980d4f fix: app crash when OTA because the OTA task's stack is in rtc fast memory 2021-11-03 20:56:42 +08:00