Lines Matching refs:id
59 struct clk_oscillator_data *clk_oscillator_get_data(struct stm32_clk_priv *priv, int id) in clk_oscillator_get_data() argument
61 const struct clk_stm32 *clk = _clk_get(priv, id); in clk_oscillator_get_data()
68 void clk_oscillator_set_bypass(struct stm32_clk_priv *priv, int id, bool digbyp, bool bypass) in clk_oscillator_set_bypass() argument
70 struct clk_oscillator_data *osc_data = clk_oscillator_get_data(priv, id); in clk_oscillator_set_bypass()
90 void clk_oscillator_set_css(struct stm32_clk_priv *priv, int id, bool css) in clk_oscillator_set_css() argument
92 struct clk_oscillator_data *osc_data = clk_oscillator_get_data(priv, id); in clk_oscillator_set_css()
108 void clk_oscillator_set_drive(struct stm32_clk_priv *priv, int id, uint8_t lsedrv) in clk_oscillator_set_drive() argument
110 struct clk_oscillator_data *osc_data = clk_oscillator_get_data(priv, id); in clk_oscillator_set_drive()
142 int clk_oscillator_wait_ready(struct stm32_clk_priv *priv, int id, bool ready_on) in clk_oscillator_wait_ready() argument
144 struct clk_oscillator_data *osc_data = clk_oscillator_get_data(priv, id); in clk_oscillator_wait_ready()
149 int clk_oscillator_wait_ready_on(struct stm32_clk_priv *priv, int id) in clk_oscillator_wait_ready_on() argument
151 return clk_oscillator_wait_ready(priv, id, true); in clk_oscillator_wait_ready_on()
154 int clk_oscillator_wait_ready_off(struct stm32_clk_priv *priv, int id) in clk_oscillator_wait_ready_off() argument
156 return clk_oscillator_wait_ready(priv, id, false); in clk_oscillator_wait_ready_off()
159 static int clk_gate_enable(struct stm32_clk_priv *priv, int id) in clk_gate_enable() argument
161 const struct clk_stm32 *clk = _clk_get(priv, id); in clk_gate_enable()
169 static void clk_gate_disable(struct stm32_clk_priv *priv, int id) in clk_gate_disable() argument
171 const struct clk_stm32 *clk = _clk_get(priv, id); in clk_gate_disable()
177 static bool clk_gate_is_enabled(struct stm32_clk_priv *priv, int id) in clk_gate_is_enabled() argument
179 const struct clk_stm32 *clk = _clk_get(priv, id); in clk_gate_is_enabled()
218 const struct clk_stm32 *_clk_get(struct stm32_clk_priv *priv, int id) in _clk_get() argument
220 if ((unsigned int)id < priv->num) { in _clk_get()
221 return &priv->clks[id]; in _clk_get()
465 unsigned long _clk_stm32_get_rate(struct stm32_clk_priv *priv, int id) in _clk_stm32_get_rate() argument
467 const struct clk_stm32 *clk = _clk_get(priv, id); in _clk_stm32_get_rate()
470 if ((unsigned int)id >= priv->num) { in _clk_stm32_get_rate()
474 parent = _clk_stm32_get_parent(priv, id); in _clk_stm32_get_rate()
486 return clk->ops->recalc_rate(priv, id, prate); in _clk_stm32_get_rate()
496 unsigned long _clk_stm32_get_parent_rate(struct stm32_clk_priv *priv, int id) in _clk_stm32_get_parent_rate() argument
498 int parent_id = _clk_stm32_get_parent(priv, id); in _clk_stm32_get_parent_rate()
507 static uint8_t _stm32_clk_get_flags(struct stm32_clk_priv *priv, int id) in _stm32_clk_get_flags() argument
509 return priv->clks[id].flags; in _stm32_clk_get_flags()
512 bool _stm32_clk_is_flags(struct stm32_clk_priv *priv, int id, uint8_t flag) in _stm32_clk_is_flags() argument
514 if ((_stm32_clk_get_flags(priv, id) & flag) != 0U) { in _stm32_clk_is_flags()
521 int clk_stm32_enable_call_ops(struct stm32_clk_priv *priv, uint16_t id) in clk_stm32_enable_call_ops() argument
523 const struct clk_stm32 *clk = _clk_get(priv, id); in clk_stm32_enable_call_ops()
526 clk->ops->enable(priv, id); in clk_stm32_enable_call_ops()
532 static int _clk_stm32_enable_core(struct stm32_clk_priv *priv, int id) in _clk_stm32_enable_core() argument
537 if (priv->gate_refcounts[id] == 0U) { in _clk_stm32_enable_core()
538 parent = _clk_stm32_get_parent(priv, id); in _clk_stm32_enable_core()
548 clk_stm32_enable_call_ops(priv, id); in _clk_stm32_enable_core()
551 priv->gate_refcounts[id]++; in _clk_stm32_enable_core()
553 if (priv->gate_refcounts[id] == UINT_MAX) { in _clk_stm32_enable_core()
554 ERROR("%s: %d max enable count !", __func__, id); in _clk_stm32_enable_core()
561 int _clk_stm32_enable(struct stm32_clk_priv *priv, int id) in _clk_stm32_enable() argument
566 ret = _clk_stm32_enable_core(priv, id); in _clk_stm32_enable()
572 void clk_stm32_disable_call_ops(struct stm32_clk_priv *priv, uint16_t id) in clk_stm32_disable_call_ops() argument
574 const struct clk_stm32 *clk = _clk_get(priv, id); in clk_stm32_disable_call_ops()
577 clk->ops->disable(priv, id); in clk_stm32_disable_call_ops()
581 static void _clk_stm32_disable_core(struct stm32_clk_priv *priv, int id) in _clk_stm32_disable_core() argument
585 if ((priv->gate_refcounts[id] == 1U) && _stm32_clk_is_flags(priv, id, CLK_IS_CRITICAL)) { in _clk_stm32_disable_core()
589 if (priv->gate_refcounts[id] == 0U) { in _clk_stm32_disable_core()
591 if (_clk_stm32_is_enabled(priv, id)) { in _clk_stm32_disable_core()
592 clk_stm32_disable_call_ops(priv, id); in _clk_stm32_disable_core()
595 VERBOSE("%s: %d already disabled !\n\n", __func__, id); in _clk_stm32_disable_core()
599 if (--priv->gate_refcounts[id] > 0U) { in _clk_stm32_disable_core()
603 clk_stm32_disable_call_ops(priv, id); in _clk_stm32_disable_core()
605 parent = _clk_stm32_get_parent(priv, id); in _clk_stm32_disable_core()
611 void _clk_stm32_disable(struct stm32_clk_priv *priv, int id) in _clk_stm32_disable() argument
615 _clk_stm32_disable_core(priv, id); in _clk_stm32_disable()
620 bool _clk_stm32_is_enabled(struct stm32_clk_priv *priv, int id) in _clk_stm32_is_enabled() argument
622 const struct clk_stm32 *clk = _clk_get(priv, id); in _clk_stm32_is_enabled()
625 return clk->ops->is_enabled(priv, id); in _clk_stm32_is_enabled()
628 return priv->gate_refcounts[id]; in _clk_stm32_is_enabled()
634 int id; in clk_stm32_enable() local
636 id = clk_get_index(priv, binding_id); in clk_stm32_enable()
637 if (id == -EINVAL) { in clk_stm32_enable()
638 return id; in clk_stm32_enable()
641 return _clk_stm32_enable(priv, id); in clk_stm32_enable()
647 int id; in clk_stm32_disable() local
649 id = clk_get_index(priv, binding_id); in clk_stm32_disable()
650 if (id != -EINVAL) { in clk_stm32_disable()
651 _clk_stm32_disable(priv, id); in clk_stm32_disable()
658 int id; in clk_stm32_is_enabled() local
660 id = clk_get_index(priv, binding_id); in clk_stm32_is_enabled()
661 if (id == -EINVAL) { in clk_stm32_is_enabled()
665 return _clk_stm32_is_enabled(priv, id); in clk_stm32_is_enabled()
671 int id; in clk_stm32_get_rate() local
673 id = clk_get_index(priv, binding_id); in clk_stm32_get_rate()
674 if (id == -EINVAL) { in clk_stm32_get_rate()
678 return _clk_stm32_get_rate(priv, id); in clk_stm32_get_rate()
684 int id; in clk_stm32_get_parent() local
686 id = clk_get_index(priv, binding_id); in clk_stm32_get_parent()
687 if (id == -EINVAL) { in clk_stm32_get_parent()
688 return id; in clk_stm32_get_parent()
691 return _clk_stm32_get_parent(priv, id); in clk_stm32_get_parent()
746 unsigned long clk_stm32_divider_recalc(struct stm32_clk_priv *priv, int id, in clk_stm32_divider_recalc() argument
749 const struct clk_stm32 *clk = _clk_get(priv, id); in clk_stm32_divider_recalc()
752 return _clk_stm32_divider_recalc(priv, div_cfg->id, prate); in clk_stm32_divider_recalc()
822 int clk_stm32_gate_enable(struct stm32_clk_priv *priv, int id) in clk_stm32_gate_enable() argument
824 const struct clk_stm32 *clk = _clk_get(priv, id); in clk_stm32_gate_enable()
826 const struct gate_cfg *gate = &priv->gates[cfg->id]; in clk_stm32_gate_enable()
839 void clk_stm32_gate_disable(struct stm32_clk_priv *priv, int id) in clk_stm32_gate_disable() argument
841 const struct clk_stm32 *clk = _clk_get(priv, id); in clk_stm32_gate_disable()
843 const struct gate_cfg *gate = &priv->gates[cfg->id]; in clk_stm32_gate_disable()
864 bool clk_stm32_gate_is_enabled(struct stm32_clk_priv *priv, int id) in clk_stm32_gate_is_enabled() argument
866 const struct clk_stm32 *clk = _clk_get(priv, id); in clk_stm32_gate_is_enabled()
869 return _clk_stm32_gate_is_enabled(priv, cfg->id); in clk_stm32_gate_is_enabled()
883 int id, unsigned long prate) in fixed_factor_recalc_rate() argument
885 const struct clk_stm32 *clk = _clk_get(priv, id); in fixed_factor_recalc_rate()
903 int id, unsigned long prate) in timer_recalc_rate() argument
905 const struct clk_stm32 *clk = _clk_get(priv, id); in timer_recalc_rate()
927 static unsigned long clk_fixed_rate_recalc(struct stm32_clk_priv *priv, int id, in clk_fixed_rate_recalc() argument
930 const struct clk_stm32 *clk = _clk_get(priv, id); in clk_fixed_rate_recalc()
941 int id, unsigned long prate) in clk_stm32_osc_recalc_rate() argument
943 struct clk_oscillator_data *osc_data = clk_oscillator_get_data(priv, id); in clk_stm32_osc_recalc_rate()
948 bool clk_stm32_osc_gate_is_enabled(struct stm32_clk_priv *priv, int id) in clk_stm32_osc_gate_is_enabled() argument
950 struct clk_oscillator_data *osc_data = clk_oscillator_get_data(priv, id); in clk_stm32_osc_gate_is_enabled()
956 int clk_stm32_osc_gate_enable(struct stm32_clk_priv *priv, int id) in clk_stm32_osc_gate_enable() argument
958 struct clk_oscillator_data *osc_data = clk_oscillator_get_data(priv, id); in clk_stm32_osc_gate_enable()
970 void clk_stm32_osc_gate_disable(struct stm32_clk_priv *priv, int id) in clk_stm32_osc_gate_disable() argument
972 struct clk_oscillator_data *osc_data = clk_oscillator_get_data(priv, id); in clk_stm32_osc_gate_disable()
1023 void clk_stm32_osc_init(struct stm32_clk_priv *priv, int id) in clk_stm32_osc_init() argument
1025 struct clk_oscillator_data *osc_data = clk_oscillator_get_data(priv, id); in clk_stm32_osc_init()