Lines Matching defs:tas2562

23 #include "tas2562.h"
66 static int tas2562_set_samplerate(struct tas2562_data *tas2562, int samplerate)
129 dev_info(tas2562->dev, "%s, unsupported sample rate, %d\n",
134 snd_soc_component_update_bits(tas2562->component, TAS2562_TDM_CFG0,
136 snd_soc_component_update_bits(tas2562->component, TAS2562_TDM_CFG0,
147 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
203 dev_err(tas2562->dev, "slot width not supported");
212 tas2562->v_sense_slot);
218 tas2562->i_sense_slot);
225 static int tas2562_set_bitwidth(struct tas2562_data *tas2562, int bitwidth)
233 snd_soc_component_update_bits(tas2562->component,
239 snd_soc_component_update_bits(tas2562->component,
245 snd_soc_component_update_bits(tas2562->component,
252 dev_info(tas2562->dev, "Unsupported bitwidth format\n");
256 val = snd_soc_component_read(tas2562->component, TAS2562_PWR_CTRL);
265 ret = snd_soc_component_update_bits(tas2562->component, TAS2562_TDM_CFG5,
275 ret = snd_soc_component_update_bits(tas2562->component, TAS2562_TDM_CFG6,
288 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
291 ret = tas2562_set_bitwidth(tas2562, params_format(params));
293 dev_err(tas2562->dev, "set bitwidth failed, %d\n", ret);
297 ret = tas2562_set_samplerate(tas2562, params_rate(params));
299 dev_err(tas2562->dev, "set sample rate failed, %d\n", ret);
307 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
320 dev_err(tas2562->dev, "ASI format Inverse is not found\n");
328 dev_err(tas2562->dev, "Failed to set RX edge\n");
341 dev_err(tas2562->dev,
354 static int tas2562_update_pwr_ctrl(struct tas2562_data *tas2562)
356 struct snd_soc_component *component = tas2562->component;
360 if (tas2562->dac_powered)
361 val = tas2562->unmuted ?
376 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(dai->component);
378 tas2562->unmuted = !mute;
379 return tas2562_update_pwr_ctrl(tas2562);
384 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
386 tas2562->component = component;
388 if (tas2562->sdz_gpio)
389 gpiod_set_value_cansleep(tas2562->sdz_gpio, 1);
397 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
399 regcache_cache_only(tas2562->regmap, true);
400 regcache_mark_dirty(tas2562->regmap);
402 if (tas2562->sdz_gpio)
403 gpiod_set_value_cansleep(tas2562->sdz_gpio, 0);
410 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
412 if (tas2562->sdz_gpio)
413 gpiod_set_value_cansleep(tas2562->sdz_gpio, 1);
415 regcache_cache_only(tas2562->regmap, false);
417 return regcache_sync(tas2562->regmap);
439 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
444 tas2562->dac_powered = true;
445 ret = tas2562_update_pwr_ctrl(tas2562);
448 tas2562->dac_powered = false;
449 ret = tas2562_update_pwr_ctrl(tas2562);
452 dev_err(tas2562->dev, "Not supported evevt\n");
463 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
465 ucontrol->value.integer.value[0] = tas2562->volume_lvl;
473 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
495 tas2562->volume_lvl = ucontrol->value.integer.value[0];
609 .name = "tas2562-amplifier",
666 static int tas2562_parse_dt(struct tas2562_data *tas2562)
668 struct device *dev = tas2562->dev;
671 tas2562->sdz_gpio = devm_gpiod_get_optional(dev, "shutdown", GPIOD_OUT_HIGH);
672 if (IS_ERR(tas2562->sdz_gpio)) {
673 if (PTR_ERR(tas2562->sdz_gpio) == -EPROBE_DEFER)
676 tas2562->sdz_gpio = NULL;
683 if (tas2562->sdz_gpio == NULL) {
684 tas2562->sdz_gpio = devm_gpiod_get_optional(dev, "shut-down",
686 if (IS_ERR(tas2562->sdz_gpio))
687 if (PTR_ERR(tas2562->sdz_gpio) == -EPROBE_DEFER)
690 tas2562->sdz_gpio = NULL;
693 if (tas2562->model_id == TAS2110)
697 &tas2562->i_sense_slot);
701 tas2562->i_sense_slot = 0;
706 &tas2562->v_sense_slot);
710 tas2562->v_sense_slot = 2;
713 if (tas2562->v_sense_slot < tas2562->i_sense_slot) {
722 { "tas2562", TAS2562 },
770 { .compatible = "ti,tas2562", },
780 .name = "tas2562",