Lines Matching refs:div
22 struct iproc_asiu_div div;
82 val = readl(asiu->div_base + clk->div.offset);
83 if ((val & (1 << clk->div.en_shift)) == 0) {
89 div_h = (val >> clk->div.high_shift) & bit_mask(clk->div.high_width);
91 div_l = (val >> clk->div.low_shift) & bit_mask(clk->div.low_width);
104 unsigned int div;
112 div = DIV_ROUND_CLOSEST(*parent_rate, rate);
113 if (div < 2)
116 return *parent_rate / div;
124 unsigned int div, div_h, div_l;
132 val = readl(asiu->div_base + clk->div.offset);
133 val &= ~(1 << clk->div.en_shift);
134 writel(val, asiu->div_base + clk->div.offset);
138 div = DIV_ROUND_CLOSEST(parent_rate, rate);
139 if (div < 2)
142 div_h = div_l = div >> 1;
146 val = readl(asiu->div_base + clk->div.offset);
147 val |= 1 << clk->div.en_shift;
149 val &= ~(bit_mask(clk->div.high_width)
150 << clk->div.high_shift);
151 val |= div_h << clk->div.high_shift;
153 val &= ~(bit_mask(clk->div.high_width)
154 << clk->div.high_shift);
157 val &= ~(bit_mask(clk->div.low_width) << clk->div.low_shift);
158 val |= div_l << clk->div.low_shift;
160 val &= ~(bit_mask(clk->div.low_width) << clk->div.low_shift);
162 writel(val, asiu->div_base + clk->div.offset);
176 const struct iproc_asiu_div *div,
183 if (WARN_ON(!gate || !div))
222 asiu_clk->div = div[i];