Lines Matching refs:tas2562
24 #include "tas2562.h"
69 struct tas2562_data *tas2562 =
91 dev_err(tas2562->dev,
99 static int tas2562_set_samplerate(struct tas2562_data *tas2562, int samplerate)
162 dev_info(tas2562->dev, "%s, unsupported sample rate, %d\n",
167 snd_soc_component_update_bits(tas2562->component, TAS2562_TDM_CFG0,
169 snd_soc_component_update_bits(tas2562->component, TAS2562_TDM_CFG0,
180 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
237 dev_err(tas2562->dev, "slot width not supported");
246 tas2562->v_sense_slot);
252 tas2562->i_sense_slot);
259 static int tas2562_set_bitwidth(struct tas2562_data *tas2562, int bitwidth)
267 snd_soc_component_update_bits(tas2562->component,
273 snd_soc_component_update_bits(tas2562->component,
279 snd_soc_component_update_bits(tas2562->component,
286 dev_info(tas2562->dev, "Unsupported bitwidth format\n");
290 val = snd_soc_component_read(tas2562->component, TAS2562_PWR_CTRL);
299 ret = snd_soc_component_update_bits(tas2562->component, TAS2562_TDM_CFG5,
309 ret = snd_soc_component_update_bits(tas2562->component, TAS2562_TDM_CFG6,
322 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
325 ret = tas2562_set_bitwidth(tas2562, params_format(params));
327 dev_err(tas2562->dev, "set bitwidth failed, %d\n", ret);
331 ret = tas2562_set_samplerate(tas2562, params_rate(params));
333 dev_err(tas2562->dev, "set sample rate failed, %d\n", ret);
341 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
354 dev_err(tas2562->dev, "ASI format Inverse is not found\n");
362 dev_err(tas2562->dev, "Failed to set RX edge\n");
375 dev_err(tas2562->dev,
399 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
402 tas2562->component = component;
404 if (tas2562->sdz_gpio)
405 gpiod_set_value_cansleep(tas2562->sdz_gpio, 1);
418 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
420 regcache_cache_only(tas2562->regmap, true);
421 regcache_mark_dirty(tas2562->regmap);
423 if (tas2562->sdz_gpio)
424 gpiod_set_value_cansleep(tas2562->sdz_gpio, 0);
431 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
433 if (tas2562->sdz_gpio)
434 gpiod_set_value_cansleep(tas2562->sdz_gpio, 1);
436 regcache_cache_only(tas2562->regmap, false);
438 return regcache_sync(tas2562->regmap);
460 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
481 dev_err(tas2562->dev, "Not supported evevt\n");
496 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
498 ucontrol->value.integer.value[0] = tas2562->volume_lvl;
506 struct tas2562_data *tas2562 = snd_soc_component_get_drvdata(component);
528 tas2562->volume_lvl = ucontrol->value.integer.value[0];
646 .name = "tas2562-amplifier",
703 static int tas2562_parse_dt(struct tas2562_data *tas2562)
705 struct device *dev = tas2562->dev;
708 tas2562->sdz_gpio = devm_gpiod_get_optional(dev, "shutdown", GPIOD_OUT_HIGH);
709 if (IS_ERR(tas2562->sdz_gpio)) {
710 if (PTR_ERR(tas2562->sdz_gpio) == -EPROBE_DEFER)
713 tas2562->sdz_gpio = NULL;
720 if (tas2562->sdz_gpio == NULL) {
721 tas2562->sdz_gpio = devm_gpiod_get_optional(dev, "shut-down",
723 if (IS_ERR(tas2562->sdz_gpio))
724 if (PTR_ERR(tas2562->sdz_gpio) == -EPROBE_DEFER)
727 tas2562->sdz_gpio = NULL;
730 if (tas2562->model_id == TAS2110)
734 &tas2562->i_sense_slot);
738 tas2562->i_sense_slot = 0;
743 &tas2562->v_sense_slot);
747 tas2562->v_sense_slot = 2;
750 if (tas2562->v_sense_slot < tas2562->i_sense_slot) {
797 { "tas2562", TAS2562 },
806 { .compatible = "ti,tas2562", },
816 .name = "tas2562",