mirror of
https://github.com/espressif/esp-idf.git
synced 2024-09-20 10:46:02 -04:00
soc/pm: Remove deprecated use of rtc_cpu_freq_t enum
Removes deprecated ways of setting/getting CPU freq, light sleep freqs. Deprecated since ESP-IDF V3.2
This commit is contained in:
parent
f406d020d8
commit
11c1da5276
@ -31,9 +31,7 @@ extern "C" {
|
|||||||
* Pass a pointer to this structure as an argument to esp_pm_configure function.
|
* Pass a pointer to this structure as an argument to esp_pm_configure function.
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
rtc_cpu_freq_t max_cpu_freq __attribute__((deprecated)); /*!< Maximum CPU frequency to use. Deprecated, use max_freq_mhz instead. */
|
|
||||||
int max_freq_mhz; /*!< Maximum CPU frequency, in MHz */
|
int max_freq_mhz; /*!< Maximum CPU frequency, in MHz */
|
||||||
rtc_cpu_freq_t min_cpu_freq __attribute__((deprecated)); /*!< Minimum CPU frequency to use when no frequency locks are taken. Deprecated, use min_freq_mhz instead. */
|
|
||||||
int min_freq_mhz; /*!< Minimum CPU frequency to use when no locks are taken, in MHz */
|
int min_freq_mhz; /*!< Minimum CPU frequency to use when no locks are taken, in MHz */
|
||||||
bool light_sleep_enable; /*!< Enter light sleep when no locks are taken */
|
bool light_sleep_enable; /*!< Enter light sleep when no locks are taken */
|
||||||
} esp_pm_config_esp32_t;
|
} esp_pm_config_esp32_t;
|
||||||
|
@ -182,15 +182,6 @@ esp_err_t esp_pm_configure(const void* vconfig)
|
|||||||
int min_freq_mhz = config->min_freq_mhz;
|
int min_freq_mhz = config->min_freq_mhz;
|
||||||
int max_freq_mhz = config->max_freq_mhz;
|
int max_freq_mhz = config->max_freq_mhz;
|
||||||
|
|
||||||
if (min_freq_mhz == 0 && max_freq_mhz == 0) {
|
|
||||||
/* For compatibility, handle deprecated fields, min_cpu_freq and max_cpu_freq. */
|
|
||||||
#pragma GCC diagnostic push
|
|
||||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
|
||||||
min_freq_mhz = rtc_clk_cpu_freq_value(config->min_cpu_freq) / MHZ;
|
|
||||||
max_freq_mhz = rtc_clk_cpu_freq_value(config->max_cpu_freq) / MHZ;
|
|
||||||
#pragma GCC diagnostic pop
|
|
||||||
}
|
|
||||||
|
|
||||||
if (min_freq_mhz > max_freq_mhz) {
|
if (min_freq_mhz > max_freq_mhz) {
|
||||||
return ESP_ERR_INVALID_ARG;
|
return ESP_ERR_INVALID_ARG;
|
||||||
}
|
}
|
||||||
|
@ -61,8 +61,8 @@ TEST_CASE("Can switch frequency using esp_pm_configure", "[pm]")
|
|||||||
static void light_sleep_enable(void)
|
static void light_sleep_enable(void)
|
||||||
{
|
{
|
||||||
const esp_pm_config_esp32_t pm_config = {
|
const esp_pm_config_esp32_t pm_config = {
|
||||||
.max_cpu_freq = rtc_clk_cpu_freq_get(),
|
.max_freq_mhz = esp_clk_cpu_freq() / 1000000,
|
||||||
.min_cpu_freq = RTC_CPU_FREQ_XTAL,
|
.min_freq_mhz = esp_clk_xtal_freq() / MHZ,
|
||||||
.light_sleep_enable = true
|
.light_sleep_enable = true
|
||||||
};
|
};
|
||||||
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
|
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
|
||||||
@ -71,8 +71,8 @@ static void light_sleep_enable(void)
|
|||||||
static void light_sleep_disable(void)
|
static void light_sleep_disable(void)
|
||||||
{
|
{
|
||||||
const esp_pm_config_esp32_t pm_config = {
|
const esp_pm_config_esp32_t pm_config = {
|
||||||
.max_cpu_freq = rtc_clk_cpu_freq_get(),
|
.max_freq_mhz = esp_clk_cpu_freq() / 1000000,
|
||||||
.min_cpu_freq = rtc_clk_cpu_freq_get(),
|
.min_freq_mhz = esp_clk_cpu_freq() / 1000000,
|
||||||
};
|
};
|
||||||
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
|
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
|
||||||
}
|
}
|
||||||
|
@ -304,82 +304,6 @@ void rtc_clk_fast_freq_set(rtc_fast_freq_t fast_freq);
|
|||||||
*/
|
*/
|
||||||
rtc_fast_freq_t rtc_clk_fast_freq_get(void);
|
rtc_fast_freq_t rtc_clk_fast_freq_get(void);
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Switch CPU frequency
|
|
||||||
*
|
|
||||||
* @note This function is deprecated and will be removed.
|
|
||||||
* See rtc_clk_cpu_freq_config_set instead.
|
|
||||||
*
|
|
||||||
* If a PLL-derived frequency is requested (80, 160, 240 MHz), this function
|
|
||||||
* will enable the PLL. Otherwise, PLL will be disabled.
|
|
||||||
* Note: this function is not optimized for switching speed. It may take several
|
|
||||||
* hundred microseconds to perform frequency switch.
|
|
||||||
*
|
|
||||||
* @param cpu_freq new CPU frequency
|
|
||||||
*/
|
|
||||||
void rtc_clk_cpu_freq_set(rtc_cpu_freq_t cpu_freq) __attribute__((deprecated));
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Switch CPU frequency
|
|
||||||
*
|
|
||||||
* @note This function is deprecated and will be removed.
|
|
||||||
* See rtc_clk_cpu_freq_set_config_fast instead.
|
|
||||||
*
|
|
||||||
* This is a faster version of rtc_clk_cpu_freq_set, which can handle some of
|
|
||||||
* the frequency switch paths (XTAL -> PLL, PLL -> XTAL).
|
|
||||||
* When switching from PLL to XTAL, PLL is not disabled (unlike rtc_clk_cpu_freq_set).
|
|
||||||
* When switching back from XTAL to PLL, only the same PLL can be used.
|
|
||||||
* Therefore it is not possible to switch 240 -> XTAL -> (80 or 160) using this
|
|
||||||
* function.
|
|
||||||
*
|
|
||||||
* For unsupported cases, this function falls back to rtc_clk_cpu_freq_set.
|
|
||||||
*
|
|
||||||
* Unlike rtc_clk_cpu_freq_set, this function relies on static data, so it is
|
|
||||||
* less safe to use it e.g. from a panic handler (when memory might be corrupted).
|
|
||||||
*
|
|
||||||
* @param cpu_freq new CPU frequency
|
|
||||||
*/
|
|
||||||
void rtc_clk_cpu_freq_set_fast(rtc_cpu_freq_t cpu_freq) __attribute__((deprecated));
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Get the currently selected CPU frequency
|
|
||||||
*
|
|
||||||
* @note This function is deprecated and will be removed.
|
|
||||||
* See rtc_clk_cpu_freq_get_config instead.
|
|
||||||
*
|
|
||||||
* Although CPU can be clocked by APLL and RTC 8M sources, such support is not
|
|
||||||
* exposed through this library. As such, this function will not return
|
|
||||||
* meaningful values when these clock sources are configured (e.g. using direct
|
|
||||||
* access to clock selection registers). In debug builds, it will assert; in
|
|
||||||
* release builds, it will return RTC_CPU_FREQ_XTAL.
|
|
||||||
*
|
|
||||||
* @return CPU frequency (one of rtc_cpu_freq_t values)
|
|
||||||
*/
|
|
||||||
rtc_cpu_freq_t rtc_clk_cpu_freq_get(void) __attribute__((deprecated));
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Get corresponding frequency value for rtc_cpu_freq_t enum value
|
|
||||||
*
|
|
||||||
* @note This function is deprecated and will be removed.
|
|
||||||
* See rtc_clk_cpu_freq_get/set_config instead.
|
|
||||||
*
|
|
||||||
* @param cpu_freq CPU frequency, on of rtc_cpu_freq_t values
|
|
||||||
* @return CPU frequency, in HZ
|
|
||||||
*/
|
|
||||||
uint32_t rtc_clk_cpu_freq_value(rtc_cpu_freq_t cpu_freq) __attribute__((deprecated));
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Get rtc_cpu_freq_t enum value for given CPU frequency
|
|
||||||
*
|
|
||||||
* @note This function is deprecated and will be removed.
|
|
||||||
* See rtc_clk_cpu_freq_mhz_to_config instead.
|
|
||||||
*
|
|
||||||
* @param cpu_freq_mhz CPU frequency, one of 80, 160, 240, 2, and XTAL frequency
|
|
||||||
* @param[out] out_val output, rtc_cpu_freq_t value corresponding to the frequency
|
|
||||||
* @return true if the given frequency value matches one of enum values
|
|
||||||
*/
|
|
||||||
bool rtc_clk_cpu_freq_from_mhz(int cpu_freq_mhz, rtc_cpu_freq_t* out_val) __attribute__((deprecated));
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get CPU frequency config corresponding to a rtc_cpu_freq_t value
|
* @brief Get CPU frequency config corresponding to a rtc_cpu_freq_t value
|
||||||
* @param cpu_freq CPU frequency enumeration value
|
* @param cpu_freq CPU frequency enumeration value
|
||||||
|
@ -104,7 +104,6 @@ static void rtc_clk_cpu_freq_to_8m(void);
|
|||||||
static void rtc_clk_bbpll_disable(void);
|
static void rtc_clk_bbpll_disable(void);
|
||||||
static void rtc_clk_bbpll_enable(void);
|
static void rtc_clk_bbpll_enable(void);
|
||||||
static void rtc_clk_cpu_freq_to_pll_mhz(int cpu_freq_mhz);
|
static void rtc_clk_cpu_freq_to_pll_mhz(int cpu_freq_mhz);
|
||||||
static bool rtc_clk_cpu_freq_from_mhz_internal(int mhz, rtc_cpu_freq_t* out_val);
|
|
||||||
|
|
||||||
// Current PLL frequency, in MHZ (320 or 480). Zero if PLL is not enabled.
|
// Current PLL frequency, in MHZ (320 or 480). Zero if PLL is not enabled.
|
||||||
static int s_cur_pll_freq;
|
static int s_cur_pll_freq;
|
||||||
@ -501,21 +500,6 @@ static void rtc_clk_cpu_freq_to_pll_mhz(int cpu_freq_mhz)
|
|||||||
rtc_clk_wait_for_slow_cycle();
|
rtc_clk_wait_for_slow_cycle();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void rtc_clk_cpu_freq_set(rtc_cpu_freq_t cpu_freq)
|
|
||||||
{
|
|
||||||
rtc_cpu_freq_config_t config;
|
|
||||||
rtc_clk_cpu_freq_to_config(cpu_freq, &config);
|
|
||||||
rtc_clk_cpu_freq_set_config(&config);
|
|
||||||
}
|
|
||||||
|
|
||||||
void rtc_clk_cpu_freq_set_fast(rtc_cpu_freq_t cpu_freq)
|
|
||||||
{
|
|
||||||
rtc_cpu_freq_config_t config;
|
|
||||||
rtc_clk_cpu_freq_to_config(cpu_freq, &config);
|
|
||||||
rtc_clk_cpu_freq_set_config_fast(&config);
|
|
||||||
}
|
|
||||||
|
|
||||||
void rtc_clk_cpu_freq_set_xtal(void)
|
void rtc_clk_cpu_freq_set_xtal(void)
|
||||||
{
|
{
|
||||||
int freq_mhz = (int) rtc_clk_xtal_freq_get();
|
int freq_mhz = (int) rtc_clk_xtal_freq_get();
|
||||||
@ -525,57 +509,6 @@ void rtc_clk_cpu_freq_set_xtal(void)
|
|||||||
rtc_clk_bbpll_disable();
|
rtc_clk_bbpll_disable();
|
||||||
}
|
}
|
||||||
|
|
||||||
rtc_cpu_freq_t rtc_clk_cpu_freq_get(void)
|
|
||||||
{
|
|
||||||
rtc_cpu_freq_config_t config;
|
|
||||||
rtc_clk_cpu_freq_get_config(&config);
|
|
||||||
rtc_cpu_freq_t freq = RTC_CPU_FREQ_XTAL;
|
|
||||||
rtc_clk_cpu_freq_from_mhz_internal(config.freq_mhz, &freq);
|
|
||||||
return freq;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32_t rtc_clk_cpu_freq_value(rtc_cpu_freq_t cpu_freq)
|
|
||||||
{
|
|
||||||
switch (cpu_freq) {
|
|
||||||
case RTC_CPU_FREQ_XTAL:
|
|
||||||
return ((uint32_t) rtc_clk_xtal_freq_get()) * MHZ;
|
|
||||||
case RTC_CPU_FREQ_2M:
|
|
||||||
return 2 * MHZ;
|
|
||||||
case RTC_CPU_FREQ_80M:
|
|
||||||
return 80 * MHZ;
|
|
||||||
case RTC_CPU_FREQ_160M:
|
|
||||||
return 160 * MHZ;
|
|
||||||
case RTC_CPU_FREQ_240M:
|
|
||||||
return 240 * MHZ;
|
|
||||||
default:
|
|
||||||
SOC_LOGE(TAG, "invalid rtc_cpu_freq_t value");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool rtc_clk_cpu_freq_from_mhz_internal(int mhz, rtc_cpu_freq_t* out_val)
|
|
||||||
{
|
|
||||||
if (mhz == 240) {
|
|
||||||
*out_val = RTC_CPU_FREQ_240M;
|
|
||||||
} else if (mhz == 160) {
|
|
||||||
*out_val = RTC_CPU_FREQ_160M;
|
|
||||||
} else if (mhz == 80) {
|
|
||||||
*out_val = RTC_CPU_FREQ_80M;
|
|
||||||
} else if (mhz == (int) rtc_clk_xtal_freq_get()) {
|
|
||||||
*out_val = RTC_CPU_FREQ_XTAL;
|
|
||||||
} else if (mhz == 2) {
|
|
||||||
*out_val = RTC_CPU_FREQ_2M;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool rtc_clk_cpu_freq_from_mhz(int mhz, rtc_cpu_freq_t* out_val)
|
|
||||||
{
|
|
||||||
return rtc_clk_cpu_freq_from_mhz_internal(mhz, out_val);
|
|
||||||
}
|
|
||||||
|
|
||||||
void rtc_clk_cpu_freq_to_config(rtc_cpu_freq_t cpu_freq, rtc_cpu_freq_config_t* out_config)
|
void rtc_clk_cpu_freq_to_config(rtc_cpu_freq_t cpu_freq, rtc_cpu_freq_config_t* out_config)
|
||||||
{
|
{
|
||||||
uint32_t source_freq_mhz;
|
uint32_t source_freq_mhz;
|
||||||
|
Loading…
Reference in New Issue
Block a user