Lines Matching refs:pfd
43 static int clk_pfdv2_wait(struct clk_pfdv2 *pfd)
47 return readl_poll_timeout(pfd->reg, val, val & (1 << pfd->vld_bit),
53 struct clk_pfdv2 *pfd = to_clk_pfdv2(hw);
58 val = readl_relaxed(pfd->reg);
59 val &= ~(1 << pfd->gate_bit);
60 writel_relaxed(val, pfd->reg);
63 return clk_pfdv2_wait(pfd);
68 struct clk_pfdv2 *pfd = to_clk_pfdv2(hw);
73 val = readl_relaxed(pfd->reg);
74 val |= (1 << pfd->gate_bit);
75 writel_relaxed(val, pfd->reg);
82 struct clk_pfdv2 *pfd = to_clk_pfdv2(hw);
86 frac = (readl_relaxed(pfd->reg) >> pfd->frac_off)
90 pr_debug("clk_pfdv2: %s invalid pfd frac value 0\n",
144 struct clk_pfdv2 *pfd = to_clk_pfdv2(hw);
146 if (readl_relaxed(pfd->reg) & (1 << pfd->gate_bit))
155 struct clk_pfdv2 *pfd = to_clk_pfdv2(hw);
185 val = readl_relaxed(pfd->reg);
186 val &= ~(CLK_PFDV2_FRAC_MASK << pfd->frac_off);
187 val |= frac << pfd->frac_off;
188 writel_relaxed(val, pfd->reg);
207 struct clk_pfdv2 *pfd;
213 pfd = kzalloc(sizeof(*pfd), GFP_KERNEL);
214 if (!pfd)
217 pfd->reg = reg;
218 pfd->gate_bit = (idx + 1) * 8 - 1;
219 pfd->vld_bit = pfd->gate_bit - 1;
220 pfd->frac_off = idx * 8;
231 pfd->hw.init = &init;
233 hw = &pfd->hw;
236 kfree(pfd);