Lines Matching defs:factor

3  * mmp factor clock operation source file
19 * numerator/denominator = Fin / (Fout * factor)
27 struct mmp_clk_factor *factor = to_clk_factor(hw);
31 for (i = 0; i < factor->ftbl_cnt; i++) {
34 rate *= factor->ftbl[i].den;
35 do_div(rate, factor->ftbl[i].num * factor->masks->factor);
40 if ((i == 0) || (i == factor->ftbl_cnt)) {
53 struct mmp_clk_factor *factor = to_clk_factor(hw);
54 struct mmp_clk_factor_masks *masks = factor->masks;
58 val = readl_relaxed(factor->base);
71 do_div(rate, num * factor->masks->factor);
80 struct mmp_clk_factor *factor = to_clk_factor(hw);
81 struct mmp_clk_factor_masks *masks = factor->masks;
87 for (i = 0; i < factor->ftbl_cnt; i++) {
89 rate *= factor->ftbl[i].den;
90 do_div(rate, factor->ftbl[i].num * factor->masks->factor);
98 if (factor->lock)
99 spin_lock_irqsave(factor->lock, flags);
101 val = readl_relaxed(factor->base);
104 val |= (factor->ftbl[i].num & masks->num_mask) << masks->num_shift;
107 val |= (factor->ftbl[i].den & masks->den_mask) << masks->den_shift;
109 writel_relaxed(val, factor->base);
111 if (factor->lock)
112 spin_unlock_irqrestore(factor->lock, flags);
119 struct mmp_clk_factor *factor = to_clk_factor(hw);
120 struct mmp_clk_factor_masks *masks = factor->masks;
125 if (factor->lock)
126 spin_lock_irqsave(factor->lock, flags);
128 val = readl(factor->base);
136 for (i = 0; i < factor->ftbl_cnt; i++)
137 if (den == factor->ftbl[i].den && num == factor->ftbl[i].num)
140 if (i >= factor->ftbl_cnt) {
142 val |= (factor->ftbl[0].num & masks->num_mask) <<
146 val |= (factor->ftbl[0].den & masks->den_mask) <<
150 if (!(val & masks->enable_mask) || i >= factor->ftbl_cnt) {
152 writel(val, factor->base);
155 if (factor->lock)
156 spin_unlock_irqrestore(factor->lock, flags);
174 struct mmp_clk_factor *factor;
183 factor = kzalloc(sizeof(*factor), GFP_KERNEL);
184 if (!factor)
188 factor->base = base;
189 factor->masks = masks;
190 factor->ftbl = ftbl;
191 factor->ftbl_cnt = ftbl_cnt;
192 factor->hw.init = &init;
193 factor->lock = lock;
201 clk = clk_register(NULL, &factor->hw);
203 kfree(factor);