|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
/*
|
|
|
- * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
|
|
|
|
|
|
|
+ * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
|
|
|
*
|
|
*
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
*/
|
|
*/
|
|
@@ -11,38 +11,46 @@
|
|
|
extern "C" {
|
|
extern "C" {
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
-// TODO: IDF-6265 Copied from C6, need to update
|
|
|
|
|
/*
|
|
/*
|
|
|
************************* ESP32H2 Root Clock Source ****************************
|
|
************************* ESP32H2 Root Clock Source ****************************
|
|
|
- * 1) Internal 17.5MHz RC Oscillator: RC_FAST (usually referred as FOSC or CK8M/CLK8M in TRM and reg. description)
|
|
|
|
|
|
|
+ * 1) Internal 8MHz RC Oscillator: RC_FAST (usually referred as FOSC in TRM and reg. description)
|
|
|
*
|
|
*
|
|
|
- * This RC oscillator generates a ~17.5MHz clock signal output as the RC_FAST_CLK.
|
|
|
|
|
- * The ~17.5MHz signal output is also passed into a configurable divider, which by default divides the input clock
|
|
|
|
|
- * frequency by 256, to generate a RC_FAST_D256_CLK (usually referred as 8md256 or simply d256 in reg. description).
|
|
|
|
|
|
|
+ * This RC oscillator generates a ~8.5MHz clock signal output as the RC_FAST_CLK.
|
|
|
*
|
|
*
|
|
|
- * The exact frequency of RC_FAST_CLK can be computed in runtime through calibration on the RC_FAST_D256_CLK.
|
|
|
|
|
|
|
+ * The exact frequency of RC_FAST_CLK can be computed in runtime through calibration.
|
|
|
*
|
|
*
|
|
|
- * 2) External 40MHz Crystal Clock: XTAL
|
|
|
|
|
|
|
+ * 2) External 32MHz Crystal Clock: XTAL
|
|
|
*
|
|
*
|
|
|
- * 3) Internal 136kHz RC Oscillator: RC_SLOW (usually referrred as RTC in TRM or reg. description)
|
|
|
|
|
|
|
+ * 3) Internal 136kHz RC Oscillator: RC_SLOW (usually referrred as SOSC in TRM or reg. description)
|
|
|
*
|
|
*
|
|
|
* This RC oscillator generates a ~136kHz clock signal output as the RC_SLOW_CLK. The exact frequency of this clock
|
|
* This RC oscillator generates a ~136kHz clock signal output as the RC_SLOW_CLK. The exact frequency of this clock
|
|
|
* can be computed in runtime through calibration.
|
|
* can be computed in runtime through calibration.
|
|
|
*
|
|
*
|
|
|
- * 4) External 32kHz Crystal Clock (optional): XTAL32K
|
|
|
|
|
|
|
+ * 4) Internal 32kHz RC Oscillator: RC32K
|
|
|
*
|
|
*
|
|
|
- * The clock source for this XTAL32K_CLK can be either a 32kHz crystal connecting to the XTAL_32K_P and XTAL_32K_N
|
|
|
|
|
- * pins or a 32kHz clock signal generated by an external circuit. The external signal must be connected to the
|
|
|
|
|
- * XTAL_32K_P pin.
|
|
|
|
|
|
|
+ * The exact frequency of this clock can be computed in runtime through calibration.
|
|
|
|
|
+ *
|
|
|
|
|
+ * 5) External 32kHz Crystal Clock (optional): XTAL32K
|
|
|
|
|
+ *
|
|
|
|
|
+ * The clock source for this XTAL32K_CLK should be a 32kHz crystal connecting to the XTAL_32K_P and XTAL_32K_N
|
|
|
|
|
+ * pins.
|
|
|
*
|
|
*
|
|
|
* XTAL32K_CLK can also be calibrated to get its exact frequency.
|
|
* XTAL32K_CLK can also be calibrated to get its exact frequency.
|
|
|
|
|
+ *
|
|
|
|
|
+ * 6) External Slow Clock (optional): OSC_SLOW
|
|
|
|
|
+ *
|
|
|
|
|
+ * A slow clock signal generated by an external circuit can be connected to GPIO13 to be the clock source for the
|
|
|
|
|
+ * RTC_SLOW_CLK.
|
|
|
|
|
+ *
|
|
|
|
|
+ * OSC_SLOW_CLK can also be calibrated to get its exact frequency.
|
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
-/* With the default value of CK8M_DFREQ = 100, RC_FAST clock frequency is 17.5 MHz +/- 7% */
|
|
|
|
|
-#define SOC_CLK_RC_FAST_FREQ_APPROX 17500000 /*!< Approximate RC_FAST_CLK frequency in Hz */
|
|
|
|
|
|
|
+/* With the default value of CK8M_DFREQ = 600, RC_FAST clock frequency is 7 MHz +/- 7% */
|
|
|
|
|
+#define SOC_CLK_RC_FAST_FREQ_APPROX 7000000 /*!< Approximate RC_FAST_CLK frequency in Hz */
|
|
|
#define SOC_CLK_RC_SLOW_FREQ_APPROX 136000 /*!< Approximate RC_SLOW_CLK frequency in Hz */
|
|
#define SOC_CLK_RC_SLOW_FREQ_APPROX 136000 /*!< Approximate RC_SLOW_CLK frequency in Hz */
|
|
|
-#define SOC_CLK_RC_FAST_D256_FREQ_APPROX (SOC_CLK_RC_FAST_FREQ_APPROX / 256) /*!< Approximate RC_FAST_D256_CLK frequency in Hz */
|
|
|
|
|
|
|
+#define SOC_CLK_RC32K_FREQ_APPROX 32768 /*!< Approximate RC32K_CLK frequency in Hz */
|
|
|
#define SOC_CLK_XTAL32K_FREQ_APPROX 32768 /*!< Approximate XTAL32K_CLK frequency in Hz */
|
|
#define SOC_CLK_XTAL32K_FREQ_APPROX 32768 /*!< Approximate XTAL32K_CLK frequency in Hz */
|
|
|
|
|
+#define SOC_CLK_OSC_SLOW_FREQ_APPROX 32768 /*!< Approximate OSC_SLOW_CLK (external slow clock) frequency in Hz */
|
|
|
|
|
|
|
|
// Naming convention: SOC_ROOT_CLK_{loc}_{type}_[attr]
|
|
// Naming convention: SOC_ROOT_CLK_{loc}_{type}_[attr]
|
|
|
// {loc}: EXT, INT
|
|
// {loc}: EXT, INT
|
|
@@ -52,10 +60,12 @@ extern "C" {
|
|
|
* @brief Root clock
|
|
* @brief Root clock
|
|
|
*/
|
|
*/
|
|
|
typedef enum {
|
|
typedef enum {
|
|
|
- SOC_ROOT_CLK_INT_RC_FAST, /*!< Internal 17.5MHz RC oscillator */
|
|
|
|
|
|
|
+ SOC_ROOT_CLK_INT_RC_FAST, /*!< Internal 8.5MHz RC oscillator */
|
|
|
SOC_ROOT_CLK_INT_RC_SLOW, /*!< Internal 136kHz RC oscillator */
|
|
SOC_ROOT_CLK_INT_RC_SLOW, /*!< Internal 136kHz RC oscillator */
|
|
|
- SOC_ROOT_CLK_EXT_XTAL, /*!< External 40MHz crystal */
|
|
|
|
|
|
|
+ SOC_ROOT_CLK_EXT_XTAL, /*!< External 32MHz crystal */
|
|
|
SOC_ROOT_CLK_EXT_XTAL32K, /*!< External 32kHz crystal/clock signal */
|
|
SOC_ROOT_CLK_EXT_XTAL32K, /*!< External 32kHz crystal/clock signal */
|
|
|
|
|
+ SOC_ROOT_CLK_INT_RC32K, /*!< Internal 32kHz RC oscillator */
|
|
|
|
|
+ SOC_ROOT_CLK_EXT_OSC_SLOW, /*!< External slow clock signal at pin13 */
|
|
|
} soc_root_clk_t;
|
|
} soc_root_clk_t;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -64,8 +74,9 @@ typedef enum {
|
|
|
*/
|
|
*/
|
|
|
typedef enum {
|
|
typedef enum {
|
|
|
SOC_CPU_CLK_SRC_XTAL = 0, /*!< Select XTAL_CLK as CPU_CLK source */
|
|
SOC_CPU_CLK_SRC_XTAL = 0, /*!< Select XTAL_CLK as CPU_CLK source */
|
|
|
- SOC_CPU_CLK_SRC_PLL = 1, /*!< Select PLL_CLK as CPU_CLK source (PLL_CLK is the output of 40MHz crystal oscillator frequency multiplier, can be 480MHz or 320MHz) */
|
|
|
|
|
|
|
+ SOC_CPU_CLK_SRC_PLL = 1, /*!< Select PLL_CLK as CPU_CLK source (PLL_CLK is the output of 32MHz crystal oscillator frequency multiplier, 96MHz) */
|
|
|
SOC_CPU_CLK_SRC_RC_FAST = 2, /*!< Select RC_FAST_CLK as CPU_CLK source */
|
|
SOC_CPU_CLK_SRC_RC_FAST = 2, /*!< Select RC_FAST_CLK as CPU_CLK source */
|
|
|
|
|
+ SOC_CPU_CLK_SRC_PLL2 = 3, /*!< Select PLL2_CLK as CPU_CLK source (PLL2_CLK is the output of 32MHz crystal oscillator frequency multiplier, 64MHz) */
|
|
|
SOC_CPU_CLK_SRC_INVALID, /*!< Invalid CPU_CLK source */
|
|
SOC_CPU_CLK_SRC_INVALID, /*!< Invalid CPU_CLK source */
|
|
|
} soc_cpu_clk_src_t;
|
|
} soc_cpu_clk_src_t;
|
|
|
|
|
|
|
@@ -76,7 +87,8 @@ typedef enum {
|
|
|
typedef enum {
|
|
typedef enum {
|
|
|
SOC_RTC_SLOW_CLK_SRC_RC_SLOW = 0, /*!< Select RC_SLOW_CLK as RTC_SLOW_CLK source */
|
|
SOC_RTC_SLOW_CLK_SRC_RC_SLOW = 0, /*!< Select RC_SLOW_CLK as RTC_SLOW_CLK source */
|
|
|
SOC_RTC_SLOW_CLK_SRC_XTAL32K = 1, /*!< Select XTAL32K_CLK as RTC_SLOW_CLK source */
|
|
SOC_RTC_SLOW_CLK_SRC_XTAL32K = 1, /*!< Select XTAL32K_CLK as RTC_SLOW_CLK source */
|
|
|
- SOC_RTC_SLOW_CLK_SRC_RC_FAST_D256 = 2, /*!< Select RC_FAST_D256_CLK (referred as FOSC_DIV or 8m_d256/8md256 in TRM and reg. description) as RTC_SLOW_CLK source */
|
|
|
|
|
|
|
+ SOC_RTC_SLOW_CLK_SRC_OSC_SLOW = 2, /*!< Select OSC_SLOW_CLK (external slow clock) as RTC_SLOW_CLK source */
|
|
|
|
|
+ SOC_RTC_SLOW_CLK_SRC_RC32K = 3, /*!< Select RC32K_CLK as RTC_SLOW_CLK source */
|
|
|
SOC_RTC_SLOW_CLK_SRC_INVALID, /*!< Invalid RTC_SLOW_CLK source */
|
|
SOC_RTC_SLOW_CLK_SRC_INVALID, /*!< Invalid RTC_SLOW_CLK source */
|
|
|
} soc_rtc_slow_clk_src_t;
|
|
} soc_rtc_slow_clk_src_t;
|
|
|
|
|
|
|
@@ -85,14 +97,14 @@ typedef enum {
|
|
|
* @note Enum values are matched with the register field values on purpose
|
|
* @note Enum values are matched with the register field values on purpose
|
|
|
*/
|
|
*/
|
|
|
typedef enum {
|
|
typedef enum {
|
|
|
- SOC_RTC_FAST_CLK_SRC_XTAL_D2 = 0, /*!< Select XTAL_D2_CLK (may referred as XTAL_CLK_DIV_2) as RTC_FAST_CLK source */
|
|
|
|
|
|
|
+ SOC_RTC_FAST_CLK_SRC_RC_FAST = 0, /*!< Select RC_FAST_CLK as RTC_FAST_CLK source */
|
|
|
|
|
+ SOC_RTC_FAST_CLK_SRC_XTAL_D2 = 1, /*!< Select XTAL_D2_CLK (may referred as XTAL_CLK_DIV_2) as RTC_FAST_CLK source */
|
|
|
SOC_RTC_FAST_CLK_SRC_XTAL_DIV = SOC_RTC_FAST_CLK_SRC_XTAL_D2, /*!< Alias name for `SOC_RTC_FAST_CLK_SRC_XTAL_D2` */
|
|
SOC_RTC_FAST_CLK_SRC_XTAL_DIV = SOC_RTC_FAST_CLK_SRC_XTAL_D2, /*!< Alias name for `SOC_RTC_FAST_CLK_SRC_XTAL_D2` */
|
|
|
- SOC_RTC_FAST_CLK_SRC_RC_FAST = 1, /*!< Select RC_FAST_CLK as RTC_FAST_CLK source */
|
|
|
|
|
SOC_RTC_FAST_CLK_SRC_INVALID, /*!< Invalid RTC_FAST_CLK source */
|
|
SOC_RTC_FAST_CLK_SRC_INVALID, /*!< Invalid RTC_FAST_CLK source */
|
|
|
} soc_rtc_fast_clk_src_t;
|
|
} soc_rtc_fast_clk_src_t;
|
|
|
|
|
|
|
|
// Naming convention: SOC_MOD_CLK_{[upstream]clock_name}_[attr]
|
|
// Naming convention: SOC_MOD_CLK_{[upstream]clock_name}_[attr]
|
|
|
-// {[upstream]clock_name}: APB, (BB)PLL, etc.
|
|
|
|
|
|
|
+// {[upstream]clock_name}: XTAL, (BB)PLL, etc.
|
|
|
// [attr] - optional: FAST, SLOW, D<divider>, F<freq>
|
|
// [attr] - optional: FAST, SLOW, D<divider>, F<freq>
|
|
|
/**
|
|
/**
|
|
|
* @brief Supported clock sources for modules (CPU, peripherals, RTC, etc.)
|
|
* @brief Supported clock sources for modules (CPU, peripherals, RTC, etc.)
|
|
@@ -101,18 +113,16 @@ typedef enum {
|
|
|
*/
|
|
*/
|
|
|
typedef enum {
|
|
typedef enum {
|
|
|
// For CPU domain
|
|
// For CPU domain
|
|
|
- SOC_MOD_CLK_CPU = 1, /*!< CPU_CLK can be sourced from XTAL, PLL, or RC_FAST by configuring soc_cpu_clk_src_t */
|
|
|
|
|
|
|
+ SOC_MOD_CLK_CPU = 1, /*!< CPU_CLK can be sourced from XTAL, PLL, RC_FAST, or PLL2 by configuring soc_cpu_clk_src_t */
|
|
|
// For RTC domain
|
|
// For RTC domain
|
|
|
SOC_MOD_CLK_RTC_FAST, /*!< RTC_FAST_CLK can be sourced from XTAL_D2 or RC_FAST by configuring soc_rtc_fast_clk_src_t */
|
|
SOC_MOD_CLK_RTC_FAST, /*!< RTC_FAST_CLK can be sourced from XTAL_D2 or RC_FAST by configuring soc_rtc_fast_clk_src_t */
|
|
|
- SOC_MOD_CLK_RTC_SLOW, /*!< RTC_SLOW_CLK can be sourced from RC_SLOW, XTAL32K, or RC_FAST_D256 by configuring soc_rtc_slow_clk_src_t */
|
|
|
|
|
|
|
+ SOC_MOD_CLK_RTC_SLOW, /*!< RTC_SLOW_CLK can be sourced from RC_SLOW, XTAL32K, OSC_SLOW, or RC32K by configuring soc_rtc_slow_clk_src_t */
|
|
|
// For digital domain: peripherals, WIFI, BLE
|
|
// For digital domain: peripherals, WIFI, BLE
|
|
|
- SOC_MOD_CLK_APB, /*!< APB_CLK is highly dependent on the CPU_CLK source */
|
|
|
|
|
- SOC_MOD_CLK_PLL_F80M, /*!< PLL_F80M_CLK is derived from PLL, and has a fixed frequency of 80MHz */
|
|
|
|
|
- SOC_MOD_CLK_PLL_F160M, /*!< PLL_F160M_CLK is derived from PLL, and has a fixed frequency of 160MHz */
|
|
|
|
|
- SOC_MOD_CLK_PLL_D2, /*!< PLL_D2_CLK is derived from PLL, it has a fixed divider of 2 */
|
|
|
|
|
|
|
+ SOC_MOD_CLK_PLL_F48M, /*!< PLL_F48M_CLK is derived from PLL (w/ CG), and has a fixed frequency of 48MHz */
|
|
|
|
|
+ SOC_MOD_CLK_PLL_F64M, /*!< PLL_F64M_CLK is derived from PLL2 (w/ CG), and has a fixed frequency of 64MHz */
|
|
|
|
|
+ SOC_MOD_CLK_PLL_F96M, /*!< PLL_F96M_CLK is derived from PLL (w/ CG), and has a fixed frequency of 96MHz */
|
|
|
SOC_MOD_CLK_XTAL32K, /*!< XTAL32K_CLK comes from the external 32kHz crystal, passing a clock gating to the peripherals */
|
|
SOC_MOD_CLK_XTAL32K, /*!< XTAL32K_CLK comes from the external 32kHz crystal, passing a clock gating to the peripherals */
|
|
|
- SOC_MOD_CLK_RC_FAST, /*!< RC_FAST_CLK comes from the internal 20MHz rc oscillator, passing a clock gating to the peripherals */
|
|
|
|
|
- SOC_MOD_CLK_RC_FAST_D256, /*!< RC_FAST_D256_CLK comes from the internal 20MHz rc oscillator, divided by 256, and passing a clock gating to the peripherals */
|
|
|
|
|
|
|
+ SOC_MOD_CLK_RC_FAST, /*!< RC_FAST_CLK comes from the internal 8MHz rc oscillator, passing a clock gating to the peripherals */
|
|
|
SOC_MOD_CLK_XTAL, /*!< XTAL_CLK comes from the external 40MHz crystal */
|
|
SOC_MOD_CLK_XTAL, /*!< XTAL_CLK comes from the external 40MHz crystal */
|
|
|
} soc_module_clk_t;
|
|
} soc_module_clk_t;
|
|
|
|
|
|
|
@@ -144,19 +154,20 @@ typedef enum {
|
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
|
#define SOC_GPTIMER_CLKS {SOC_MOD_CLK_XTAL}
|
|
#define SOC_GPTIMER_CLKS {SOC_MOD_CLK_XTAL}
|
|
|
#else
|
|
#else
|
|
|
-#define SOC_GPTIMER_CLKS {SOC_MOD_CLK_APB, SOC_MOD_CLK_XTAL}
|
|
|
|
|
|
|
+#define SOC_GPTIMER_CLKS {SOC_MOD_CLK_PLL_F48M, SOC_MOD_CLK_RC_FAST, SOC_MOD_CLK_XTAL}
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @brief Type of GPTimer clock source
|
|
* @brief Type of GPTimer clock source
|
|
|
*/
|
|
*/
|
|
|
typedef enum {
|
|
typedef enum {
|
|
|
- GPTIMER_CLK_SRC_APB = SOC_MOD_CLK_APB, /*!< Select APB as the source clock */
|
|
|
|
|
- GPTIMER_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the source clock */
|
|
|
|
|
|
|
+ GPTIMER_CLK_SRC_PLL_F48M = SOC_MOD_CLK_PLL_F48M, /*!< Select PLL_F48M as the source clock */
|
|
|
|
|
+ GPTIMER_CLK_SRC_RC_FAST = SOC_MOD_CLK_RC_FAST, /*!< Select RC_FAST as the source clock */
|
|
|
|
|
+ GPTIMER_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the source clock */
|
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
|
- GPTIMER_CLK_SRC_DEFAULT = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the default choice */
|
|
|
|
|
|
|
+ GPTIMER_CLK_SRC_DEFAULT = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the default choice */
|
|
|
#else
|
|
#else
|
|
|
- GPTIMER_CLK_SRC_DEFAULT = SOC_MOD_CLK_APB, /*!< Select APB as the default choice */
|
|
|
|
|
|
|
+ GPTIMER_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_F48M, /*!< Select PLL_F48M as the default choice */
|
|
|
#endif
|
|
#endif
|
|
|
} soc_periph_gptimer_clk_src_t;
|
|
} soc_periph_gptimer_clk_src_t;
|
|
|
|
|
|
|
@@ -164,9 +175,9 @@ typedef enum {
|
|
|
* @brief Type of Timer Group clock source, reserved for the legacy timer group driver
|
|
* @brief Type of Timer Group clock source, reserved for the legacy timer group driver
|
|
|
*/
|
|
*/
|
|
|
typedef enum {
|
|
typedef enum {
|
|
|
- TIMER_SRC_CLK_APB = SOC_MOD_CLK_APB, /*!< Timer group clock source is APB */
|
|
|
|
|
- TIMER_SRC_CLK_XTAL = SOC_MOD_CLK_XTAL, /*!< Timer group clock source is XTAL */
|
|
|
|
|
- TIMER_SRC_CLK_DEFAULT = SOC_MOD_CLK_APB, /*!< Timer group clock source default choice is APB */
|
|
|
|
|
|
|
+ TIMER_SRC_CLK_PLL_F48M = SOC_MOD_CLK_PLL_F48M, /*!< Timer group clock source is PLL_F48M */
|
|
|
|
|
+ TIMER_SRC_CLK_XTAL = SOC_MOD_CLK_XTAL, /*!< Timer group clock source is XTAL */
|
|
|
|
|
+ TIMER_SRC_CLK_DEFAULT = SOC_MOD_CLK_PLL_F48M, /*!< Timer group clock source default choice is PLL_F48M */
|
|
|
} soc_periph_tg_clk_src_legacy_t;
|
|
} soc_periph_tg_clk_src_legacy_t;
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////RMT///////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////RMT///////////////////////////////////////////////////////////////////
|
|
@@ -177,29 +188,24 @@ typedef enum {
|
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
|
#define SOC_RMT_CLKS {SOC_MOD_CLK_XTAL}
|
|
#define SOC_RMT_CLKS {SOC_MOD_CLK_XTAL}
|
|
|
#else
|
|
#else
|
|
|
-#define SOC_RMT_CLKS {SOC_MOD_CLK_APB, SOC_MOD_CLK_XTAL}
|
|
|
|
|
|
|
+#define SOC_RMT_CLKS {SOC_MOD_CLK_RC_FAST, SOC_MOD_CLK_XTAL}
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @brief Type of RMT clock source
|
|
* @brief Type of RMT clock source
|
|
|
*/
|
|
*/
|
|
|
typedef enum {
|
|
typedef enum {
|
|
|
- RMT_CLK_SRC_APB = SOC_MOD_CLK_APB, /*!< Select APB as the source clock */
|
|
|
|
|
|
|
+ RMT_CLK_SRC_RC_FAST = SOC_MOD_CLK_RC_FAST, /*!< Select RC_FAST as the source clock */
|
|
|
RMT_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the source clock */
|
|
RMT_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the source clock */
|
|
|
-#if CONFIG_IDF_ENV_FPGA
|
|
|
|
|
RMT_CLK_SRC_DEFAULT = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the default choice */
|
|
RMT_CLK_SRC_DEFAULT = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the default choice */
|
|
|
-#else
|
|
|
|
|
- RMT_CLK_SRC_DEFAULT = SOC_MOD_CLK_APB, /*!< Select APB as the default choice */
|
|
|
|
|
-#endif
|
|
|
|
|
} soc_periph_rmt_clk_src_t;
|
|
} soc_periph_rmt_clk_src_t;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @brief Type of RMT clock source, reserved for the legacy RMT driver
|
|
* @brief Type of RMT clock source, reserved for the legacy RMT driver
|
|
|
*/
|
|
*/
|
|
|
typedef enum {
|
|
typedef enum {
|
|
|
- RMT_BASECLK_APB = SOC_MOD_CLK_APB, /*!< RMT source clock is APB */
|
|
|
|
|
- RMT_BASECLK_XTAL = SOC_MOD_CLK_XTAL, /*!< RMT source clock is XTAL */
|
|
|
|
|
- RMT_BASECLK_DEFAULT = SOC_MOD_CLK_APB, /*!< RMT source clock default choice is APB */
|
|
|
|
|
|
|
+ RMT_BASECLK_XTAL = SOC_MOD_CLK_XTAL, /*!< RMT source clock is XTAL */
|
|
|
|
|
+ RMT_BASECLK_DEFAULT = SOC_MOD_CLK_XTAL, /*!< RMT source clock default choice is XTAL */
|
|
|
} soc_periph_rmt_clk_src_legacy_t;
|
|
} soc_periph_rmt_clk_src_legacy_t;
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////Temp Sensor///////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////Temp Sensor///////////////////////////////////////////////////////////
|
|
@@ -224,10 +230,10 @@ typedef enum {
|
|
|
* @brief Type of UART clock source, reserved for the legacy UART driver
|
|
* @brief Type of UART clock source, reserved for the legacy UART driver
|
|
|
*/
|
|
*/
|
|
|
typedef enum {
|
|
typedef enum {
|
|
|
- UART_SCLK_APB = SOC_MOD_CLK_APB, /*!< UART source clock is APB CLK */
|
|
|
|
|
- UART_SCLK_RTC = SOC_MOD_CLK_RC_FAST, /*!< UART source clock is RC_FAST */
|
|
|
|
|
- UART_SCLK_XTAL = SOC_MOD_CLK_XTAL, /*!< UART source clock is XTAL */
|
|
|
|
|
- UART_SCLK_DEFAULT = SOC_MOD_CLK_APB, /*!< UART source clock default choice is APB */
|
|
|
|
|
|
|
+ UART_SCLK_PLL_F48M = SOC_MOD_CLK_PLL_F48M, /*!< UART source clock is PLL_F48M */
|
|
|
|
|
+ UART_SCLK_RTC = SOC_MOD_CLK_RC_FAST, /*!< UART source clock is RC_FAST */
|
|
|
|
|
+ UART_SCLK_XTAL = SOC_MOD_CLK_XTAL, /*!< UART source clock is XTAL */
|
|
|
|
|
+ UART_SCLK_DEFAULT = SOC_MOD_CLK_PLL_F48M, /*!< UART source clock default choice is PLL_F48M */
|
|
|
} soc_periph_uart_clk_src_legacy_t;
|
|
} soc_periph_uart_clk_src_legacy_t;
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////MCPWM/////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////MCPWM/////////////////////////////////////////////////////////////////
|
|
@@ -235,36 +241,36 @@ typedef enum {
|
|
|
/**
|
|
/**
|
|
|
* @brief Array initializer for all supported clock sources of MCPWM Timer
|
|
* @brief Array initializer for all supported clock sources of MCPWM Timer
|
|
|
*/
|
|
*/
|
|
|
-#define SOC_MCPWM_TIMER_CLKS {SOC_MOD_CLK_PLL_F160M, SOC_MOD_CLK_XTAL}
|
|
|
|
|
|
|
+#define SOC_MCPWM_TIMER_CLKS {SOC_MOD_CLK_PLL_F96M, SOC_MOD_CLK_XTAL}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @brief Type of MCPWM timer clock source
|
|
* @brief Type of MCPWM timer clock source
|
|
|
*/
|
|
*/
|
|
|
typedef enum {
|
|
typedef enum {
|
|
|
- MCPWM_TIMER_CLK_SRC_PLL160M = SOC_MOD_CLK_PLL_F160M, /*!< Select PLL_F160M as the source clock */
|
|
|
|
|
|
|
+ MCPWM_TIMER_CLK_SRC_PLL96M = SOC_MOD_CLK_PLL_F96M, /*!< Select PLL_F96M as the source clock */
|
|
|
MCPWM_TIMER_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the source clock */
|
|
MCPWM_TIMER_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the source clock */
|
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
|
MCPWM_TIMER_CLK_SRC_DEFAULT = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the default clock choice */
|
|
MCPWM_TIMER_CLK_SRC_DEFAULT = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the default clock choice */
|
|
|
#else
|
|
#else
|
|
|
- MCPWM_TIMER_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_F160M, /*!< Select PLL_F160M as the default clock choice */
|
|
|
|
|
|
|
+ MCPWM_TIMER_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_F96M, /*!< Select PLL_F96M as the default clock choice */
|
|
|
#endif
|
|
#endif
|
|
|
} soc_periph_mcpwm_timer_clk_src_t;
|
|
} soc_periph_mcpwm_timer_clk_src_t;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @brief Array initializer for all supported clock sources of MCPWM Capture Timer
|
|
* @brief Array initializer for all supported clock sources of MCPWM Capture Timer
|
|
|
*/
|
|
*/
|
|
|
-#define SOC_MCPWM_CAPTURE_CLKS {SOC_MOD_CLK_PLL_F160M, SOC_MOD_CLK_XTAL}
|
|
|
|
|
|
|
+#define SOC_MCPWM_CAPTURE_CLKS {SOC_MOD_CLK_PLL_F96M, SOC_MOD_CLK_XTAL}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @brief Type of MCPWM capture clock source
|
|
* @brief Type of MCPWM capture clock source
|
|
|
*/
|
|
*/
|
|
|
typedef enum {
|
|
typedef enum {
|
|
|
- MCPWM_CAPTURE_CLK_SRC_PLL160M = SOC_MOD_CLK_PLL_F160M, /*!< Select PLL_F160M as the source clock */
|
|
|
|
|
|
|
+ MCPWM_CAPTURE_CLK_SRC_PLL96M = SOC_MOD_CLK_PLL_F96M, /*!< Select PLL_F96M as the source clock */
|
|
|
MCPWM_CAPTURE_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the source clock */
|
|
MCPWM_CAPTURE_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the source clock */
|
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
|
MCPWM_CAPTURE_CLK_SRC_DEFAULT = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the default clock choice */
|
|
MCPWM_CAPTURE_CLK_SRC_DEFAULT = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the default clock choice */
|
|
|
#else
|
|
#else
|
|
|
- MCPWM_CAPTURE_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_F160M, /*!< Select PLL_F160M as the default clock choice */
|
|
|
|
|
|
|
+ MCPWM_CAPTURE_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_F96M, /*!< Select PLL_F96M as the default clock choice */
|
|
|
#endif
|
|
#endif
|
|
|
} soc_periph_mcpwm_capture_clk_src_t;
|
|
} soc_periph_mcpwm_capture_clk_src_t;
|
|
|
|
|
|
|
@@ -276,7 +282,7 @@ typedef enum {
|
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
|
#define SOC_I2S_CLKS {SOC_MOD_CLK_XTAL}
|
|
#define SOC_I2S_CLKS {SOC_MOD_CLK_XTAL}
|
|
|
#else
|
|
#else
|
|
|
-#define SOC_I2S_CLKS {SOC_MOD_CLK_PLL_F160M, SOC_MOD_CLK_XTAL}
|
|
|
|
|
|
|
+#define SOC_I2S_CLKS {SOC_MOD_CLK_PLL_F96M, SOC_MOD_CLK_PLL_F64M, SOC_MOD_CLK_XTAL}
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -286,9 +292,10 @@ typedef enum {
|
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
|
I2S_CLK_SRC_DEFAULT = SOC_MOD_CLK_XTAL,
|
|
I2S_CLK_SRC_DEFAULT = SOC_MOD_CLK_XTAL,
|
|
|
#else
|
|
#else
|
|
|
- I2S_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_F160M, /*!< Select PLL_F160M as the default source clock */
|
|
|
|
|
|
|
+ I2S_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_F96M, /*!< Select PLL_F96M as the default source clock */
|
|
|
#endif
|
|
#endif
|
|
|
- I2S_CLK_SRC_PLL_160M = SOC_MOD_CLK_PLL_F160M, /*!< Select PLL_F160M as the source clock */
|
|
|
|
|
|
|
+ I2S_CLK_SRC_PLL_96M = SOC_MOD_CLK_PLL_F96M, /*!< Select PLL_F96M as the source clock */
|
|
|
|
|
+ I2S_CLK_SRC_PLL_64M = SOC_MOD_CLK_PLL_F64M, /*!< Select PLL_F64M as the source clock */
|
|
|
I2S_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the source clock */
|
|
I2S_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the source clock */
|
|
|
} soc_periph_i2s_clk_src_t;
|
|
} soc_periph_i2s_clk_src_t;
|
|
|
|
|
|
|
@@ -313,14 +320,15 @@ typedef enum {
|
|
|
/**
|
|
/**
|
|
|
* @brief Array initializer for all supported clock sources of SDM
|
|
* @brief Array initializer for all supported clock sources of SDM
|
|
|
*/
|
|
*/
|
|
|
-#define SOC_SDM_CLKS {SOC_MOD_CLK_APB}
|
|
|
|
|
|
|
+#define SOC_SDM_CLKS {SOC_MOD_CLK_PLL_F48M, SOC_MOD_CLK_XTAL}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @brief Sigma Delta Modulator clock source
|
|
* @brief Sigma Delta Modulator clock source
|
|
|
*/
|
|
*/
|
|
|
typedef enum {
|
|
typedef enum {
|
|
|
- SDM_CLK_SRC_APB = SOC_MOD_CLK_APB, /*!< Select APB as the source clock */
|
|
|
|
|
- SDM_CLK_SRC_DEFAULT = SOC_MOD_CLK_APB, /*!< Select APB as the default clock choice */
|
|
|
|
|
|
|
+ SDM_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL clock as the source clock */
|
|
|
|
|
+ SDM_CLK_SRC_PLL_F48M = SOC_MOD_CLK_PLL_F48M, /*!< Select PLL_F48M clock as the source clock */
|
|
|
|
|
+ SDM_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_F48M, /*!< Select PLL_F48M clock as the default clock choice */
|
|
|
} soc_periph_sdm_clk_src_t;
|
|
} soc_periph_sdm_clk_src_t;
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////GPIO Glitch Filter////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////GPIO Glitch Filter////////////////////////////////////////////////////
|
|
@@ -328,7 +336,7 @@ typedef enum {
|
|
|
/**
|
|
/**
|
|
|
* @brief Array initializer for all supported clock sources of Glitch Filter
|
|
* @brief Array initializer for all supported clock sources of Glitch Filter
|
|
|
*/
|
|
*/
|
|
|
-#define SOC_GLITCH_FILTER_CLKS {SOC_MOD_CLK_PLL_F80M, SOC_MOD_CLK_XTAL}
|
|
|
|
|
|
|
+#define SOC_GLITCH_FILTER_CLKS {SOC_MOD_CLK_PLL_F48M, SOC_MOD_CLK_XTAL}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @brief Glitch filter clock source
|
|
* @brief Glitch filter clock source
|
|
@@ -336,8 +344,8 @@ typedef enum {
|
|
|
|
|
|
|
|
typedef enum {
|
|
typedef enum {
|
|
|
GLITCH_FILTER_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL clock as the source clock */
|
|
GLITCH_FILTER_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL clock as the source clock */
|
|
|
- GLITCH_FILTER_CLK_SRC_PLL_F80M = SOC_MOD_CLK_PLL_F80M, /*!< Select PLL_F80M clock as the source clock */
|
|
|
|
|
- GLITCH_FILTER_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_F80M, /*!< Select PLL_F80M clock as the default clock choice */
|
|
|
|
|
|
|
+ GLITCH_FILTER_CLK_SRC_PLL_F48M = SOC_MOD_CLK_PLL_F48M, /*!< Select PLL_F48M clock as the source clock */
|
|
|
|
|
+ GLITCH_FILTER_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_F48M, /*!< Select PLL_F48M clock as the default clock choice */
|
|
|
} soc_periph_glitch_filter_clk_src_t;
|
|
} soc_periph_glitch_filter_clk_src_t;
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////TWAI/////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////TWAI/////////////////////////////////////////////////////////////////
|
|
@@ -361,7 +369,7 @@ typedef enum {
|
|
|
* @brief Array initializer for all supported clock sources of ADC digital controller
|
|
* @brief Array initializer for all supported clock sources of ADC digital controller
|
|
|
*/
|
|
*/
|
|
|
// TODO: temporary support, need to check while supporting
|
|
// TODO: temporary support, need to check while supporting
|
|
|
-#define SOC_ADC_DIGI_CLKS {SOC_MOD_CLK_XTAL, SOC_MOD_CLK_PLL_F80M}
|
|
|
|
|
|
|
+#define SOC_ADC_DIGI_CLKS {SOC_MOD_CLK_XTAL, SOC_MOD_CLK_PLL_F96M}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @brief ADC digital controller clock source
|
|
* @brief ADC digital controller clock source
|
|
@@ -369,11 +377,11 @@ typedef enum {
|
|
|
// TODO: temporary support, need to check while supporting
|
|
// TODO: temporary support, need to check while supporting
|
|
|
typedef enum {
|
|
typedef enum {
|
|
|
ADC_DIGI_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the source clock */
|
|
ADC_DIGI_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the source clock */
|
|
|
- ADC_DIGI_CLK_SRC_PLL_F80M = SOC_MOD_CLK_PLL_F80M, /*!< Select PLL_F80M as the source clock */
|
|
|
|
|
|
|
+ ADC_DIGI_CLK_SRC_PLL_F96M = SOC_MOD_CLK_PLL_F96M, /*!< Select PLL_F96M as the source clock */
|
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
#if CONFIG_IDF_ENV_FPGA
|
|
|
ADC_DIGI_CLK_SRC_DEFAULT = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the default clock choice */
|
|
ADC_DIGI_CLK_SRC_DEFAULT = SOC_MOD_CLK_XTAL, /*!< Select XTAL as the default clock choice */
|
|
|
#else
|
|
#else
|
|
|
- ADC_DIGI_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_F80M, /*!< Select PLL_F80M as the default clock choice */
|
|
|
|
|
|
|
+ ADC_DIGI_CLK_SRC_DEFAULT = SOC_MOD_CLK_PLL_F96M, /*!< Select PLL_F96M as the default clock choice */
|
|
|
#endif
|
|
#endif
|
|
|
} soc_periph_adc_digi_clk_src_t;
|
|
} soc_periph_adc_digi_clk_src_t;
|
|
|
|
|
|