1 /* 2 * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #pragma once 8 9 #include <stdint.h> 10 #include "soc/clk_tree_defs.h" 11 #include "soc/soc_caps.h" 12 13 #ifdef __cplusplus 14 extern "C" { 15 #endif 16 17 /** 18 * @brief Get SOC_ROOT_CLK frequency 19 * 20 * @param cpu_clk_src One of the clock sources in soc_cpu_clk_src_t 21 * 22 * @return SOC ROOT clock frequency, in MHz. Returns 0 if input argument is invalid. 23 */ 24 uint32_t clk_hal_soc_root_get_freq_mhz(soc_cpu_clk_src_t cpu_clk_src); 25 26 /** 27 * @brief Get CPU_CLK frequency 28 * 29 * @return CPU clock frequency, in Hz. Returns 0 if internal clock configuration is invalid. 30 */ 31 uint32_t clk_hal_cpu_get_freq_hz(void); 32 33 /** 34 * @brief Get AHB_CLK frequency 35 * 36 * @return AHB clock frequency, in Hz. Returns 0 if internal clock configuration is invalid. 37 */ 38 uint32_t clk_hal_ahb_get_freq_hz(void); 39 40 /** 41 * @brief Get APB_CLK frequency 42 * 43 * @return APB clock frequency, in Hz. Returns 0 if internal clock configuration is invalid. 44 */ 45 uint32_t clk_hal_apb_get_freq_hz(void); 46 47 /** 48 * @brief Get LP_SLOW_CLK (i.e. RTC_SLOW_CLK) approximate frequency 49 * 50 * @return LP Slow clock frequency, in Hz. Returns 0 if LP_SLOW clock source is invalid. 51 */ 52 uint32_t clk_hal_lp_slow_get_freq_hz(void); 53 54 /** 55 * @brief Get XTAL_CLK frequency 56 * 57 * @return XTAL clock frequency, in MHz 58 */ 59 uint32_t clk_hal_xtal_get_freq_mhz(void); 60 61 #if SOC_CLK_APLL_SUPPORTED 62 /** 63 * @brief Get APLL_CLK frequency 64 * 65 * @return APLL clock frequency, in Hz 66 */ 67 uint32_t clk_hal_apll_get_freq_hz(void); 68 #endif //SOC_CLK_APLL_SUPPORTED 69 70 #ifdef __cplusplus 71 } 72 #endif 73