| /optee_os/core/drivers/clk/ |
| H A D | clk.c | 21 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 D | clk-stm32-core.c | 352 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 D | clk-stm32-core.h | 41 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 D | fixed_clk.c | 16 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 D | clk_dt.c | 17 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 D | sub.mk | 1 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 D | clk.h | 36 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 D | clock_generic.c | 24 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 D | at91_audio_pll.c | 75 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 D | at91_main.c | 44 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 D | at91_clk.h | 44 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 D | sama5d2_clk.c | 75 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 D | at91_utmi.c | 33 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 D | at91_h32mx.c | 17 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 D | at91_usb.c | 26 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 D | at91_plldiv.c | 15 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 D | at91_i2s_mux.c | 21 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 D | at91_peripheral.c | 30 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 D | at91_generated.c | 31 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 D | at91_system.c | 36 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 D | at91_master.c | 39 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 D | at91_sckc.c | 11 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 D | at91_programmable.c | 32 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 D | at91_pll.c | 54 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 D | at91_cpu_opp.c | 23 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()
|