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

1 // SPDX-License-Identifier: GPL-2.0
17 unsigned int freq, int dir) in pcm3060_set_sysclk() argument
19 struct snd_soc_component *comp = dai->component; in pcm3060_set_sysclk()
25 dev_err(comp->dev, "unsupported sysclock dir: %d\n", dir); in pcm3060_set_sysclk()
26 return -EINVAL; in pcm3060_set_sysclk()
35 val = (dai->id == PCM3060_DAI_ID_DAC ? PCM3060_REG_CSEL : 0); in pcm3060_set_sysclk()
39 val = (dai->id == PCM3060_DAI_ID_DAC ? 0 : PCM3060_REG_CSEL); in pcm3060_set_sysclk()
43 dev_err(comp->dev, "unsupported sysclock id: %d\n", clk_id); in pcm3060_set_sysclk()
44 return -EINVAL; in pcm3060_set_sysclk()
47 if (dai->id == PCM3060_DAI_ID_DAC) in pcm3060_set_sysclk()
52 regmap_update_bits(priv->regmap, reg, PCM3060_REG_CSEL, val); in pcm3060_set_sysclk()
54 priv->dai[dai->id].sclk_freq = freq; in pcm3060_set_sysclk()
61 struct snd_soc_component *comp = dai->component; in pcm3060_set_fmt()
67 dev_err(comp->dev, "unsupported DAI polarity: 0x%x\n", fmt); in pcm3060_set_fmt()
68 return -EINVAL; in pcm3060_set_fmt()
73 priv->dai[dai->id].is_provider = true; in pcm3060_set_fmt()
76 priv->dai[dai->id].is_provider = false; in pcm3060_set_fmt()
79 dev_err(comp->dev, "unsupported DAI mode: 0x%x\n", fmt); in pcm3060_set_fmt()
80 return -EINVAL; in pcm3060_set_fmt()
94 dev_err(comp->dev, "unsupported DAI format: 0x%x\n", fmt); in pcm3060_set_fmt()
95 return -EINVAL; in pcm3060_set_fmt()
98 if (dai->id == PCM3060_DAI_ID_DAC) in pcm3060_set_fmt()
103 regmap_update_bits(priv->regmap, reg, PCM3060_REG_MASK_FMT, val); in pcm3060_set_fmt()
112 struct snd_soc_component *comp = dai->component; in pcm3060_hw_params()
119 if (!priv->dai[dai->id].is_provider) { in pcm3060_hw_params()
126 dev_err(comp->dev, "rate is not configured\n"); in pcm3060_hw_params()
127 return -EINVAL; in pcm3060_hw_params()
130 ratio = priv->dai[dai->id].sclk_freq / rate; in pcm3060_hw_params()
152 dev_err(comp->dev, "unsupported ratio: %d\n", ratio); in pcm3060_hw_params()
153 return -EINVAL; in pcm3060_hw_params()
157 if (dai->id == PCM3060_DAI_ID_DAC) in pcm3060_hw_params()
162 regmap_update_bits(priv->regmap, reg, PCM3060_REG_MASK_MS, val); in pcm3060_hw_params()
182 .name = "pcm3060-dac",
194 .name = "pcm3060-adc",
209 static DECLARE_TLV_DB_SCALE(pcm3060_dapm_tlv, -10050, 50, 1);
237 SND_SOC_DAPM_ADC("ADC", "Capture", PCM3060_REG64,
245 { "ADC", NULL, "INL" },
246 { "ADC", NULL, "INR" },
310 priv->out_se = of_property_read_bool(np, "ti,out-single-ended"); in pcm3060_parse_dt()
319 rc = regmap_update_bits(priv->regmap, PCM3060_REG64, in pcm3060_probe()
326 if (dev->of_node) in pcm3060_probe()
327 pcm3060_parse_dt(dev->of_node, priv); in pcm3060_probe()
329 if (priv->out_se) in pcm3060_probe()
330 regmap_update_bits(priv->regmap, PCM3060_REG64, in pcm3060_probe()