]> granicus.if.org Git - esp-idf/commit
Merge branch 'feature/extend_deep_sleep_apis' into 'master'
authorIvan Grokhotkov <ivan@espressif.com>
Fri, 16 Dec 2016 08:17:37 +0000 (16:17 +0800)
committerIvan Grokhotkov <ivan@espressif.com>
Fri, 16 Dec 2016 08:17:37 +0000 (16:17 +0800)
commit576052e5c28eb462cb5f5dd39b40dfcc7a8dc92d
treef5470af9fb5b3adaa829cc3a5295f9a8536eaf36
parentd246836cfc5ddbe8c46feb7422ce07b46963496b
parent126d1642832a905c4f0dcd573f81b636b9acd492
Merge branch 'feature/extend_deep_sleep_apis' into 'master'

extend deep sleep APIs

This adds the following APIs to enable various wakeup sources:
- esp_deep_sleep_enable_timer_wakeup
- esp_deep_sleep_enable_ulp_wakeup
- esp_deep_sleep_enable_ext0_wakeup
- esp_deep_sleep_enable_ext1_wakeup

And an API to start deep sleep:
- esp_deep_sleep_start

Add an API to control which peripherals are kept enabled in deep sleep mode:
- esp_err_t esp_deep_sleep_pd_config

Also rolled an update of rtc_io header comments into this MR, as I had to add `slpie`, `slpsel`, and `hold` fields into `rtc_gpio_desc_t` struct.

Deep sleep unit tests don’t do anything useful in CI context because we don’t have a way to check reset behavior (time till reset, reason for reset) in CI environment, yet. Also for external wakeup we would need to control some ESP32 pins from the test environment.

Currently there is one known issue:
- RTC Fast memory may be isolated from the bus after deep sleep reset. We work around this by setting FORCE_NONISO flag in RTC power control register. This is non-optimal and we will keep looking for the reason why isolation gets enabled.

See merge request !297