Lines Matching defs:tscs42xx

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