forked from espressif/esp-idf
fix(temperature_sensor): Fix temperature sensor sleep retention on p4
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
#include "soc/temperature_sensor_periph.h"
|
||||
#include "esp_memory_utils.h"
|
||||
#include "esp_private/sar_periph_ctrl.h"
|
||||
#include "esp_sleep.h"
|
||||
#if TEMPERATURE_SENSOR_USE_RETENTION_LINK
|
||||
#include "esp_private/sleep_retention.h"
|
||||
#endif
|
||||
@@ -137,6 +138,10 @@ esp_err_t temperature_sensor_install(const temperature_sensor_config_t *tsens_co
|
||||
ESP_RETURN_ON_FALSE(tsens_config->flags.allow_pd == 0, ESP_ERR_NOT_SUPPORTED, TAG, "not able to power down in light sleep");
|
||||
#endif // SOC_TEMPERATURE_SENSOR_SUPPORT_SLEEP_RETENTION
|
||||
|
||||
#if SOC_TEMPERATURE_SENSOR_SUPPORT_SLEEP_RETENTION && !SOC_TEMPERATURE_SENSOR_UNDER_PD_TOP_DOMAIN
|
||||
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
|
||||
#endif
|
||||
|
||||
#if TEMPERATURE_SENSOR_USE_RETENTION_LINK
|
||||
sleep_retention_module_init_param_t init_param = {
|
||||
.cbs = { .create = { .handle = s_temperature_sensor_sleep_retention_init, .arg = (void *)tsens } }
|
||||
@@ -199,6 +204,10 @@ esp_err_t temperature_sensor_uninstall(temperature_sensor_handle_t tsens)
|
||||
}
|
||||
#endif // TEMPERATURE_SENSOR_USE_RETENTION_LINK
|
||||
|
||||
#if SOC_TEMPERATURE_SENSOR_SUPPORT_SLEEP_RETENTION && !SOC_TEMPERATURE_SENSOR_UNDER_PD_TOP_DOMAIN
|
||||
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_OFF);
|
||||
#endif
|
||||
|
||||
temperature_sensor_power_release();
|
||||
|
||||
free(tsens);
|
||||
|
Reference in New Issue
Block a user