Removes deprecated ways of setting/getting CPU freq, light sleep freqs.
Deprecated since ESP-IDF V3.2
* Pass a pointer to this structure as an argument to esp_pm_configure function.
*/
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 */
- 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 */
bool light_sleep_enable; /*!< Enter light sleep when no locks are taken */
} esp_pm_config_esp32_t;
int min_freq_mhz = config->min_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) {
return ESP_ERR_INVALID_ARG;
}
static void light_sleep_enable(void)
{
const esp_pm_config_esp32_t pm_config = {
- .max_cpu_freq = rtc_clk_cpu_freq_get(),
- .min_cpu_freq = RTC_CPU_FREQ_XTAL,
+ .max_freq_mhz = esp_clk_cpu_freq() / 1000000,
+ .min_freq_mhz = esp_clk_xtal_freq() / MHZ,
.light_sleep_enable = true
};
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
static void light_sleep_disable(void)
{
const esp_pm_config_esp32_t pm_config = {
- .max_cpu_freq = rtc_clk_cpu_freq_get(),
- .min_cpu_freq = rtc_clk_cpu_freq_get(),
+ .max_freq_mhz = esp_clk_cpu_freq() / 1000000,
+ .min_freq_mhz = esp_clk_cpu_freq() / 1000000,
};
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
}
*/
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
* @param cpu_freq CPU frequency enumeration value
static void rtc_clk_bbpll_disable(void);
static void rtc_clk_bbpll_enable(void);
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.
static int s_cur_pll_freq;
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)
{
int freq_mhz = (int) rtc_clk_xtal_freq_get();
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)
{
uint32_t source_freq_mhz;