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);
176 val = readl_relaxed(pfd->reg);
177 val &= ~(CLK_PFDV2_FRAC_MASK << pfd->frac_off);
178 val |= frac << pfd->frac_off;
179 writel_relaxed(val, pfd->reg);
198 struct clk_pfdv2 *pfd;
204 pfd = kzalloc(sizeof(*pfd), GFP_KERNEL);
205 if (!pfd)
208 pfd->reg = reg;
209 pfd->gate_bit = (idx + 1) * 8 - 1;
210 pfd->vld_bit = pfd->gate_bit - 1;
211 pfd->frac_off = idx * 8;
219 pfd->hw.init = &init;
221 hw = &pfd->hw;
224 kfree(pfd);