Home
last modified time | relevance | path

Searched refs:clk (Results 1 – 25 of 93) sorted by relevance

1234

/optee_os/core/drivers/clk/
H A Dclk.c21 static SLIST_HEAD(, clk) clock_list = SLIST_HEAD_INITIALIZER(clock_list);
34 struct clk *clk_alloc(const char *name, const struct clk_ops *ops, in clk_alloc()
35 struct clk **parent_clks, size_t parent_count) in clk_alloc()
37 struct clk *clk = NULL; in clk_alloc() local
40 clk = calloc(1, sizeof(*clk) + parent_count * sizeof(clk)); in clk_alloc()
41 if (!clk) in clk_alloc()
44 clk->num_parents = parent_count; in clk_alloc()
46 clk->parents[parent] = parent_clks[parent]; in clk_alloc()
48 clk->name = name; in clk_alloc()
49 clk->ops = ops; in clk_alloc()
[all …]
H A Dclk-stm32-core.c352 static size_t clk_stm32_mux_get_parent(struct clk *clk) in clk_stm32_mux_get_parent() argument
354 struct clk_stm32_mux_cfg *cfg = clk->priv; in clk_stm32_mux_get_parent()
359 static TEE_Result clk_stm32_mux_set_parent(struct clk *clk, size_t pidx) in clk_stm32_mux_set_parent() argument
361 struct clk_stm32_mux_cfg *cfg = clk->priv; in clk_stm32_mux_set_parent()
372 static TEE_Result clk_stm32_gate_enable(struct clk *clk) in clk_stm32_gate_enable() argument
374 struct clk_stm32_gate_cfg *cfg = clk->priv; in clk_stm32_gate_enable()
381 static void clk_stm32_gate_disable(struct clk *clk) in clk_stm32_gate_disable() argument
383 struct clk_stm32_gate_cfg *cfg = clk->priv; in clk_stm32_gate_disable()
393 static TEE_Result clk_stm32_gate_ready_enable(struct clk *clk) in clk_stm32_gate_ready_enable() argument
395 struct clk_stm32_gate_cfg *cfg = clk->priv; in clk_stm32_gate_ready_enable()
[all …]
H A Dclk-stm32-core.h41 struct clk **clk_refs;
49 bool (*is_critical)(struct clk *clk);
142 unsigned long clk_stm32_divider_get_rate(struct clk *clk,
145 TEE_Result clk_stm32_divider_set_rate(struct clk *clk,
149 size_t clk_stm32_composite_get_parent(struct clk *clk);
150 TEE_Result clk_stm32_composite_set_parent(struct clk *clk, size_t pidx);
151 unsigned long clk_stm32_composite_get_rate(struct clk *clk,
153 TEE_Result clk_stm32_composite_set_rate(struct clk *clk, unsigned long rate,
155 TEE_Result clk_stm32_composite_gate_enable(struct clk *clk);
156 void clk_stm32_composite_gate_disable(struct clk *clk);
[all …]
H A Dfixed_clk.c16 static unsigned long fixed_clk_get_rate(struct clk *clk, in fixed_clk_get_rate() argument
19 struct fixed_clock_data *d = clk->priv; in fixed_clk_get_rate()
33 struct clk *clk = NULL; in fixed_clock_probe() local
41 clk = clk_alloc(name, &fixed_clk_clk_ops, NULL, 0); in fixed_clock_probe()
42 if (!clk) in fixed_clock_probe()
58 clk->priv = fcd; in fixed_clock_probe()
60 res = clk_register(clk); in fixed_clock_probe()
65 clk); in fixed_clock_probe()
72 clk_free(clk); in fixed_clock_probe()
H A Dclk_dt.c17 const char *name, struct clk **clk) in clk_dt_get_by_name() argument
23 *clk = NULL; in clk_dt_get_by_name()
27 return clk_dt_get_by_index(fdt, nodeoffset, clk_id, clk); in clk_dt_get_by_name()
32 struct clk **clk) in clk_dt_get_by_idx_prop() argument
41 *clk = out_clk; in clk_dt_get_by_idx_prop()
47 unsigned int clk_idx, struct clk **clk) in clk_dt_get_by_index() argument
49 return clk_dt_get_by_idx_prop("clocks", fdt, nodeoffset, clk_idx, clk); in clk_dt_get_by_index()
146 struct clk *clk = NULL; in parse_assigned_clock() local
148 struct clk *parent = NULL; in parse_assigned_clock()
158 clock_idx, &clk); in parse_assigned_clock()
[all …]
H A Dsub.mk1 srcs-y += clk.c
4 srcs-$(CFG_STM32MP_CLK_CORE) += clk-stm32-core.c
5 srcs-$(CFG_STM32MP13_CLK) += clk-stm32mp13.c
6 srcs-$(CFG_STM32MP15_CLK) += clk-stm32mp15.c
7 srcs-$(CFG_STM32MP21_CLK) += clk-stm32mp21.c
8 srcs-$(CFG_STM32MP25_CLK) += clk-stm32mp25.c
/optee_os/core/include/drivers/
H A Dclk.h36 struct clk { struct
40 struct clk *parent; argument
45 SLIST_ENTRY(clk) link; argument
48 struct clk *parents[]; argument
80 TEE_Result (*enable)(struct clk *clk);
81 void (*disable)(struct clk *clk);
82 TEE_Result (*set_parent)(struct clk *clk, size_t index);
83 size_t (*get_parent)(struct clk *clk);
84 TEE_Result (*set_rate)(struct clk *clk, unsigned long rate,
86 unsigned long (*get_rate)(struct clk *clk,
[all …]
/optee_os/core/drivers/scmi-msg/
H A Dclock_generic.c24 struct clk *clk; member
39 struct scmi_clk *clk = NULL; in plat_scmi_clock_count() local
41 SLIST_FOREACH(clk, &scmi_clk_list, link) { in plat_scmi_clock_count()
42 if (clk->channel_id == channel_id) { in plat_scmi_clock_count()
44 max_id = MAX(max_id, clk->scmi_id); in plat_scmi_clock_count()
58 struct scmi_clk *clk = NULL; in clk_scmi_get_by_id() local
60 SLIST_FOREACH(clk, &scmi_clk_list, link) in clk_scmi_get_by_id()
61 if (clk->channel_id == channel_id && clk->scmi_id == scmi_id) in clk_scmi_get_by_id()
62 return clk; in clk_scmi_get_by_id()
70 struct scmi_clk *clk = NULL; in plat_scmi_clock_get_name() local
[all …]
/optee_os/core/drivers/clk/sam/
H A Dat91_audio_pll.c75 static TEE_Result clk_audio_pll_frac_enable(struct clk *clk) in clk_audio_pll_frac_enable() argument
77 struct clk_audio_frac *frac = clk->priv; in clk_audio_pll_frac_enable()
99 static TEE_Result clk_audio_pll_pad_enable(struct clk *clk) in clk_audio_pll_pad_enable() argument
101 struct clk_audio_pad *apad_ck = clk->priv; in clk_audio_pll_pad_enable()
112 static TEE_Result clk_audio_pll_pmc_enable(struct clk *clk) in clk_audio_pll_pmc_enable() argument
114 struct clk_audio_pmc *apmc_ck = clk->priv; in clk_audio_pll_pmc_enable()
124 static void clk_audio_pll_frac_disable(struct clk *clk) in clk_audio_pll_frac_disable() argument
126 struct clk_audio_frac *frac = clk->priv; in clk_audio_pll_frac_disable()
135 static void clk_audio_pll_pad_disable(struct clk *clk) in clk_audio_pll_pad_disable() argument
137 struct clk_audio_pad *apad_ck = clk->priv; in clk_audio_pll_pad_disable()
[all …]
H A Dat91_main.c44 static TEE_Result pmc_main_rc_osc_enable(struct clk *clk) in pmc_main_rc_osc_enable() argument
46 struct main_rc_osc *osc = clk->priv; in pmc_main_rc_osc_enable()
62 static void pmc_main_rc_osc_disable(struct clk *clk) in pmc_main_rc_osc_disable() argument
64 struct main_rc_osc *osc = clk->priv; in pmc_main_rc_osc_disable()
75 pmc_main_rc_osc_get_rate(struct clk *clk, unsigned long parent_rate __unused) in pmc_main_rc_osc_get_rate() argument
77 struct main_rc_osc *osc = clk->priv; in pmc_main_rc_osc_get_rate()
88 struct clk *pmc_register_main_rc_osc(struct pmc_data *pmc, const char *name, in pmc_register_main_rc_osc()
91 struct clk *clk = NULL; in pmc_register_main_rc_osc() local
94 clk = clk_alloc(name, &pmc_main_rc_osc_clk_ops, NULL, 0); in pmc_register_main_rc_osc()
95 if (!clk) in pmc_register_main_rc_osc()
[all …]
H A Dat91_clk.h44 struct clk *clk; member
122 struct clk **clk);
125 unsigned int idx, struct clk **clk);
127 struct clk *at91_sckc_clk_get(void);
133 TEE_Result clk_dt_pmc_get(struct dt_pargs *args, void *data, struct clk **clk);
135 struct clk *pmc_clk_get_by_name(struct pmc_clk *clks, unsigned int nclk,
139 struct clk *pmc_register_main_rc_osc(struct pmc_data *pmc, const char *name,
142 struct clk *pmc_register_main_osc(struct pmc_data *pmc, const char *name,
143 struct clk *parent, bool bypass);
145 struct clk *at91_clk_register_sam9x5_main(struct pmc_data *pmc,
[all …]
H A Dsama5d2_clk.c75 struct sam_clk clk; member
79 .clk = { .n = "macb0_clk", .id = 5 },
83 .clk = { .n = "tdes_clk", .id = 11 },
87 .clk = { .n = "matrix1_clk", .id = 14 },
90 .clk = { .n = "hsmc_clk", .id = 17 },
93 .clk = { .n = "pioA_clk", .id = 18 },
97 .clk = { .n = "flx0_clk", .id = 19 },
101 .clk = { .n = "flx1_clk", .id = 20 },
105 .clk = { .n = "flx2_clk", .id = 21 },
109 .clk = { .n = "flx3_clk", .id = 22 },
[all …]
H A Dat91_utmi.c33 static TEE_Result clk_utmi_enable(struct clk *clk) in clk_utmi_enable() argument
35 struct clk *clk_parent = NULL; in clk_utmi_enable()
36 struct clk_utmi *utmi = clk->priv; in clk_utmi_enable()
47 clk_parent = clk_get_parent(clk); in clk_utmi_enable()
88 static void clk_utmi_disable(struct clk *clk) in clk_utmi_disable() argument
90 struct clk_utmi *utmi = clk->priv; in clk_utmi_disable()
95 static unsigned long clk_utmi_get_rate(struct clk *clk __unused, in clk_utmi_get_rate()
108 static struct clk *at91_clk_register_utmi_internal(struct pmc_data *pmc, in at91_clk_register_utmi_internal()
111 struct clk *parent) in at91_clk_register_utmi_internal()
114 struct clk *clk = NULL; in at91_clk_register_utmi_internal() local
[all …]
H A Dat91_h32mx.c17 static unsigned long clk_sama5d4_h32mx_get_rate(struct clk *clk, in clk_sama5d4_h32mx_get_rate() argument
20 struct pmc_data *pmc = clk->priv; in clk_sama5d4_h32mx_get_rate()
32 static TEE_Result clk_sama5d4_h32mx_set_rate(struct clk *clk, in clk_sama5d4_h32mx_set_rate() argument
36 struct pmc_data *pmc = clk->priv; in clk_sama5d4_h32mx_set_rate()
55 struct clk *
57 struct clk *parent) in at91_clk_register_h32mx()
59 struct clk *clk = NULL; in at91_clk_register_h32mx() local
61 clk = clk_alloc(name, &h32mx_ops, &parent, 1); in at91_clk_register_h32mx()
62 if (!clk) in at91_clk_register_h32mx()
65 clk->ops = &h32mx_ops; in at91_clk_register_h32mx()
[all …]
H A Dat91_usb.c26 static unsigned long at91sam9x5_clk_usb_get_rate(struct clk *clk, in at91sam9x5_clk_usb_get_rate() argument
29 struct at91sam9x5_clk_usb *usb = clk->priv; in at91sam9x5_clk_usb_get_rate()
38 static TEE_Result at91sam9x5_clk_usb_set_parent(struct clk *clk, size_t index) in at91sam9x5_clk_usb_set_parent() argument
40 struct at91sam9x5_clk_usb *usb = clk->priv; in at91sam9x5_clk_usb_set_parent()
42 if (index >= clk_get_num_parents(clk)) in at91sam9x5_clk_usb_set_parent()
50 static size_t at91sam9x5_clk_usb_get_parent(struct clk *clk) in at91sam9x5_clk_usb_get_parent() argument
52 struct at91sam9x5_clk_usb *usb = clk->priv; in at91sam9x5_clk_usb_get_parent()
58 static TEE_Result at91sam9x5_clk_usb_set_rate(struct clk *clk, in at91sam9x5_clk_usb_set_rate() argument
62 struct at91sam9x5_clk_usb *usb = clk->priv; in at91sam9x5_clk_usb_set_rate()
85 static struct clk *
[all …]
H A Dat91_plldiv.c15 static unsigned long clk_plldiv_get_rate(struct clk *clk, in clk_plldiv_get_rate() argument
18 struct pmc_data *pmc = clk->priv; in clk_plldiv_get_rate()
27 static TEE_Result clk_plldiv_set_rate(struct clk *clk, unsigned long rate, in clk_plldiv_set_rate() argument
30 struct pmc_data *pmc = clk->priv; in clk_plldiv_set_rate()
46 struct clk *
48 struct clk *parent) in at91_clk_register_plldiv()
50 struct clk *clk = NULL; in at91_clk_register_plldiv() local
52 clk = clk_alloc(name, &plldiv_ops, &parent, 1); in at91_clk_register_plldiv()
53 if (!clk) in at91_clk_register_plldiv()
56 clk->priv = pmc; in at91_clk_register_plldiv()
[all …]
H A Dat91_i2s_mux.c21 static size_t clk_i2s_mux_get_parent(struct clk *clk) in clk_i2s_mux_get_parent() argument
23 struct clk_i2s_mux *mux = clk->priv; in clk_i2s_mux_get_parent()
29 static TEE_Result clk_i2s_mux_set_parent(struct clk *clk, size_t index) in clk_i2s_mux_set_parent() argument
31 struct clk_i2s_mux *mux = clk->priv; in clk_i2s_mux_set_parent()
44 struct clk *
45 at91_clk_i2s_mux_register(const char *name, struct clk **parents, in at91_clk_i2s_mux_register()
49 struct clk *clk = NULL; in at91_clk_i2s_mux_register() local
51 clk = clk_alloc(name, &clk_i2s_mux_ops, parents, num_parents); in at91_clk_i2s_mux_register()
52 if (!clk) in at91_clk_i2s_mux_register()
57 clk_free(clk); in at91_clk_i2s_mux_register()
[all …]
H A Dat91_peripheral.c30 static void clk_sam9x5_peripheral_autodiv(struct clk *clk) in clk_sam9x5_peripheral_autodiv() argument
32 struct clk *parent = NULL; in clk_sam9x5_peripheral_autodiv()
33 struct clk_sam9x5_peripheral *periph = clk->priv; in clk_sam9x5_peripheral_autodiv()
41 parent = clk_get_parent_by_index(clk, 0); in clk_sam9x5_peripheral_autodiv()
56 static TEE_Result clk_sam9x5_peripheral_enable(struct clk *clk) in clk_sam9x5_peripheral_enable() argument
58 struct clk_sam9x5_peripheral *periph = clk->priv; in clk_sam9x5_peripheral_enable()
75 static void clk_sam9x5_peripheral_disable(struct clk *clk) in clk_sam9x5_peripheral_disable() argument
77 struct clk_sam9x5_peripheral *periph = clk->priv; in clk_sam9x5_peripheral_disable()
90 clk_sam9x5_peripheral_get_rate(struct clk *clk, in clk_sam9x5_peripheral_get_rate() argument
93 struct clk_sam9x5_peripheral *periph = clk->priv; in clk_sam9x5_peripheral_get_rate()
[all …]
H A Dat91_generated.c31 static TEE_Result clk_generated_enable(struct clk *clk) in clk_generated_enable() argument
33 struct clk_generated *gck = clk->priv; in clk_generated_enable()
49 static void clk_generated_disable(struct clk *clk) in clk_generated_disable() argument
51 struct clk_generated *gck = clk->priv; in clk_generated_disable()
60 clk_generated_get_rate(struct clk *clk, unsigned long parent_rate) in clk_generated_get_rate() argument
62 struct clk_generated *gck = clk->priv; in clk_generated_get_rate()
68 static TEE_Result clk_generated_set_parent(struct clk *clk, size_t index) in clk_generated_set_parent() argument
70 struct clk_generated *gck = clk->priv; in clk_generated_set_parent()
72 if (index >= clk_get_num_parents(clk)) in clk_generated_set_parent()
83 static size_t clk_generated_get_parent(struct clk *clk) in clk_generated_get_parent() argument
[all …]
H A Dat91_system.c36 static TEE_Result clk_system_enable(struct clk *clk) in clk_system_enable() argument
38 struct clk_system *sys = clk->priv; in clk_system_enable()
51 static void clk_system_disable(struct clk *clk) in clk_system_disable() argument
53 struct clk_system *sys = clk->priv; in clk_system_disable()
63 struct clk *
65 struct clk *parent, uint8_t id) in at91_clk_register_system()
68 struct clk *clk = NULL; in at91_clk_register_system() local
73 clk = clk_alloc(name, &system_ops, &parent, 1); in at91_clk_register_system()
74 if (!clk) in at91_clk_register_system()
79 clk_free(clk); in at91_clk_register_system()
[all …]
H A Dat91_master.c39 static TEE_Result clk_master_enable(struct clk *clk) in clk_master_enable() argument
41 struct clk_master *master = clk->priv; in clk_master_enable()
49 static unsigned long clk_master_div_get_rate(struct clk *clk, in clk_master_div_get_rate() argument
55 struct clk_master *master = clk->priv; in clk_master_div_get_rate()
80 static unsigned long clk_master_pres_get_rate(struct clk *clk, in clk_master_pres_get_rate() argument
83 struct clk_master *master = clk->priv; in clk_master_pres_get_rate()
97 static size_t clk_master_pres_get_parent(struct clk *clk) in clk_master_pres_get_parent() argument
99 struct clk_master *master = clk->priv; in clk_master_pres_get_parent()
113 static struct clk *
116 struct clk **parents, in at91_clk_register_master_internal()
[all …]
H A Dat91_sckc.c11 static struct clk *slow_clk;
15 struct clk *at91_sckc_clk_get(void) in at91_sckc_clk_get()
20 static unsigned long sckc_get_rate(struct clk *clk __unused, in sckc_get_rate()
33 struct clk *clk = NULL; in sckc_pmc_setup() local
39 clk = clk_alloc("slowck", &sckc_clk_ops, NULL, 0); in sckc_pmc_setup()
40 if (!clk) in sckc_pmc_setup()
43 res = clk_register(clk); in sckc_pmc_setup()
45 clk_free(clk); in sckc_pmc_setup()
50 clk); in sckc_pmc_setup()
54 slow_clk = clk; in sckc_pmc_setup()
H A Dat91_programmable.c32 static unsigned long clk_programmable_get_rate(struct clk *clk, in clk_programmable_get_rate() argument
35 struct clk_programmable *prog = clk->priv; in clk_programmable_get_rate()
48 static TEE_Result clk_programmable_set_parent(struct clk *clk, size_t index) in clk_programmable_set_parent() argument
50 struct clk_programmable *prog = clk->priv; in clk_programmable_set_parent()
70 static size_t clk_programmable_get_parent(struct clk *clk) in clk_programmable_get_parent() argument
72 struct clk_programmable *prog = clk->priv; in clk_programmable_get_parent()
93 static TEE_Result clk_programmable_set_rate(struct clk *clk, unsigned long rate, in clk_programmable_set_rate() argument
96 struct clk_programmable *prog = clk->priv; in clk_programmable_set_rate()
133 struct clk *
135 const char *name, struct clk **parents, in at91_clk_register_programmable()
[all …]
H A Dat91_pll.c54 static TEE_Result clk_pll_enable(struct clk *clk) in clk_pll_enable() argument
56 struct clk_pll *pll = clk->priv; in clk_pll_enable()
96 static void clk_pll_disable(struct clk *clk) in clk_pll_disable() argument
98 struct clk_pll *pll = clk->priv; in clk_pll_disable()
104 static unsigned long clk_pll_get_rate(struct clk *clk, in clk_pll_get_rate() argument
107 struct clk_pll *pll = clk->priv; in clk_pll_get_rate()
227 static TEE_Result clk_pll_set_rate(struct clk *clk, unsigned long rate, in clk_pll_set_rate() argument
230 struct clk_pll *pll = clk->priv; in clk_pll_set_rate()
255 struct clk *
257 struct clk *parent, uint8_t id, in at91_clk_register_pll()
[all …]
H A Dat91_cpu_opp.c23 static TEE_Result get_rates_array(struct clk *clk __unused, size_t start_index, in get_rates_array()
47 static TEE_Result cpu_opp_clk_set_rate(struct clk *clk, unsigned long rate, in cpu_opp_clk_set_rate() argument
52 assert(clk->parent); in cpu_opp_clk_set_rate()
60 return clk->parent->ops->set_rate(clk->parent, rate, parent_rate); in cpu_opp_clk_set_rate()
130 static struct clk *cpu_opp_clk;
132 struct clk *at91_cpu_opp_clk_get(void) in at91_cpu_opp_clk_get()
137 TEE_Result at91_clk_register_cpu_opp(const void *fdt, int node, struct clk *clk) in at91_clk_register_cpu_opp() argument
147 cpu_opp_clk = clk_alloc("cpu-opp", &cpu_opp_clk_ops, &clk, 1); in at91_clk_register_cpu_opp()

1234