SemiDrive SSDK Appication Program Interface PTG3.0
sdrv_ckgen.h
Go to the documentation of this file.
1
9#ifndef SDRV_CLK_H_
10#define SDRV_CLK_H_
11
12#include <sdrv_common.h>
13#include <lib/list.h>
14#include <types.h>
15#include <part.h>
16#include <sdrv_rtc.h>
17
18#define CLK_NODE(node) (sdrv_ckgen_node_t *)&(node.clk_node)
19#define CLK_MHZ(x) ((x) * 1000 * 1000)
20
21#define CONFIG_CKGEN_PARENTS_NUM 5
22
51};
52
56typedef enum sdrv_fs_src_type {
58 FS_SRC_XTAL = 1
60
64typedef enum sdrv_ckgen_type {
81
85typedef enum sdrv_ckgen_lp_mode {
90
103
111
150
160
171
175typedef struct sdrv_ckgen_node {
176 uint32_t base;
177 uint16_t type;
178 uint16_t id;
180
184typedef struct sdrv_ckgen_slice_node {
186 uint8_t parents_num;
187 const sdrv_ckgen_node_t *
190
194typedef struct sdrv_ckgen_cg_node {
198
202typedef struct sdrv_pll_node {
206
212 uint32_t rate;
213 bool dsm_en;
215
220 uint32_t config_num;
223
229 uint32_t rate;
232
236typedef struct sdrv_ckgen_bus_config {
237 uint32_t config_num;
240
247 bool gating;
249
254 uint32_t config_num;
257
264 bool enable;
266
271 uint32_t config_num;
274
278typedef struct sdrv_ckgen_config {
287
288#if CONFIG_CLK_DUMP
289
293typedef struct sdrv_clk {
294 const char *name;
296 struct list_node node;
297 struct list_node child;
299
303typedef struct sdrv_clk_config {
304 uint32_t config_num;
307
316
317#endif /* CONFIG_CLK_DUMP */
318
322typedef struct sdrv_ckgen_xcg_set {
323 uint32_t base;
325 uint32_t num;
327
328#if CONFIG_RTC_SS_DYNAMIC_PCLK
329#include <armv7-r/irq.h>
330#include <clock_ip.h>
331
332#if CONFIG_RTC_SS_DYNAMIC_PCLK_IRQ_DISABLE
333
334#define RTC_SS_ACCESS_START() \
335 irq_state_t _state = arch_irq_save(); \
336 sdrv_ckgen_clock_config(CLK_NODE(g_ckgen_gating_rtc_pclk), true); \
337 SDRV_RTC_REG_PARITY_ERR_ENABLE();
338
339#define RTC_SS_ACCESS_END() \
340 SDRV_RTC_REG_PARITY_ERR_DISABLE(); \
341 sdrv_ckgen_clock_config(CLK_NODE(g_ckgen_gating_rtc_pclk), false); \
342 arch_irq_restore(_state);
343
344#else /* CONFIG_RTC_SS_DYNAMIC_PCLK_IRQ_DISABLE */
345
346int sdrv_rtc_ss_pclk_enable(void);
347int sdrv_rtc_ss_pclk_disable(void);
348
349#define RTC_SS_ACCESS_START() sdrv_rtc_ss_pclk_enable();
350#define RTC_SS_ACCESS_END() sdrv_rtc_ss_pclk_disable();
351
352#endif /* CONFIG_RTC_SS_DYNAMIC_PCLK_IRQ_DISABLE */
353
354#else
355
356#define RTC_SS_ACCESS_START()
357#define RTC_SS_ACCESS_END()
358#endif /* CONFIG_RTC_SS_DYNAMIC_PCLK */
359
369int sdrv_xtal24m_enable(sdrv_ckgen_node_t *ckgen, bool enable);
370
380
391
404
414int sdrv_xtal32k_enable(sdrv_ckgen_node_t *ckgen, bool enable);
415
426
436
446
457
468
479
488
499
511status_t sdrv_pll_set_rate_with_dsm(sdrv_ckgen_node_t *ckgen, uint32_t rate, bool dsm_en);
512
522
532
543
554
566
578
588
604
617
629
643 sdrv_ckgen_lp_mode_e lp_mode, bool gating);
644
655
667 sdrv_ckgen_lp_mode_e mode, bool enable);
668
680 sdrv_ckgen_lp_mode_e lp_mode, bool power_down);
681
691
701
713
725
726#endif /* SDRV_CLK_H_ */
int sdrv_xtal32k_from_active_crystal(sdrv_ckgen_node_t *ckgen)
Config XTAL32K oscillator.
enum sdrv_ckgen_lp_mode sdrv_ckgen_lp_mode_e
Low power mode for clock config.
struct sdrv_ckgen_ip_clock_config sdrv_ckgen_ip_clock_config_t
IP clock enable or disable config.
sdrv_fs_src_type
Function Safe clock source.
Definition: sdrv_ckgen.h:56
@ FS_SRC_RC
Definition: sdrv_ckgen.h:57
@ FS_SRC_XTAL
Definition: sdrv_ckgen.h:58
status_t sdrv_ckgen_clock_config(sdrv_ckgen_node_t *ckgen, bool enable)
Config clock enable or disable in run mode.
sdrv_ckgen_bus_post_div
Bus slice post divide ratio.
Definition: sdrv_ckgen.h:107
@ CKGEN_BUS_DIV_4_2_1
Definition: sdrv_ckgen.h:108
@ CKGEN_BUS_DIV_2_2_1
Definition: sdrv_ckgen.h:109
int sdrv_fs32k_lpvd_power_ctrl(sdrv_ckgen_node_t *ckgen, bool power_on)
Control low power voltage detector power on or down.
uint32_t sdrv_ckgen_get_fs32k_real_frequency(sdrv_ckgen_node_t *ckgen)
Get FS32K real output clock frequency.
int sdrv_fs32k_change_src_nowait(sdrv_ckgen_node_t *ckgen, sdrv_fs_src_type_e src)
Config FS32K clock source without wait active status.
status_t sdrv_ckgen_slice_gated(sdrv_ckgen_node_t *ckgen)
Get slice node gating status.
sdrv_ckgen_type
Clock node type.
Definition: sdrv_ckgen.h:64
@ CKGEN_PLL_LVDS_TYPE
Definition: sdrv_ckgen.h:75
@ CKGEN_RC24M_TYPE
Definition: sdrv_ckgen.h:76
@ CKGEN_PLL_CG_TYPE
Definition: sdrv_ckgen.h:72
@ CKGEN_IP_SLICE_TYPE
Definition: sdrv_ckgen.h:65
@ CKGEN_SF_BUS_SLICE_TYPE
Definition: sdrv_ckgen.h:66
@ CKGEN_RC32K_TYPE
Definition: sdrv_ckgen.h:78
@ CKGEN_BCG_TYPE
Definition: sdrv_ckgen.h:70
@ CKGEN_PCG_TYPE
Definition: sdrv_ckgen.h:69
@ CKGEN_BUS_SLICE_TYPE
Definition: sdrv_ckgen.h:67
@ CKGEN_FS32K_TYPE
Definition: sdrv_ckgen.h:79
@ CKGEN_CORE_SLICE_TYPE
Definition: sdrv_ckgen.h:68
@ CKGEN_CCG_TYPE
Definition: sdrv_ckgen.h:71
@ CKGEN_XTAL_CG_TYPE
Definition: sdrv_ckgen.h:73
@ CKGEN_PLL_CTRL_TYPE
Definition: sdrv_ckgen.h:74
@ CKGEN_FS24M_TYPE
Definition: sdrv_ckgen.h:77
sdrv_ckgen_lp_mode
Low power mode for clock config.
Definition: sdrv_ckgen.h:85
@ CKGEN_HIB_MODE
Definition: sdrv_ckgen.h:87
@ CKGEN_RUN_MODE
Definition: sdrv_ckgen.h:86
@ CKGEN_SLP_MODE
Definition: sdrv_ckgen.h:88
struct sdrv_ckgen_config sdrv_ckgen_config_t
Initialize clock config for system setup.
struct sdrv_pll_node sdrv_pll_node_t
Abstract pll node for driver operate.
status_t sdrv_ckgen_set_rate(sdrv_ckgen_node_t *ckgen, uint32_t rate)
Config clock rate for Core/IP slice node.
struct sdrv_ckgen_bus_config sdrv_ckgen_bus_config_t
Clock rate config lists for Bus node.
enum sdrv_ckgen_ssc_freq sdrv_ckgen_ssc_freq_e
PLL Spread Modulation frequency.
struct sdrv_ckgen_slice_node sdrv_ckgen_slice_node_t
Abstract clock slice node for driver operate.
int sdrv_xtal24m_enable(sdrv_ckgen_node_t *ckgen, bool enable)
Config XTAL24M oscillator.
enum sdrv_ckgen_ssc_mode sdrv_ckgen_ssc_mode_e
PLL Spread mode.
sdrv_ckgen_ssc_mode
PLL Spread mode.
Definition: sdrv_ckgen.h:155
@ CKGEN_CENTER_SPREADING
Definition: sdrv_ckgen.h:158
@ CKGEN_DOWN_SPREADING
Definition: sdrv_ckgen.h:157
@ CKGEN_NO_SSC
Definition: sdrv_ckgen.h:156
status_t sdrv_ckgen_set_pll_power(sdrv_ckgen_node_t *ckgen, sdrv_ckgen_lp_mode_e lp_mode, bool power_down)
Config PLL power down under run/sleep/hibernate mode.
struct sdrv_ckgen_ip_clock_config_node sdrv_ckgen_ip_clock_config_node_t
IP clock enable/disable config node.
sdrv_ckgen_ssc_freq
PLL Spread Modulation frequency.
Definition: sdrv_ckgen.h:165
@ CKGEN_FREF_DIV_507
Definition: sdrv_ckgen.h:166
@ CKGEN_FREF_DIV_793
Definition: sdrv_ckgen.h:168
@ CKGEN_FREF_DIV_857
Definition: sdrv_ckgen.h:169
@ CKGEN_FREF_DIV_761
Definition: sdrv_ckgen.h:167
bool sdrv_fs32k_get_src_active_status(sdrv_ckgen_node_t *ckgen, sdrv_fs_src_type_e src)
Get FS32K clock source active status.
int sdrv_fs24m_change_src(sdrv_ckgen_node_t *ckgen, sdrv_fs_src_type_e src)
Config FS24M clock source.
struct sdrv_ckgen_rate_config_node sdrv_ckgen_rate_config_node_t
Clock rate config for IP/Core/PLL node.
status_t sdrv_pll_set_ssc_mode(sdrv_ckgen_node_t *ckgen, sdrv_ckgen_ssc_mode_e ssc_mode)
Set PLL spread mode.
struct sdrv_clk_config sdrv_clk_config_t
System default total clock node list.
int sdrv_xtal24m_from_active_crystal(sdrv_ckgen_node_t *ckgen)
Config XTAL24M oscillator.
enum sdrv_ckgen_type sdrv_ckgen_type_e
Clock node type.
status_t sdrv_pll_set_ssc_amplitude(sdrv_ckgen_node_t *ckgen, sdrv_ckgen_ssc_amplitude_e amplitude)
Set PLL spread amplitude.
status_t sdrv_ckgen_init(sdrv_ckgen_config_t *config)
System clock initialize.
status_t sdrv_ckgen_set_gate(sdrv_ckgen_node_t *ckgen, sdrv_ckgen_lp_mode_e lp_mode, bool gating)
Config xcg status under run/sleep/hibernate mode.
status_t sdrv_ckgen_ip_clock_enable(const sdrv_ckgen_node_t *ckgen_ip[], sdrv_ckgen_lp_mode_e mode, bool enable)
Config IP clock enable/disable in run/sleep/hibernate mode.
int sdrv_xtal32k_enable(sdrv_ckgen_node_t *ckgen, bool enable)
Config XTAL32K oscillator.
struct sdrv_ckgen_cg_node sdrv_ckgen_cg_node_t
Abstract xcg node for driver operate.
struct sdrv_ckgen_gating_config sdrv_ckgen_gating_config_t
Gate config list for XCG node.
uint32_t sdrv_ckgen_bus_get_rate(sdrv_ckgen_node_t *ckgen, sdrv_ckgen_bus_out_type_e clk_out)
Get clock rate for Bus slice node.
struct sdrv_ckgen_rate_config sdrv_ckgen_rate_config_t
Clock rate config lists for IP/Core/PLL node.
status_t sdrv_pll_set_rate_with_dsm(sdrv_ckgen_node_t *ckgen, uint32_t rate, bool dsm_en)
Config PLL rate with delta-sigma modulator enable config.
struct sdrv_clk sdrv_clk_t
Definition for clock tree node.
uint32_t sdrv_ckgen_get_rate(sdrv_ckgen_node_t *ckgen)
Get clock rate for Core/IP slice node.
status_t sdrv_clktree_dump(sdrv_clk_config_t *clk_config, sdrv_clk_t *clk_node)
Dump system clock tree.
status_t sdrv_ckgen_xcg_type_set(sdrv_ckgen_xcg_set_t *xcg, sdrv_ckgen_lp_mode_e mode, bool gate)
Config All xcg gate or active.
struct sdrv_ckgen_gating_config_node sdrv_ckgen_gating_config_node_t
Gate config for xcg node.
status_t sdrv_pll_set_ssc_frequency(sdrv_ckgen_node_t *ckgen, sdrv_ckgen_ssc_freq_e ssc_freq)
Set PLL spread frequency.
status_t sdrv_ckgen_cg_mask(sdrv_ckgen_node_t *ckgen, bool mask)
Set CG NODE whether participate in low power handshake.
status_t sdrv_ckgen_is_gated(sdrv_ckgen_node_t *ckgen)
Get ckgen xcg node gating status.
status_t sdrv_ckgen_bus_set_rate(sdrv_ckgen_node_t *ckgen, uint32_t rate, sdrv_ckgen_bus_post_div_e div)
Config clock rate for Bus slice node.
uint32_t sdrv_pll_get_rate(sdrv_ckgen_node_t *ckgen)
Get PLL rate.
sdrv_ckgen_bus_out_type
Config bus slice node output type. For SF/SP BUS, clk_out_m for core, clk_out_n for AXI,...
Definition: sdrv_ckgen.h:96
@ CKGEN_BUS_CLK_OUT_Q
Definition: sdrv_ckgen.h:101
@ CKGEN_BUS_CLK_OUT_P
Definition: sdrv_ckgen.h:100
@ CKGEN_BUS_CLK_OUT_M
Definition: sdrv_ckgen.h:98
@ CKGEN_BUS_CLK_OUT_N
Definition: sdrv_ckgen.h:99
@ CKGEN_BUS_CLK_OUT
Definition: sdrv_ckgen.h:97
int sdrv_fs32k_change_src(sdrv_ckgen_node_t *ckgen, sdrv_fs_src_type_e src)
Config FS32K clock source.
enum sdrv_ckgen_ssc_amplitude sdrv_ckgen_ssc_amplitude_e
PLL Spread amplitude.
#define CONFIG_CKGEN_PARENTS_NUM
Definition: sdrv_ckgen.h:21
bool sdrv_xtal32k_get_ready_status(sdrv_ckgen_node_t *ckgen)
Get xtal32k ready status.
status_t sdrv_pll_is_locked(sdrv_ckgen_node_t *ckgen)
Get PLL lock detector status.
status_t sdrv_pll_set_rate(sdrv_ckgen_node_t *ckgen, uint32_t rate)
Config PLL rate.
sdrv_ckgen_ssc_amplitude
PLL Spread amplitude.
Definition: sdrv_ckgen.h:116
@ CKGEN_SSC_0P3_PERCENT
Definition: sdrv_ckgen.h:120
@ CKGEN_SSC_3P0_PERCENT
Definition: sdrv_ckgen.h:147
@ CKGEN_SSC_1P7_PERCENT
Definition: sdrv_ckgen.h:134
@ CKGEN_SSC_1P4_PERCENT
Definition: sdrv_ckgen.h:131
@ CKGEN_SSC_2P4_PERCENT
Definition: sdrv_ckgen.h:141
@ CKGEN_SSC_2P5_PERCENT
Definition: sdrv_ckgen.h:142
@ CKGEN_SSC_1P1_PERCENT
Definition: sdrv_ckgen.h:128
@ CKGEN_SSC_2P7_PERCENT
Definition: sdrv_ckgen.h:144
@ CKGEN_SSC_1P9_PERCENT
Definition: sdrv_ckgen.h:136
@ CKGEN_SSC_2P2_PERCENT
Definition: sdrv_ckgen.h:139
@ CKGEN_SSC_1P5_PERCENT
Definition: sdrv_ckgen.h:132
@ CKGEN_SSC_1P3_PERCENT
Definition: sdrv_ckgen.h:130
@ CKGEN_SSC_0P7_PERCENT
Definition: sdrv_ckgen.h:124
@ CKGEN_SSC_2P8_PERCENT
Definition: sdrv_ckgen.h:145
@ CKGEN_SSC_0P8_PERCENT
Definition: sdrv_ckgen.h:125
@ CKGEN_SSC_1P2_PERCENT
Definition: sdrv_ckgen.h:129
@ CKGEN_SSC_2P0_PERCENT
Definition: sdrv_ckgen.h:137
@ CKGEN_SSC_2P6_PERCENT
Definition: sdrv_ckgen.h:143
@ CKGEN_SSC_0P6_PERCENT
Definition: sdrv_ckgen.h:123
@ CKGEN_SSC_1P0_PERCENT
Definition: sdrv_ckgen.h:127
@ CKGEN_SSC_1P8_PERCENT
Definition: sdrv_ckgen.h:135
@ CKGEN_SSC_0P4_PERCENT
Definition: sdrv_ckgen.h:121
@ CKGEN_SSC_3P1_PERCENT
Definition: sdrv_ckgen.h:148
@ CKGEN_SSC_0P0_PERCENT
Definition: sdrv_ckgen.h:117
@ CKGEN_SSC_2P9_PERCENT
Definition: sdrv_ckgen.h:146
@ CKGEN_SSC_2P1_PERCENT
Definition: sdrv_ckgen.h:138
@ CKGEN_SSC_1P6_PERCENT
Definition: sdrv_ckgen.h:133
@ CKGEN_SSC_0P9_PERCENT
Definition: sdrv_ckgen.h:126
@ CKGEN_SSC_0P5_PERCENT
Definition: sdrv_ckgen.h:122
@ CKGEN_SSC_2P3_PERCENT
Definition: sdrv_ckgen.h:140
@ CKGEN_SSC_0P2_PERCENT
Definition: sdrv_ckgen.h:119
@ CKGEN_SSC_0P1_PERCENT
Definition: sdrv_ckgen.h:118
struct sdrv_ckgen_node sdrv_ckgen_node_t
Abstract clock common node for driver operate.
enum sdrv_ckgen_bus_post_div sdrv_ckgen_bus_post_div_e
Bus slice post divide ratio.
sdrv_ckgen_error
CKGEN status error code.
Definition: sdrv_ckgen.h:26
@ SDRV_CKGEN_FREQUENCY_INCORRECT
Definition: sdrv_ckgen.h:46
@ SDRV_CKGEN_BEYOND_MAX_AXI_RATE
Definition: sdrv_ckgen.h:49
@ SDRV_CKGEN_SLICE_TYPE_ERROR
Definition: sdrv_ckgen.h:38
@ SDRV_CKGEN_CONSTRUCT_CLKTREE_FAILED
Definition: sdrv_ckgen.h:47
@ SDRV_CKGEN_SLICE_NO_SUITABLE_PARENT
Definition: sdrv_ckgen.h:39
@ SDRV_CKGEN_PLL_RATE_WRONG
Definition: sdrv_ckgen.h:33
@ SDRV_CKGEN_SLICE_DIV_CHG_BUSY
Definition: sdrv_ckgen.h:44
@ SDRV_CKGEN_PLL_LVDS_DIV2_CHG_BUSY
Definition: sdrv_ckgen.h:34
@ SDRV_CKGEN_PLL_LVDS_CKGEN_CHG_BUSY
Definition: sdrv_ckgen.h:36
@ SDRV_CKGEN_PARENT_NODE_NULL
Definition: sdrv_ckgen.h:48
@ SDRV_CKGEN_FS24M_WAIT_ACTIVE_TIMEOUT
Definition: sdrv_ckgen.h:29
@ SDRV_CKGEN_CLOCK_SET_TIMEOUT
Definition: sdrv_ckgen.h:50
@ SDRV_CKGEN_XTAL32K_NOT_READY
Definition: sdrv_ckgen.h:30
@ SDRV_CKGEN_SLICE_D0_ACTIVE_ERROR
Definition: sdrv_ckgen.h:42
@ SDRV_CKGEN_XTAL24M_NOT_READY
Definition: sdrv_ckgen.h:28
@ SDRV_CKGEN_POINTER_IS_NULL
Definition: sdrv_ckgen.h:27
@ SDRV_CKGEN_PLL_LVDS_DIV7_CHG_BUSY
Definition: sdrv_ckgen.h:35
@ SDRV_CKGEN_FS32K_WAIT_ACTIVE_TIMEOUT
Definition: sdrv_ckgen.h:31
@ SDRV_CKGEN_SLICE_PRE_STATUS_ERROR
Definition: sdrv_ckgen.h:41
@ SDRV_CKGEN_BEYOND_MAX_DIVIDER
Definition: sdrv_ckgen.h:45
@ SDRV_CKGEN_PLL_NOT_LOCK
Definition: sdrv_ckgen.h:32
@ SDRV_CKGEN_SLICE_POST_D0_ACTIVE_ERROR
Definition: sdrv_ckgen.h:43
@ SDRV_CKGEN_PLL_NOT_DSM_MODE
Definition: sdrv_ckgen.h:37
@ SDRV_CKGEN_SLICE_MAIN_STATUS_ERROR
Definition: sdrv_ckgen.h:40
struct sdrv_ckgen_bus_config_node sdrv_ckgen_bus_config_node_t
Clock rate config for Bus node.
int sdrv_xtal32k_enable_nowait(sdrv_ckgen_node_t *ckgen, bool enable)
Config XTAL32K oscillator.
enum sdrv_fs_src_type sdrv_fs_src_type_e
Function Safe clock source.
struct sdrv_ckgen_xcg_set sdrv_ckgen_xcg_set_t
CKGEN XCG List.
enum sdrv_ckgen_bus_out_type sdrv_ckgen_bus_out_type_e
Config bus slice node output type. For SF/SP BUS, clk_out_m for core, clk_out_n for AXI,...
SemiDrive driver common header file.
@ SDRV_STATUS_GROUP_CLK
Definition: sdrv_common.h:24
int32_t status_t
Type used for all status and error return values.
Definition: sdrv_common.h:82
#define SDRV_ERROR_STATUS(group, code)
Construct a status code value from a group and code number. All the error statuses are negetive numbe...
Definition: sdrv_common.h:17
SemiDrive RTC driver header file.
Clock rate config for Bus node.
Definition: sdrv_ckgen.h:227
sdrv_ckgen_node_t * clk_node
Definition: sdrv_ckgen.h:228
uint32_t rate
Definition: sdrv_ckgen.h:229
sdrv_ckgen_bus_post_div_e post_div
Definition: sdrv_ckgen.h:230
Clock rate config lists for Bus node.
Definition: sdrv_ckgen.h:236
sdrv_ckgen_bus_config_node_t config_nodes[]
Definition: sdrv_ckgen.h:238
uint32_t config_num
Definition: sdrv_ckgen.h:237
Abstract xcg node for driver operate.
Definition: sdrv_ckgen.h:194
sdrv_ckgen_node_t clk_node
Definition: sdrv_ckgen.h:195
const sdrv_ckgen_node_t * parent
Definition: sdrv_ckgen.h:196
Initialize clock config for system setup.
Definition: sdrv_ckgen.h:278
sdrv_ckgen_gating_config_t const * gating_config
Definition: sdrv_ckgen.h:285
sdrv_ckgen_rate_config_t const * core_config
Definition: sdrv_ckgen.h:282
sdrv_ckgen_bus_config_t const * bus_config
Definition: sdrv_ckgen.h:281
sdrv_ckgen_ip_clock_config_t const * enable_config
Definition: sdrv_ckgen.h:284
sdrv_ckgen_bus_config_t const * pre_bus_config
Definition: sdrv_ckgen.h:279
sdrv_ckgen_rate_config_t const * pll_config
Definition: sdrv_ckgen.h:280
sdrv_ckgen_rate_config_t const * ip_config
Definition: sdrv_ckgen.h:283
Gate config for xcg node.
Definition: sdrv_ckgen.h:244
sdrv_ckgen_node_t * clk_node
Definition: sdrv_ckgen.h:245
sdrv_ckgen_lp_mode_e mode
Definition: sdrv_ckgen.h:246
bool gating
Definition: sdrv_ckgen.h:247
Gate config list for XCG node.
Definition: sdrv_ckgen.h:253
uint32_t config_num
Definition: sdrv_ckgen.h:254
sdrv_ckgen_gating_config_node_t config_nodes[]
Definition: sdrv_ckgen.h:255
IP clock enable/disable config node.
Definition: sdrv_ckgen.h:261
const sdrv_ckgen_node_t ** ip_nodes
Definition: sdrv_ckgen.h:262
sdrv_ckgen_lp_mode_e mode
Definition: sdrv_ckgen.h:263
bool enable
Definition: sdrv_ckgen.h:264
IP clock enable or disable config.
Definition: sdrv_ckgen.h:270
uint32_t config_num
Definition: sdrv_ckgen.h:271
sdrv_ckgen_ip_clock_config_node_t config_nodes[]
Definition: sdrv_ckgen.h:272
Abstract clock common node for driver operate.
Definition: sdrv_ckgen.h:175
uint32_t base
Definition: sdrv_ckgen.h:176
uint16_t id
Definition: sdrv_ckgen.h:178
uint16_t type
Definition: sdrv_ckgen.h:177
Clock rate config for IP/Core/PLL node.
Definition: sdrv_ckgen.h:210
sdrv_ckgen_node_t * clk_node
Definition: sdrv_ckgen.h:211
uint32_t rate
Definition: sdrv_ckgen.h:212
bool dsm_en
Definition: sdrv_ckgen.h:213
Clock rate config lists for IP/Core/PLL node.
Definition: sdrv_ckgen.h:219
uint32_t config_num
Definition: sdrv_ckgen.h:220
sdrv_ckgen_rate_config_node_t config_nodes[]
Definition: sdrv_ckgen.h:221
Abstract clock slice node for driver operate.
Definition: sdrv_ckgen.h:184
const sdrv_ckgen_node_t * parents[CONFIG_CKGEN_PARENTS_NUM]
Definition: sdrv_ckgen.h:188
uint8_t parents_num
Definition: sdrv_ckgen.h:186
sdrv_ckgen_node_t clk_node
Definition: sdrv_ckgen.h:185
CKGEN XCG List.
Definition: sdrv_ckgen.h:322
uint32_t base
Definition: sdrv_ckgen.h:323
sdrv_ckgen_type_e cg_type
Definition: sdrv_ckgen.h:324
uint32_t num
Definition: sdrv_ckgen.h:325
System default total clock node list.
Definition: sdrv_ckgen.h:303
uint32_t config_num
Definition: sdrv_ckgen.h:304
sdrv_clk_t config_nodes[]
Definition: sdrv_ckgen.h:305
Definition for clock tree node.
Definition: sdrv_ckgen.h:293
struct list_node node
Definition: sdrv_ckgen.h:296
const char * name
Definition: sdrv_ckgen.h:294
struct list_node child
Definition: sdrv_ckgen.h:297
const sdrv_ckgen_node_t * ckgen_ref
Definition: sdrv_ckgen.h:295
Abstract pll node for driver operate.
Definition: sdrv_ckgen.h:202
sdrv_ckgen_node_t clk_node
Definition: sdrv_ckgen.h:203
const sdrv_ckgen_node_t * parent
Definition: sdrv_ckgen.h:204