fix(temperature_sensor): Fix temperature sensor sleep retention on p4

This commit is contained in:
C.S.M
2024-11-14 15:49:06 +08:00
parent 75e0cc387e
commit 479f7bfdc4

View File

@@ -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);