Lines Matching full:aux
9 #define pr_fmt(fmt) "clk-aux-synth: " fmt
20 * Aux synth gives rate for different values of eq, x and y
44 struct clk_aux *aux = to_clk_aux(hw); in aux_calc_rate() local
45 struct aux_rate_tbl *rtbl = aux->rtbl; in aux_calc_rate()
55 struct clk_aux *aux = to_clk_aux(hw); in clk_aux_determine_rate() local
59 aux_calc_rate, aux->rtbl_cnt, &unused); in clk_aux_determine_rate()
67 struct clk_aux *aux = to_clk_aux(hw); in clk_aux_recalc_rate() local
71 if (aux->lock) in clk_aux_recalc_rate()
72 spin_lock_irqsave(aux->lock, flags); in clk_aux_recalc_rate()
74 val = readl_relaxed(aux->reg); in clk_aux_recalc_rate()
76 if (aux->lock) in clk_aux_recalc_rate()
77 spin_unlock_irqrestore(aux->lock, flags); in clk_aux_recalc_rate()
79 eqn = (val >> aux->masks->eq_sel_shift) & aux->masks->eq_sel_mask; in clk_aux_recalc_rate()
80 if (eqn == aux->masks->eq1_mask) in clk_aux_recalc_rate()
84 num = (val >> aux->masks->xscale_sel_shift) & in clk_aux_recalc_rate()
85 aux->masks->xscale_sel_mask; in clk_aux_recalc_rate()
88 den *= (val >> aux->masks->yscale_sel_shift) & in clk_aux_recalc_rate()
89 aux->masks->yscale_sel_mask; in clk_aux_recalc_rate()
97 /* Configures new clock rate of aux */
101 struct clk_aux *aux = to_clk_aux(hw); in clk_aux_set_rate() local
102 struct aux_rate_tbl *rtbl = aux->rtbl; in clk_aux_set_rate()
106 clk_round_rate_index(hw, drate, prate, aux_calc_rate, aux->rtbl_cnt, in clk_aux_set_rate()
109 if (aux->lock) in clk_aux_set_rate()
110 spin_lock_irqsave(aux->lock, flags); in clk_aux_set_rate()
112 val = readl_relaxed(aux->reg) & in clk_aux_set_rate()
113 ~(aux->masks->eq_sel_mask << aux->masks->eq_sel_shift); in clk_aux_set_rate()
114 val |= (rtbl[i].eq & aux->masks->eq_sel_mask) << in clk_aux_set_rate()
115 aux->masks->eq_sel_shift; in clk_aux_set_rate()
116 val &= ~(aux->masks->xscale_sel_mask << aux->masks->xscale_sel_shift); in clk_aux_set_rate()
117 val |= (rtbl[i].xscale & aux->masks->xscale_sel_mask) << in clk_aux_set_rate()
118 aux->masks->xscale_sel_shift; in clk_aux_set_rate()
119 val &= ~(aux->masks->yscale_sel_mask << aux->masks->yscale_sel_shift); in clk_aux_set_rate()
120 val |= (rtbl[i].yscale & aux->masks->yscale_sel_mask) << in clk_aux_set_rate()
121 aux->masks->yscale_sel_shift; in clk_aux_set_rate()
122 writel_relaxed(val, aux->reg); in clk_aux_set_rate()
124 if (aux->lock) in clk_aux_set_rate()
125 spin_unlock_irqrestore(aux->lock, flags); in clk_aux_set_rate()
141 struct clk_aux *aux; in clk_register_aux() local
150 aux = kzalloc(sizeof(*aux), GFP_KERNEL); in clk_register_aux()
151 if (!aux) in clk_register_aux()
156 aux->masks = &default_aux_masks; in clk_register_aux()
158 aux->masks = masks; in clk_register_aux()
160 aux->reg = reg; in clk_register_aux()
161 aux->rtbl = rtbl; in clk_register_aux()
162 aux->rtbl_cnt = rtbl_cnt; in clk_register_aux()
163 aux->lock = lock; in clk_register_aux()
164 aux->hw.init = &init; in clk_register_aux()
172 clk = clk_register(NULL, &aux->hw); in clk_register_aux()
181 aux->masks->enable_bit, 0, lock); in clk_register_aux()
192 kfree(aux); in clk_register_aux()