4 #ifndef RTOS_CLOCK_CONTROL_H_
5 #define RTOS_CLOCK_CONTROL_H_
14 #include "xcore_clock_control.h"
16 #include "rtos_osal.h"
17 #include "rtos_driver_rpc.h"
18 #include "mrsw_lock.h"
33 __attribute__((fptrgroup(
"rtos_clock_control_set_ref_clk_div_fptr_grp")))
36 __attribute__((fptrgroup(
"rtos_clock_control_set_processor_clk_div_fptr_grp")))
39 __attribute__((fptrgroup(
"rtos_clock_control_set_switch_clk_div_fptr_grp")))
42 __attribute__((fptrgroup(
"rtos_clock_control_get_ref_clk_div_fptr_grp")))
45 __attribute__((fptrgroup(
"rtos_clock_control_get_processor_clk_div_fptr_grp")))
48 __attribute__((fptrgroup(
"rtos_clock_control_get_switch_clk_div_fptr_grp")))
51 __attribute__((fptrgroup(
"rtos_clock_control_get_processor_clock_fptr_grp")))
54 __attribute__((fptrgroup(
"rtos_clock_control_get_ref_clock_fptr_grp")))
57 __attribute__((fptrgroup(
"rtos_clock_control_get_switch_clock_fptr_grp")))
60 __attribute__((fptrgroup(
"rtos_clock_control_set_node_pll_ratio_fptr_grp")))
63 __attribute__((fptrgroup(
"rtos_clock_control_get_node_pll_ratio_fptr_grp")))
66 __attribute__((fptrgroup(
"rtos_clock_control_scale_links_fptr_grp")))
69 __attribute__((fptrgroup(
"rtos_clock_control_reset_links_fptr_grp")))
72 __attribute__((fptrgroup(
"rtos_clock_control_get_local_lock_fptr_grp")))
75 __attribute__((fptrgroup(
"rtos_clock_control_release_local_lock_fptr_grp")))
84 rtos_osal_mutex_t lock;
87 #include "rtos_clock_control_rpc.h"
109 ctx->set_ref_clk_div(ctx, divider);
121 return ctx->get_ref_clk_div(ctx);
135 ctx->set_processor_clk_div(ctx, divider);
147 return ctx->get_processor_clk_div(ctx);
161 ctx->set_switch_clk_div(ctx, divider);
173 return ctx->get_switch_clk_div(ctx);
185 return ctx->get_ref_clock(ctx);
197 return ctx->get_processor_clock(ctx);
209 return ctx->get_switch_clock(ctx);
226 unsigned delay_intra,
227 unsigned delay_inter)
229 ctx->scale_links(ctx, start_addr, end_addr, delay_intra, delay_inter);
245 ctx->reset_links(ctx, start_addr, end_addr);
277 ctx->set_node_pll_ratio(ctx, pre_div, mul, post_div);
296 ctx->get_node_pll_ratio(ctx, pre_div, mul, post_div);
309 ctx->get_local_lock(ctx);
321 ctx->release_local_lock(ctx);
unsigned rtos_clock_control_get_processor_clk_div(rtos_clock_control_t *ctx)
Definition: rtos_clock_control.h:144
void rtos_clock_control_reset_links(rtos_clock_control_t *ctx, unsigned start_addr, unsigned end_addr)
Definition: rtos_clock_control.h:240
void rtos_clock_control_get_node_pll_ratio(rtos_clock_control_t *ctx, unsigned *pre_div, unsigned *mul, unsigned *post_div)
Definition: rtos_clock_control.h:290
void rtos_clock_control_release_local_lock(rtos_clock_control_t *ctx)
Definition: rtos_clock_control.h:318
unsigned rtos_clock_control_get_ref_clk_div(rtos_clock_control_t *ctx)
Definition: rtos_clock_control.h:118
unsigned rtos_clock_control_get_processor_clock(rtos_clock_control_t *ctx)
Definition: rtos_clock_control.h:194
void rtos_clock_control_get_local_lock(rtos_clock_control_t *ctx)
Definition: rtos_clock_control.h:306
void rtos_clock_control_set_processor_clk_div(rtos_clock_control_t *ctx, unsigned divider)
Definition: rtos_clock_control.h:131
void rtos_clock_control_scale_links(rtos_clock_control_t *ctx, unsigned start_addr, unsigned end_addr, unsigned delay_intra, unsigned delay_inter)
Definition: rtos_clock_control.h:222
unsigned rtos_clock_control_get_switch_clock(rtos_clock_control_t *ctx)
Definition: rtos_clock_control.h:206
void rtos_clock_control_set_ref_clk_div(rtos_clock_control_t *ctx, unsigned divider)
Definition: rtos_clock_control.h:105
void rtos_clock_control_set_node_pll_ratio(rtos_clock_control_t *ctx, unsigned pre_div, unsigned mul, unsigned post_div)
Definition: rtos_clock_control.h:271
void rtos_clock_control_set_switch_clk_div(rtos_clock_control_t *ctx, unsigned divider)
Definition: rtos_clock_control.h:157
unsigned rtos_clock_control_get_ref_clock(rtos_clock_control_t *ctx)
Definition: rtos_clock_control.h:182
unsigned rtos_clock_control_get_switch_clk_div(rtos_clock_control_t *ctx)
Definition: rtos_clock_control.h:170
void rtos_clock_control_init(rtos_clock_control_t *ctx)
Definition: rtos_clock_control.c:151
void rtos_clock_control_start(rtos_clock_control_t *ctx)
Definition: rtos_clock_control.c:140
Definition: rtos_clock_control.h:30
mrsw_lock_t local_lock
Definition: rtos_clock_control.h:83
Definition: rtos_driver_rpc.h:23