From 05a5410033d898fb3946efdd415a2ed9ba0f2fd5 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Sun, 29 Jul 2018 09:34:49 +0300 Subject: [PATCH] esp_clk.h: add esp_clk_xtal_freq This adds a user API for getting the XTAL frequency --- components/esp32/clk.c | 9 +++++++-- components/esp32/include/esp_clk.h | 11 +++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/components/esp32/clk.c b/components/esp32/clk.c index 4b1f0369c7..9b00977744 100644 --- a/components/esp32/clk.c +++ b/components/esp32/clk.c @@ -109,12 +109,17 @@ void esp_clk_init(void) int IRAM_ATTR esp_clk_cpu_freq(void) { - return g_ticks_per_us_pro * 1000000; + return g_ticks_per_us_pro * MHZ; } int IRAM_ATTR esp_clk_apb_freq(void) { - return MIN(g_ticks_per_us_pro, 80) * 1000000; + return MIN(g_ticks_per_us_pro, 80) * MHZ; +} + +int IRAM_ATTR esp_clk_xtal_freq(void) +{ + return rtc_clk_xtal_freq_get() * MHZ; } void IRAM_ATTR ets_update_cpu_frequency(uint32_t ticks_per_us) diff --git a/components/esp32/include/esp_clk.h b/components/esp32/include/esp_clk.h index 6526aa9272..1a91d26f91 100644 --- a/components/esp32/include/esp_clk.h +++ b/components/esp32/include/esp_clk.h @@ -62,6 +62,17 @@ int esp_clk_cpu_freq(void); */ int esp_clk_apb_freq(void); +/** + * @brief Return frequency of the main XTAL + * + * Frequency of the main XTAL can be either auto-detected or set at compile + * time (see CONFIG_ESP32_XTAL_FREQ_SEL sdkconfig option). In both cases, this + * function returns the actual value at run time. + * + * @return XTAL frequency, in Hz + */ +int esp_clk_xtal_freq(void); + /** * @brief Read value of RTC counter, converting it to microseconds