Lines Matching refs:si

60 	struct si521xx		*si;
195 struct si521xx *si = si_clk->si;
197 regmap_set_bits(si->regmap, SI521XX_REG_OE(si_clk->reg), si_clk->bit);
205 struct si521xx *si = si_clk->si;
207 regmap_clear_bits(si->regmap, SI521XX_REG_OE(si_clk->reg), si_clk->bit);
218 static int si521xx_get_common_config(struct si521xx *si)
220 struct i2c_client *client = si->client;
226 si->pll_amplitude = SI521XX_REG_DA_AMP(SI521XX_REG_DA_AMP_DEFAULT);
237 si->pll_amplitude = SI521XX_REG_DA_AMP(amp);
243 static void si521xx_update_config(struct si521xx *si)
246 if (si->pll_amplitude == SI521XX_REG_DA_AMP(SI521XX_REG_DA_AMP_DEFAULT))
249 regmap_update_bits(si->regmap, SI521XX_REG_DA,
250 SI521XX_REG_DA_AMP_MASK, si->pll_amplitude);
274 struct si521xx *si = data;
277 return &si->clk_dif[idx].hw;
287 struct si521xx *si;
293 si = devm_kzalloc(&client->dev, sizeof(*si), GFP_KERNEL);
294 if (!si)
297 i2c_set_clientdata(client, si);
298 si->client = client;
301 ret = si521xx_get_common_config(si);
305 si->regmap = devm_regmap_init(&client->dev, NULL, client,
307 if (IS_ERR(si->regmap))
308 return dev_err_probe(&client->dev, PTR_ERR(si->regmap),
326 si->clk_dif[i].hw.init = &init;
327 si->clk_dif[i].si = si;
329 si521xx_diff_idx_to_reg_bit(chip_info, i, &si->clk_dif[i]);
331 ret = devm_clk_hw_register(&client->dev, &si->clk_dif[i].hw);
336 ret = devm_of_clk_add_hw_provider(&client->dev, si521xx_of_clk_get, si);
338 si521xx_update_config(si);
345 struct si521xx *si = dev_get_drvdata(dev);
347 regcache_cache_only(si->regmap, true);
348 regcache_mark_dirty(si->regmap);
355 struct si521xx *si = dev_get_drvdata(dev);
358 regcache_cache_only(si->regmap, false);
359 ret = regcache_sync(si->regmap);