Lines Matching +full:adc +full:- +full:freq

1 // SPDX-License-Identifier: GPL-2.0-only
3 // uda1342.c -- UDA1342 ALSA SoC Codec driver
50 struct snd_soc_component *component = dai->component; in uda1342_mute()
60 return regmap_update_bits(uda1342->regmap, 0x10, mask, val); in uda1342_mute()
66 struct snd_soc_component *component = dai->component; in uda1342_startup()
70 if (uda1342->provider_substream) { in uda1342_startup()
71 provider_runtime = uda1342->provider_substream->runtime; in uda1342_startup()
73 snd_pcm_hw_constraint_single(substream->runtime, in uda1342_startup()
74 SNDRV_PCM_HW_PARAM_RATE, provider_runtime->rate); in uda1342_startup()
75 snd_pcm_hw_constraint_single(substream->runtime, in uda1342_startup()
77 provider_runtime->sample_bits); in uda1342_startup()
79 uda1342->consumer_substream = substream; in uda1342_startup()
81 uda1342->provider_substream = substream; in uda1342_startup()
90 struct snd_soc_component *component = dai->component; in uda1342_shutdown()
93 if (uda1342->provider_substream == substream) in uda1342_shutdown()
94 uda1342->provider_substream = uda1342->consumer_substream; in uda1342_shutdown()
96 uda1342->consumer_substream = NULL; in uda1342_shutdown()
102 struct snd_soc_component *component = dai->component; in uda1342_hw_params()
104 struct device *dev = &uda1342->i2c->dev; in uda1342_hw_params()
107 if (substream == uda1342->consumer_substream) in uda1342_hw_params()
111 switch (uda1342->sysclk / params_rate(params)) { in uda1342_hw_params()
122 return -EINVAL; in uda1342_hw_params()
126 switch (uda1342->dai_fmt & SND_SOC_DAIFMT_FORMAT_MASK) { in uda1342_hw_params()
142 return -EINVAL; in uda1342_hw_params()
150 return -EINVAL; in uda1342_hw_params()
153 return regmap_update_bits(uda1342->regmap, 0x0, in uda1342_hw_params()
158 int clk_id, unsigned int freq, int dir) in uda1342_set_dai_sysclk() argument
160 struct snd_soc_component *component = codec_dai->component; in uda1342_set_dai_sysclk()
162 struct device *dev = &uda1342->i2c->dev; in uda1342_set_dai_sysclk()
170 if ((freq >= (256 * 8000)) && (freq <= (512 * 48000))) { in uda1342_set_dai_sysclk()
171 uda1342->sysclk = freq; in uda1342_set_dai_sysclk()
177 return -EINVAL; in uda1342_set_dai_sysclk()
182 struct snd_soc_component *component = codec_dai->component; in uda1342_set_dai_fmt()
187 dev_err(&uda1342->i2c->dev, "unsupported consumer mode.\n"); in uda1342_set_dai_fmt()
188 return -EINVAL; in uda1342_set_dai_fmt()
193 uda1342->dai_fmt = fmt; in uda1342_set_dai_fmt()
211 SND_SOC_DAPM_ADC("ADC", "Capture", 0, 9, 0),
218 { "ADC", NULL, "VINL1" },
219 { "ADC", NULL, "VINR1" },
220 { "ADC", NULL, "VINL2" },
221 { "ADC", NULL, "VINR2" },
236 .name = "uda1342-hifi",
283 uda1342 = devm_kzalloc(&i2c->dev, sizeof(*uda1342), GFP_KERNEL); in uda1342_i2c_probe()
285 return -ENOMEM; in uda1342_i2c_probe()
287 uda1342->regmap = devm_regmap_init_i2c(i2c, &uda1342_regmap); in uda1342_i2c_probe()
288 if (IS_ERR(uda1342->regmap)) in uda1342_i2c_probe()
289 return PTR_ERR(uda1342->regmap); in uda1342_i2c_probe()
292 uda1342->i2c = i2c; in uda1342_i2c_probe()
294 return devm_snd_soc_register_component(&i2c->dev, in uda1342_i2c_probe()
303 regcache_cache_only(uda1342->regmap, true); in uda1342_suspend()
312 regcache_mark_dirty(uda1342->regmap); in uda1342_resume()
313 regcache_sync(uda1342->regmap); in uda1342_resume()