Lines Matching refs:tas2562

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