Lines Matching refs:fd
20 struct clk_regmap_fractional_divider *fd = in clk_regmap_fractional_divider_recalc_rate() local
26 regmap_read(fd->regmap, fd->reg, &val); in clk_regmap_fractional_divider_recalc_rate()
28 m = (val & fd->mmask) >> fd->mshift; in clk_regmap_fractional_divider_recalc_rate()
29 n = (val & fd->nmask) >> fd->nshift; in clk_regmap_fractional_divider_recalc_rate()
44 struct clk_regmap_fractional_divider *fd = in clk_regmap_fractional_divider_approximation() local
63 if (scale > fd->nwidth) in clk_regmap_fractional_divider_approximation()
64 rate <<= scale - fd->nwidth; in clk_regmap_fractional_divider_approximation()
67 GENMASK(fd->mwidth - 1, 0), in clk_regmap_fractional_divider_approximation()
68 GENMASK(fd->nwidth - 1, 0), in clk_regmap_fractional_divider_approximation()
98 struct clk_regmap_fractional_divider *fd = in clk_regmap_fractional_divider_set_rate() local
104 GENMASK(fd->mwidth - 1, 0), GENMASK(fd->nwidth - 1, 0), in clk_regmap_fractional_divider_set_rate()
107 dev_dbg(fd->dev, "%s: parent_rate=%ld, m=%ld, n=%ld, rate=%ld\n", in clk_regmap_fractional_divider_set_rate()
110 regmap_read(fd->regmap, fd->reg, &val); in clk_regmap_fractional_divider_set_rate()
111 val &= ~(fd->mmask | fd->nmask); in clk_regmap_fractional_divider_set_rate()
112 val |= (m << fd->mshift) | (n << fd->nshift); in clk_regmap_fractional_divider_set_rate()
114 return regmap_write(fd->regmap, fd->reg, val); in clk_regmap_fractional_divider_set_rate()
131 struct clk_regmap_fractional_divider *fd; in devm_clk_regmap_register_fractional_divider() local
134 fd = devm_kzalloc(dev, sizeof(*fd), GFP_KERNEL); in devm_clk_regmap_register_fractional_divider()
135 if (!fd) in devm_clk_regmap_register_fractional_divider()
144 fd->dev = dev; in devm_clk_regmap_register_fractional_divider()
145 fd->regmap = regmap; in devm_clk_regmap_register_fractional_divider()
146 fd->reg = reg; in devm_clk_regmap_register_fractional_divider()
147 fd->mshift = 16; in devm_clk_regmap_register_fractional_divider()
148 fd->mwidth = 16; in devm_clk_regmap_register_fractional_divider()
149 fd->mmask = GENMASK(fd->mwidth - 1, 0) << fd->mshift; in devm_clk_regmap_register_fractional_divider()
150 fd->nshift = 0; in devm_clk_regmap_register_fractional_divider()
151 fd->nwidth = 16; in devm_clk_regmap_register_fractional_divider()
152 fd->nmask = GENMASK(fd->nwidth - 1, 0) << fd->nshift; in devm_clk_regmap_register_fractional_divider()
153 fd->hw.init = &init; in devm_clk_regmap_register_fractional_divider()
155 return devm_clk_register(dev, &fd->hw); in devm_clk_regmap_register_fractional_divider()