Lines Matching refs:tscs42xx

31 struct tscs42xx {  struct
143 struct tscs42xx *tscs42xx = snd_soc_component_get_drvdata(component); in write_coeff_ram() local
168 ret = regmap_write(tscs42xx->regmap, R_DACCRADDR, addr); in write_coeff_ram()
175 ret = regmap_bulk_write(tscs42xx->regmap, R_DACCRWRL, in write_coeff_ram()
190 struct tscs42xx *tscs42xx = snd_soc_component_get_drvdata(component); in power_up_audio_plls() local
196 freq_out = sample_rate_to_pll_freq_out(tscs42xx->samplerate); in power_up_audio_plls()
213 mutex_lock(&tscs42xx->pll_lock); in power_up_audio_plls()
229 mutex_unlock(&tscs42xx->pll_lock); in power_up_audio_plls()
236 struct tscs42xx *tscs42xx = snd_soc_component_get_drvdata(component); in power_down_audio_plls() local
239 mutex_lock(&tscs42xx->pll_lock); in power_down_audio_plls()
258 mutex_unlock(&tscs42xx->pll_lock); in power_down_audio_plls()
268 struct tscs42xx *tscs42xx = snd_soc_component_get_drvdata(component); in coeff_ram_get() local
273 mutex_lock(&tscs42xx->coeff_ram_lock); in coeff_ram_get()
276 &tscs42xx->coeff_ram[ctl->addr * COEFF_SIZE], params->max); in coeff_ram_get()
278 mutex_unlock(&tscs42xx->coeff_ram_lock); in coeff_ram_get()
288 struct tscs42xx *tscs42xx = snd_soc_component_get_drvdata(component); in coeff_ram_put() local
295 mutex_lock(&tscs42xx->coeff_ram_lock); in coeff_ram_put()
297 tscs42xx->coeff_ram_synced = false; in coeff_ram_put()
299 memcpy(&tscs42xx->coeff_ram[ctl->addr * COEFF_SIZE], in coeff_ram_put()
302 mutex_lock(&tscs42xx->pll_lock); in coeff_ram_put()
305 ret = write_coeff_ram(component, tscs42xx->coeff_ram, in coeff_ram_put()
312 tscs42xx->coeff_ram_synced = true; in coeff_ram_put()
317 mutex_unlock(&tscs42xx->pll_lock); in coeff_ram_put()
319 mutex_unlock(&tscs42xx->coeff_ram_lock); in coeff_ram_put()
387 struct tscs42xx *tscs42xx = snd_soc_component_get_drvdata(component); in dac_event() local
390 mutex_lock(&tscs42xx->coeff_ram_lock); in dac_event()
392 if (!tscs42xx->coeff_ram_synced) { in dac_event()
393 ret = write_coeff_ram(component, tscs42xx->coeff_ram, 0x00, in dac_event()
397 tscs42xx->coeff_ram_synced = true; in dac_event()
402 mutex_unlock(&tscs42xx->coeff_ram_lock); in dac_event()
851 struct tscs42xx *tscs42xx = snd_soc_component_get_drvdata(component); in setup_sample_rate() local
931 mutex_lock(&tscs42xx->audio_params_lock); in setup_sample_rate()
933 tscs42xx->samplerate = rate; in setup_sample_rate()
935 mutex_unlock(&tscs42xx->audio_params_lock); in setup_sample_rate()
1224 struct tscs42xx *tscs42xx = snd_soc_component_get_drvdata(component); in tscs42xx_set_dai_bclk_ratio() local
1258 mutex_lock(&tscs42xx->audio_params_lock); in tscs42xx_set_dai_bclk_ratio()
1260 tscs42xx->bclk_ratio = ratio; in tscs42xx_set_dai_bclk_ratio()
1262 mutex_unlock(&tscs42xx->audio_params_lock); in tscs42xx_set_dai_bclk_ratio()
1274 static int part_is_valid(struct tscs42xx *tscs42xx) in part_is_valid() argument
1280 ret = regmap_read(tscs42xx->regmap, R_DEVIDH, &reg); in part_is_valid()
1285 ret = regmap_read(tscs42xx->regmap, R_DEVIDL, &reg); in part_is_valid()
1302 struct tscs42xx *tscs42xx = snd_soc_component_get_drvdata(component); in set_sysclk() local
1306 switch (tscs42xx->sysclk_src_id) { in set_sysclk()
1334 freq = clk_get_rate(tscs42xx->sysclk); in set_sysclk()
1363 static inline void init_coeff_ram_cache(struct tscs42xx *tscs42xx) in init_coeff_ram_cache() argument
1372 u8 *coeff_ram = tscs42xx->coeff_ram; in init_coeff_ram_cache()
1413 struct tscs42xx *tscs42xx; in tscs42xx_i2c_probe() local
1417 tscs42xx = devm_kzalloc(&i2c->dev, sizeof(*tscs42xx), GFP_KERNEL); in tscs42xx_i2c_probe()
1418 if (!tscs42xx) { in tscs42xx_i2c_probe()
1424 i2c_set_clientdata(i2c, tscs42xx); in tscs42xx_i2c_probe()
1427 tscs42xx->sysclk = devm_clk_get(&i2c->dev, src_names[src]); in tscs42xx_i2c_probe()
1428 if (!IS_ERR(tscs42xx->sysclk)) { in tscs42xx_i2c_probe()
1430 } else if (PTR_ERR(tscs42xx->sysclk) != -ENOENT) { in tscs42xx_i2c_probe()
1431 ret = PTR_ERR(tscs42xx->sysclk); in tscs42xx_i2c_probe()
1442 tscs42xx->sysclk_src_id = src; in tscs42xx_i2c_probe()
1444 tscs42xx->regmap = devm_regmap_init_i2c(i2c, &tscs42xx_regmap); in tscs42xx_i2c_probe()
1445 if (IS_ERR(tscs42xx->regmap)) { in tscs42xx_i2c_probe()
1446 ret = PTR_ERR(tscs42xx->regmap); in tscs42xx_i2c_probe()
1451 init_coeff_ram_cache(tscs42xx); in tscs42xx_i2c_probe()
1453 ret = part_is_valid(tscs42xx); in tscs42xx_i2c_probe()
1460 ret = regmap_write(tscs42xx->regmap, R_RESET, RV_RESET_ENABLE); in tscs42xx_i2c_probe()
1466 ret = regmap_register_patch(tscs42xx->regmap, tscs42xx_patch, in tscs42xx_i2c_probe()
1473 mutex_init(&tscs42xx->audio_params_lock); in tscs42xx_i2c_probe()
1474 mutex_init(&tscs42xx->coeff_ram_lock); in tscs42xx_i2c_probe()
1475 mutex_init(&tscs42xx->pll_lock); in tscs42xx_i2c_probe()