mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 11:10:54 +03:00
fix(esp_driver_tsens): bind lp_periph domain sleep pd with tsens power
This commit is contained in:
@@ -150,10 +150,6 @@ esp_err_t temperature_sensor_install(const temperature_sensor_config_t *tsens_co
|
|||||||
#endif
|
#endif
|
||||||
#endif // SOC_TEMPERATURE_SENSOR_SUPPORT_SLEEP_RETENTION
|
#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
|
#if TEMPERATURE_SENSOR_USE_RETENTION_LINK
|
||||||
sleep_retention_module_init_param_t init_param = {
|
sleep_retention_module_init_param_t init_param = {
|
||||||
.cbs = { .create = { .handle = s_temperature_sensor_sleep_retention_init, .arg = (void *)tsens } }
|
.cbs = { .create = { .handle = s_temperature_sensor_sleep_retention_init, .arg = (void *)tsens } }
|
||||||
@@ -216,10 +212,6 @@ esp_err_t temperature_sensor_uninstall(temperature_sensor_handle_t tsens)
|
|||||||
}
|
}
|
||||||
#endif // TEMPERATURE_SENSOR_USE_RETENTION_LINK
|
#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();
|
temperature_sensor_power_release();
|
||||||
|
|
||||||
free(tsens);
|
free(tsens);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -10,6 +10,7 @@
|
|||||||
#include "esp_private/sar_periph_ctrl.h"
|
#include "esp_private/sar_periph_ctrl.h"
|
||||||
#include "esp_log.h"
|
#include "esp_log.h"
|
||||||
#include "esp_timer.h"
|
#include "esp_timer.h"
|
||||||
|
#include "esp_sleep.h"
|
||||||
|
|
||||||
#if SOC_TEMP_SENSOR_SUPPORTED
|
#if SOC_TEMP_SENSOR_SUPPORTED
|
||||||
#include "hal/temperature_sensor_ll.h"
|
#include "hal/temperature_sensor_ll.h"
|
||||||
@@ -53,6 +54,9 @@ void temperature_sensor_power_acquire(void)
|
|||||||
// Initialize HAL layer with the same tsens_idx
|
// Initialize HAL layer with the same tsens_idx
|
||||||
temperature_sensor_hal_init();
|
temperature_sensor_hal_init();
|
||||||
timer1 = esp_timer_get_time();
|
timer1 = esp_timer_get_time();
|
||||||
|
#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
|
||||||
}
|
}
|
||||||
esp_os_exit_critical(&rtc_spinlock);
|
esp_os_exit_critical(&rtc_spinlock);
|
||||||
}
|
}
|
||||||
@@ -75,6 +79,9 @@ void temperature_sensor_power_release(void)
|
|||||||
adc_apb_periph_free();
|
adc_apb_periph_free();
|
||||||
#endif
|
#endif
|
||||||
regi2c_saradc_disable();
|
regi2c_saradc_disable();
|
||||||
|
#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
|
||||||
}
|
}
|
||||||
esp_os_exit_critical(&rtc_spinlock);
|
esp_os_exit_critical(&rtc_spinlock);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,8 @@ entries:
|
|||||||
sar_tsens_ctrl:temperature_sensor_power_acquire (noflash)
|
sar_tsens_ctrl:temperature_sensor_power_acquire (noflash)
|
||||||
sar_tsens_ctrl:temperature_sensor_power_release (noflash)
|
sar_tsens_ctrl:temperature_sensor_power_release (noflash)
|
||||||
sar_tsens_ctrl:temp_sensor_get_raw_value (noflash)
|
sar_tsens_ctrl:temp_sensor_get_raw_value (noflash)
|
||||||
|
if (SOC_TEMPERATURE_SENSOR_SUPPORT_SLEEP_RETENTION = y) && (SOC_TEMPERATURE_SENSOR_UNDER_PD_TOP_DOMAIN = n):
|
||||||
|
sleep_modes:esp_sleep_pd_config (noflash)
|
||||||
sar_periph_ctrl_common:regi2c_saradc_enable (noflash)
|
sar_periph_ctrl_common:regi2c_saradc_enable (noflash)
|
||||||
sar_periph_ctrl_common:regi2c_saradc_disable (noflash)
|
sar_periph_ctrl_common:regi2c_saradc_disable (noflash)
|
||||||
if SOC_ADC_SUPPORTED = y:
|
if SOC_ADC_SUPPORTED = y:
|
||||||
|
|||||||
Reference in New Issue
Block a user