Lines Matching +full:playback +full:- +full:channels
1 // SPDX-License-Identifier: GPL-2.0-or-later
30 * AD193X volume/mute/de-emphasis etc. controls
37 static const DECLARE_TLV_DB_MINMAX(adau193x_tlv, -9563, 0);
67 /* DAC de-emphasis */
68 SOC_ENUM("Playback Deemphasis", ad193x_deemp_enum),
78 /* ADC high-pass filter */
84 SND_SOC_DAPM_DAC("DAC", "Playback", SND_SOC_NOPM, 0, 0),
105 struct snd_soc_component *component = snd_soc_dapm_to_component(source->dapm); in ad193x_check_pll()
108 return !!ad193x->sysclk; in ad193x_check_pll()
131 switch (ad193x->type) { in ad193x_has_adc()
148 struct ad193x_priv *ad193x = snd_soc_component_get_drvdata(dai->component); in ad193x_mute()
151 regmap_update_bits(ad193x->regmap, AD193X_DAC_CTRL2, in ad193x_mute()
155 regmap_update_bits(ad193x->regmap, AD193X_DAC_CTRL2, in ad193x_mute()
164 struct ad193x_priv *ad193x = snd_soc_component_get_drvdata(dai->component); in ad193x_set_tdm_slot()
165 unsigned int channels; in ad193x_set_tdm_slot() local
169 channels = AD193X_2_CHANNELS; in ad193x_set_tdm_slot()
172 channels = AD193X_4_CHANNELS; in ad193x_set_tdm_slot()
175 channels = AD193X_8_CHANNELS; in ad193x_set_tdm_slot()
178 channels = AD193X_16_CHANNELS; in ad193x_set_tdm_slot()
181 return -EINVAL; in ad193x_set_tdm_slot()
184 regmap_update_bits(ad193x->regmap, AD193X_DAC_CTRL1, in ad193x_set_tdm_slot()
185 AD193X_DAC_CHAN_MASK, channels << AD193X_DAC_CHAN_SHFT); in ad193x_set_tdm_slot()
187 regmap_update_bits(ad193x->regmap, AD193X_ADC_CTRL2, in ad193x_set_tdm_slot()
189 channels << AD193X_ADC_CHAN_SHFT); in ad193x_set_tdm_slot()
197 struct ad193x_priv *ad193x = snd_soc_component_get_drvdata(codec_dai->component); in ad193x_set_dai_fmt()
218 return -EINVAL; in ad193x_set_dai_fmt()
239 return -EINVAL; in ad193x_set_dai_fmt()
264 return -EINVAL; in ad193x_set_dai_fmt()
268 regmap_update_bits(ad193x->regmap, AD193X_ADC_CTRL1, in ad193x_set_dai_fmt()
270 regmap_update_bits(ad193x->regmap, AD193X_ADC_CTRL2, in ad193x_set_dai_fmt()
273 regmap_update_bits(ad193x->regmap, AD193X_DAC_CTRL0, in ad193x_set_dai_fmt()
275 regmap_update_bits(ad193x->regmap, AD193X_DAC_CTRL1, in ad193x_set_dai_fmt()
284 struct snd_soc_component *component = codec_dai->component; in ad193x_set_dai_sysclk()
291 return -EINVAL; in ad193x_set_dai_sysclk()
293 regmap_update_bits(ad193x->regmap, AD193X_PLL_CLK_CTRL1, in ad193x_set_dai_sysclk()
306 ad193x->sysclk = freq; in ad193x_set_dai_sysclk()
309 return -EINVAL; in ad193x_set_dai_sysclk()
317 struct snd_soc_component *component = dai->component; in ad193x_hw_params()
334 switch (ad193x->sysclk) { in ad193x_hw_params()
349 regmap_update_bits(ad193x->regmap, AD193X_PLL_CLK_CTRL0, in ad193x_hw_params()
352 regmap_update_bits(ad193x->regmap, AD193X_DAC_CTRL2, in ad193x_hw_params()
357 regmap_update_bits(ad193x->regmap, AD193X_ADC_CTRL1, in ad193x_hw_params()
366 return snd_pcm_hw_constraint_list(substream->runtime, 0, in ad193x_startup()
383 .name = "ad193x-hifi",
384 .playback = {
385 .stream_name = "Playback",
405 .name = "ad193x-hifi",
406 .playback = {
407 .stream_name = "Playback",
422 { 1, 0x04 }, /* PLL_CLK_CTRL1: no on-chip Vref */ in ad193x_reg_default_init()
425 { 4, 0x1A }, /* DAC_CTRL2: 48kHz de-emphasis, unmute dac */ in ad193x_reg_default_init()
426 { 5, 0x00 }, /* DAC_CHNL_MUTE: unmute DAC channels */ in ad193x_reg_default_init()
437 { 14, 0x03 }, /* ADC_CTRL0: high-pass filter enable */ in ad193x_reg_default_init()
442 regmap_multi_reg_write(ad193x->regmap, reg_init, ARRAY_SIZE(reg_init)); in ad193x_reg_default_init()
445 regmap_multi_reg_write(ad193x->regmap, reg_adc_init, in ad193x_reg_default_init()
504 .max_register = AD193X_NUM_REGS - 1,
518 return -ENOMEM; in ad193x_probe()
520 ad193x->regmap = regmap; in ad193x_probe()
521 ad193x->type = type; in ad193x_probe()