Lines Matching refs:tas2562

23 #include "tas2562.h"
67 static int tas2562_set_samplerate(struct tas2562_data *tas2562, int samplerate)
130 dev_info(tas2562->dev, "%s, unsupported sample rate, %d\n",
135 snd_soc_component_update_bits(tas2562->component, TAS2562_TDM_CFG0,
137 snd_soc_component_update_bits(tas2562->component, TAS2562_TDM_CFG0,
148 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
204 dev_err(tas2562->dev, "slot width not supported");
213 tas2562->v_sense_slot);
219 tas2562->i_sense_slot);
226 static int tas2562_set_bitwidth(struct tas2562_data *tas2562, int bitwidth)
234 snd_soc_component_update_bits(tas2562->component,
240 snd_soc_component_update_bits(tas2562->component,
246 snd_soc_component_update_bits(tas2562->component,
253 dev_info(tas2562->dev, "Unsupported bitwidth format\n");
257 val = snd_soc_component_read(tas2562->component, TAS2562_PWR_CTRL);
266 ret = snd_soc_component_update_bits(tas2562->component, TAS2562_TDM_CFG5,
276 ret = snd_soc_component_update_bits(tas2562->component, TAS2562_TDM_CFG6,
289 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
292 ret = tas2562_set_bitwidth(tas2562, params_format(params));
294 dev_err(tas2562->dev, "set bitwidth failed, %d\n", ret);
298 ret = tas2562_set_samplerate(tas2562, params_rate(params));
300 dev_err(tas2562->dev, "set sample rate failed, %d\n", ret);
308 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
321 dev_err(tas2562->dev, "ASI format Inverse is not found\n");
329 dev_err(tas2562->dev, "Failed to set RX edge\n");
342 dev_err(tas2562->dev,
355 static int tas2562_update_pwr_ctrl(struct tas2562_data *tas2562)
357 struct snd_soc_component *component = tas2562->component;
361 if (tas2562->dac_powered)
362 val = tas2562->unmuted ?
377 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(dai->component);
379 tas2562->unmuted = !mute;
380 return tas2562_update_pwr_ctrl(tas2562);
385 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
387 tas2562->component = component;
389 if (tas2562->sdz_gpio)
390 gpiod_set_value_cansleep(tas2562->sdz_gpio, 1);
398 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
400 regcache_cache_only(tas2562->regmap, true);
401 regcache_mark_dirty(tas2562->regmap);
403 if (tas2562->sdz_gpio)
404 gpiod_set_value_cansleep(tas2562->sdz_gpio, 0);
411 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
413 if (tas2562->sdz_gpio)
414 gpiod_set_value_cansleep(tas2562->sdz_gpio, 1);
416 regcache_cache_only(tas2562->regmap, false);
418 return regcache_sync(tas2562->regmap);
440 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
445 tas2562->dac_powered = true;
446 ret = tas2562_update_pwr_ctrl(tas2562);
449 tas2562->dac_powered = false;
450 ret = tas2562_update_pwr_ctrl(tas2562);
453 dev_err(tas2562->dev, "Not supported evevt\n");
464 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
466 ucontrol->value.integer.value[0] = tas2562->volume_lvl;
474 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
496 tas2562->volume_lvl = ucontrol->value.integer.value[0];
610 .name = "tas2562-amplifier",
667 static int tas2562_parse_dt(struct tas2562_data *tas2562)
669 struct device *dev = tas2562->dev;
672 tas2562->sdz_gpio = devm_gpiod_get_optional(dev, "shutdown", GPIOD_OUT_HIGH);
673 if (IS_ERR(tas2562->sdz_gpio)) {
674 if (PTR_ERR(tas2562->sdz_gpio) == -EPROBE_DEFER)
677 tas2562->sdz_gpio = NULL;
684 if (tas2562->sdz_gpio == NULL) {
685 tas2562->sdz_gpio = devm_gpiod_get_optional(dev, "shut-down",
687 if (IS_ERR(tas2562->sdz_gpio))
688 if (PTR_ERR(tas2562->sdz_gpio) == -EPROBE_DEFER)
691 tas2562->sdz_gpio = NULL;
694 if (tas2562->model_id == TAS2110)
698 &tas2562->i_sense_slot);
702 tas2562->i_sense_slot = 0;
707 &tas2562->v_sense_slot);
711 tas2562->v_sense_slot = 2;
714 if (tas2562->v_sense_slot < tas2562->i_sense_slot) {
723 { "tas2562", TAS2562 },
772 { .compatible = "ti,tas2562", },
783 .name = "tas2562",