Lines Matching +full:de +full:- +full:emphasis

1 // SPDX-License-Identifier: GPL-2.0-only
3 * uda134x.c -- UDA134X ALSA SoC Codec driver
76 data |= (reg - UDA134X_STATUS0) << 7; in uda134x_regmap_write()
83 data |= (reg - UDA134X_DATA000) << 6; in uda134x_regmap_write()
92 ret = l3_write(&pd->l3, in uda134x_regmap_write()
95 return -EIO; in uda134x_regmap_write()
102 ret = l3_write(&pd->l3, in uda134x_regmap_write()
105 return -EIO; in uda134x_regmap_write()
115 regmap_update_bits(uda134x->regmap, UDA134X_STATUS0, mask, mask); in uda134x_reset()
117 regmap_update_bits(uda134x->regmap, UDA134X_STATUS0, mask, 0); in uda134x_reset()
122 struct uda134x_priv *uda134x = snd_soc_component_get_drvdata(dai->component); in uda134x_mute()
133 return regmap_update_bits(uda134x->regmap, UDA134X_DATA010, mask, val); in uda134x_mute()
139 struct snd_soc_component *component = dai->component; in uda134x_startup()
143 if (uda134x->master_substream) { in uda134x_startup()
144 master_runtime = uda134x->master_substream->runtime; in uda134x_startup()
147 master_runtime->sample_bits, in uda134x_startup()
148 master_runtime->rate); in uda134x_startup()
150 snd_pcm_hw_constraint_single(substream->runtime, in uda134x_startup()
152 master_runtime->rate); in uda134x_startup()
154 snd_pcm_hw_constraint_single(substream->runtime, in uda134x_startup()
156 master_runtime->sample_bits); in uda134x_startup()
158 uda134x->slave_substream = substream; in uda134x_startup()
160 uda134x->master_substream = substream; in uda134x_startup()
168 struct snd_soc_component *component = dai->component; in uda134x_shutdown()
171 if (uda134x->master_substream == substream) in uda134x_shutdown()
172 uda134x->master_substream = uda134x->slave_substream; in uda134x_shutdown()
174 uda134x->slave_substream = NULL; in uda134x_shutdown()
181 struct snd_soc_component *component = dai->component; in uda134x_hw_params()
185 if (substream == uda134x->slave_substream) { in uda134x_hw_params()
192 uda134x->sysclk, params_rate(params)); in uda134x_hw_params()
195 switch (uda134x->sysclk / params_rate(params)) { in uda134x_hw_params()
206 return -EINVAL; in uda134x_hw_params()
210 uda134x->dai_fmt, params_format(params)); in uda134x_hw_params()
213 switch (uda134x->dai_fmt & SND_SOC_DAIFMT_FORMAT_MASK) { in uda134x_hw_params()
230 return -EINVAL; in uda134x_hw_params()
238 return -EINVAL; in uda134x_hw_params()
241 return regmap_update_bits(uda134x->regmap, UDA134X_STATUS0, in uda134x_hw_params()
248 struct snd_soc_component *component = codec_dai->component; in uda134x_set_dai_sysclk()
259 uda134x->sysclk = freq; in uda134x_set_dai_sysclk()
264 return -EINVAL; in uda134x_set_dai_sysclk()
270 struct snd_soc_component *component = codec_dai->component; in uda134x_set_dai_fmt()
278 return -EINVAL; in uda134x_set_dai_fmt()
284 return -EINVAL; in uda134x_set_dai_fmt()
289 uda134x->dai_fmt = fmt; in uda134x_set_dai_fmt()
298 struct uda134x_platform_data *pd = uda134x->pd; in uda134x_set_bias_level()
306 if (pd->power) { in uda134x_set_bias_level()
307 pd->power(1); in uda134x_set_bias_level()
308 regcache_sync(uda134x->regmap); in uda134x_set_bias_level()
315 if (pd->power) { in uda134x_set_bias_level()
316 pd->power(0); in uda134x_set_bias_level()
317 regcache_mark_dirty(uda134x->regmap); in uda134x_set_bias_level()
345 SOC_SINGLE("Tone Control - Bass", UDA134X_DATA001, 2, 0xF, 0),
346 SOC_SINGLE("Tone Control - Treble", UDA134X_DATA001, 0, 3, 0),
349 SOC_ENUM("PCM Playback De-emphasis", uda134x_mixer_enum[1]),
367 SOC_SINGLE("Tone Control - Bass", UDA134X_DATA001, 2, 0xF, 0),
368 SOC_SINGLE("Tone Control - Treble", UDA134X_DATA001, 0, 3, 0),
371 SOC_ENUM("PCM Playback De-emphasis", uda134x_mixer_enum[1]),
379 SOC_ENUM("PCM Playback De-emphasis", uda134x_mixer_enum[1]),
426 .name = "uda134x-hifi",
451 struct uda134x_platform_data *pd = uda134x->pd; in uda134x_soc_probe()
458 switch (pd->model) { in uda134x_soc_probe()
467 pd->model); in uda134x_soc_probe()
468 return -EINVAL; in uda134x_soc_probe()
471 if (pd->power) in uda134x_soc_probe()
472 pd->power(1); in uda134x_soc_probe()
476 if (pd->model == UDA134X_UDA1341) { in uda134x_soc_probe()
491 switch (pd->model) { in uda134x_soc_probe()
507 __func__, pd->model); in uda134x_soc_probe()
508 return -EINVAL; in uda134x_soc_probe()
546 struct uda134x_platform_data *pd = pdev->dev.platform_data; in uda134x_codec_probe()
551 dev_err(&pdev->dev, "Missing L3 bitbang function\n"); in uda134x_codec_probe()
552 return -ENODEV; in uda134x_codec_probe()
555 uda134x = devm_kzalloc(&pdev->dev, sizeof(*uda134x), GFP_KERNEL); in uda134x_codec_probe()
557 return -ENOMEM; in uda134x_codec_probe()
559 uda134x->pd = pd; in uda134x_codec_probe()
562 if (pd->l3.use_gpios) { in uda134x_codec_probe()
563 ret = l3_set_gpio_ops(&pdev->dev, &uda134x->pd->l3); in uda134x_codec_probe()
568 uda134x->regmap = devm_regmap_init(&pdev->dev, NULL, pd, in uda134x_codec_probe()
570 if (IS_ERR(uda134x->regmap)) in uda134x_codec_probe()
571 return PTR_ERR(uda134x->regmap); in uda134x_codec_probe()
573 return devm_snd_soc_register_component(&pdev->dev, in uda134x_codec_probe()
579 .name = "uda134x-codec",