Skip to content

Commit e5f1552

Browse files
committed
Merge branch 'feature/add_120m_clk' into 'master'
feat(clk): Add 120M pll clock support See merge request espressif/esp-idf!40456
2 parents f03521b + 752c9fc commit e5f1552

File tree

4 files changed

+24
-0
lines changed

4 files changed

+24
-0
lines changed

components/esp_hw_support/port/esp32p4/esp_clk_tree.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ esp_err_t esp_clk_tree_src_get_freq_hz(soc_module_clk_t clk_src, esp_clk_tree_sr
3838
case SOC_MOD_CLK_PLL_F80M:
3939
clk_src_freq = CLK_LL_PLL_80M_FREQ_MHZ * MHZ;
4040
break;
41+
case SOC_MOD_CLK_PLL_F120M:
42+
clk_src_freq = CLK_LL_PLL_120M_FREQ_MHZ * MHZ;
43+
break;
4144
case SOC_MOD_CLK_PLL_F160M:
4245
clk_src_freq = CLK_LL_PLL_160M_FREQ_MHZ * MHZ;
4346
break;
@@ -126,6 +129,9 @@ esp_err_t esp_clk_tree_enable_src(soc_module_clk_t clk_src, bool enable)
126129
case SOC_MOD_CLK_PLL_F80M:
127130
clk_gate_ll_ref_80m_clk_en(enable);
128131
break;
132+
case SOC_MOD_CLK_PLL_F120M:
133+
clk_gate_ll_ref_120m_clk_en(enable);
134+
break;
129135
case SOC_MOD_CLK_PLL_F160M:
130136
clk_gate_ll_ref_160m_clk_en(enable);
131137
break;

components/hal/esp32p4/include/hal/clk_gate_ll.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,21 @@ FORCE_INLINE_ATTR void _clk_gate_ll_ref_160m_clk_en(bool enable)
7676
_clk_gate_ll_ref_160m_clk_en(__VA_ARGS__); \
7777
} while(0)
7878

79+
/**
80+
* Enable or disable the clock gate for ref_120m.
81+
* @param enable Enable / disable
82+
*/
83+
FORCE_INLINE_ATTR void _clk_gate_ll_ref_120m_clk_en(bool enable)
84+
{
85+
HP_SYS_CLKRST.ref_clk_ctrl2.reg_ref_120m_clk_en = enable;
86+
}
87+
/// use a macro to wrap the function, force the caller to use it in a critical section
88+
/// the critical section needs to declare the __DECLARE_RCC_ATOMIC_ENV variable in advance
89+
#define clk_gate_ll_ref_120m_clk_en(...) do { \
90+
(void)__DECLARE_RCC_ATOMIC_ENV; \
91+
_clk_gate_ll_ref_120m_clk_en(__VA_ARGS__); \
92+
} while(0)
93+
7994
/**
8095
* Enable or disable the clock gate for ref_20m.
8196
* @param enable Enable / disable

components/hal/esp32p4/include/hal/clk_tree_ll.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ extern "C" {
3737
#define CLK_LL_PLL_8M_FREQ_MHZ (8)
3838

3939
#define CLK_LL_PLL_80M_FREQ_MHZ (80)
40+
#define CLK_LL_PLL_120M_FREQ_MHZ (120)
4041
#define CLK_LL_PLL_160M_FREQ_MHZ (160)
4142
#define CLK_LL_PLL_240M_FREQ_MHZ (240)
4243
#define CLK_LL_PLL_SDIO_FREQ_MHZ (200)

components/soc/esp32p4/include/soc/clk_tree_defs.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ typedef enum {
163163
SOC_MOD_CLK_PLL_F50M, /*!< PLL_F50M_CLK is derived from MPLL (clock gating + configurable divider 10), it will have a frequency of 50MHz */
164164
SOC_MOD_CLK_PLL_F80M, /*!< PLL_F80M_CLK is derived from SPLL (clock gating + default divider 6), its default frequency is 80MHz */
165165
SOC_MOD_CLK_PLL_F160M, /*!< PLL_F160M_CLK is derived from SPLL (clock gating + default divider 3), its default frequency is 160MHz */
166+
SOC_MOD_CLK_PLL_F120M, /*!< PLL_F120M_CLK is derived from SPLL (clock gating + default divider 4), its default frequency is 120MHz */
166167
SOC_MOD_CLK_PLL_F240M, /*!< PLL_F240M_CLK is derived from SPLL (clock gating + default divider 2), its default frequency is 240MHz */
167168
SOC_MOD_CLK_CPLL, /*!< CPLL is from 40MHz XTAL oscillator frequency multipliers */
168169
SOC_MOD_CLK_SPLL, /*!< SPLL is from 40MHz XTAL oscillator frequency multipliers, its default frequency is 480MHz */
@@ -756,6 +757,7 @@ typedef enum {
756757
typedef enum {
757758
I3C_MASTER_CLK_SRC_XTAL = SOC_MOD_CLK_XTAL,
758759
I3C_MASTER_CLK_SRC_PLL_F160M = SOC_MOD_CLK_PLL_F160M,
760+
I3C_MASTER_CLK_SRC_PLL_F120M = SOC_MOD_CLK_PLL_F120M,
759761
I3C_MASTER_CLK_SRC_DEFAULT = SOC_MOD_CLK_XTAL,
760762
} soc_periph_i3c_master_clk_src_t;
761763

0 commit comments

Comments
 (0)