Lines Matching refs:codec
194 static int da7213_get_alc_data(struct snd_soc_codec *codec, u8 reg_val) in da7213_get_alc_data() argument
203 snd_soc_write(codec, DA7213_ALC_CIC_OP_LVL_CTRL, reg_val); in da7213_get_alc_data()
206 snd_soc_write(codec, DA7213_ALC_CIC_OP_LVL_CTRL, in da7213_get_alc_data()
208 mid_data = snd_soc_read(codec, DA7213_ALC_CIC_OP_LVL_DATA); in da7213_get_alc_data()
211 snd_soc_write(codec, DA7213_ALC_CIC_OP_LVL_CTRL, in da7213_get_alc_data()
213 top_data = snd_soc_read(codec, DA7213_ALC_CIC_OP_LVL_DATA); in da7213_get_alc_data()
221 static void da7213_alc_calib_man(struct snd_soc_codec *codec) in da7213_alc_calib_man() argument
228 avg_left_data = da7213_get_alc_data(codec, in da7213_alc_calib_man()
231 avg_right_data = da7213_get_alc_data(codec, in da7213_alc_calib_man()
239 snd_soc_write(codec, DA7213_ALC_OFFSET_MAN_M_L, reg_val); in da7213_alc_calib_man()
241 snd_soc_write(codec, DA7213_ALC_OFFSET_MAN_U_L, reg_val); in da7213_alc_calib_man()
244 snd_soc_write(codec, DA7213_ALC_OFFSET_MAN_M_R, reg_val); in da7213_alc_calib_man()
246 snd_soc_write(codec, DA7213_ALC_OFFSET_MAN_U_R, reg_val); in da7213_alc_calib_man()
249 snd_soc_update_bits(codec, DA7213_ALC_CTRL1, in da7213_alc_calib_man()
254 static void da7213_alc_calib_auto(struct snd_soc_codec *codec) in da7213_alc_calib_auto() argument
259 snd_soc_update_bits(codec, DA7213_ALC_CTRL1, DA7213_ALC_AUTO_CALIB_EN, in da7213_alc_calib_auto()
262 alc_ctrl1 = snd_soc_read(codec, DA7213_ALC_CTRL1); in da7213_alc_calib_auto()
267 dev_warn(codec->dev, in da7213_alc_calib_auto()
269 snd_soc_update_bits(codec, DA7213_ALC_CTRL1, in da7213_alc_calib_auto()
274 snd_soc_update_bits(codec, DA7213_ALC_CTRL1, in da7213_alc_calib_auto()
281 static void da7213_alc_calib(struct snd_soc_codec *codec) in da7213_alc_calib() argument
283 struct da7213_priv *da7213 = snd_soc_codec_get_drvdata(codec); in da7213_alc_calib()
289 adc_l_ctrl = snd_soc_read(codec, DA7213_ADC_L_CTRL); in da7213_alc_calib()
290 adc_r_ctrl = snd_soc_read(codec, DA7213_ADC_R_CTRL); in da7213_alc_calib()
293 mixin_l_sel = snd_soc_read(codec, DA7213_MIXIN_L_SELECT); in da7213_alc_calib()
294 mixin_r_sel = snd_soc_read(codec, DA7213_MIXIN_R_SELECT); in da7213_alc_calib()
297 mic_1_ctrl = snd_soc_read(codec, DA7213_MIC_1_CTRL); in da7213_alc_calib()
298 mic_2_ctrl = snd_soc_read(codec, DA7213_MIC_2_CTRL); in da7213_alc_calib()
301 snd_soc_update_bits(codec, DA7213_ADC_L_CTRL, DA7213_ADC_EN, in da7213_alc_calib()
303 snd_soc_update_bits(codec, DA7213_ADC_R_CTRL, DA7213_ADC_EN, in da7213_alc_calib()
307 snd_soc_update_bits(codec, DA7213_MIXIN_L_SELECT, in da7213_alc_calib()
312 snd_soc_update_bits(codec, DA7213_MIXIN_R_SELECT, in da7213_alc_calib()
319 snd_soc_update_bits(codec, DA7213_MIC_1_CTRL, DA7213_MUTE_EN, in da7213_alc_calib()
321 snd_soc_update_bits(codec, DA7213_MIC_2_CTRL, DA7213_MUTE_EN, in da7213_alc_calib()
326 da7213_alc_calib_auto(codec); in da7213_alc_calib()
328 da7213_alc_calib_man(codec); in da7213_alc_calib()
331 snd_soc_write(codec, DA7213_MIXIN_L_SELECT, mixin_l_sel); in da7213_alc_calib()
332 snd_soc_write(codec, DA7213_MIXIN_R_SELECT, mixin_r_sel); in da7213_alc_calib()
335 snd_soc_write(codec, DA7213_ADC_L_CTRL, adc_l_ctrl); in da7213_alc_calib()
336 snd_soc_write(codec, DA7213_ADC_R_CTRL, adc_r_ctrl); in da7213_alc_calib()
339 snd_soc_write(codec, DA7213_MIC_1_CTRL, mic_1_ctrl); in da7213_alc_calib()
340 snd_soc_write(codec, DA7213_MIC_2_CTRL, mic_2_ctrl); in da7213_alc_calib()
346 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in da7213_put_mixin_gain() local
347 struct da7213_priv *da7213 = snd_soc_codec_get_drvdata(codec); in da7213_put_mixin_gain()
354 da7213_alc_calib(codec); in da7213_put_mixin_gain()
362 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in da7213_put_alc_sw() local
363 struct da7213_priv *da7213 = snd_soc_codec_get_drvdata(codec); in da7213_put_alc_sw()
369 da7213_alc_calib(codec); in da7213_put_alc_sw()
1072 struct snd_soc_codec *codec = dai->codec; in da7213_hw_params() local
1130 snd_soc_update_bits(codec, DA7213_DAI_CTRL, DA7213_DAI_WORD_LENGTH_MASK, in da7213_hw_params()
1132 snd_soc_write(codec, DA7213_SR, fs); in da7213_hw_params()
1139 struct snd_soc_codec *codec = codec_dai->codec; in da7213_set_dai_fmt() local
1140 struct da7213_priv *da7213 = snd_soc_codec_get_drvdata(codec); in da7213_set_dai_fmt()
1192 snd_soc_write(codec, DA7213_DAI_CLK_MODE, dai_clk_mode); in da7213_set_dai_fmt()
1193 snd_soc_update_bits(codec, DA7213_DAI_CTRL, DA7213_DAI_FORMAT_MASK, in da7213_set_dai_fmt()
1201 struct snd_soc_codec *codec = dai->codec; in da7213_mute() local
1204 snd_soc_update_bits(codec, DA7213_DAC_L_CTRL, in da7213_mute()
1206 snd_soc_update_bits(codec, DA7213_DAC_R_CTRL, in da7213_mute()
1209 snd_soc_update_bits(codec, DA7213_DAC_L_CTRL, in da7213_mute()
1211 snd_soc_update_bits(codec, DA7213_DAC_R_CTRL, in da7213_mute()
1224 struct snd_soc_codec *codec = codec_dai->codec; in da7213_set_dai_sysclk() local
1225 struct da7213_priv *da7213 = snd_soc_codec_get_drvdata(codec); in da7213_set_dai_sysclk()
1270 struct snd_soc_codec *codec = codec_dai->codec; in da7213_set_dai_pll() local
1271 struct da7213_priv *da7213 = snd_soc_codec_get_drvdata(codec); in da7213_set_dai_pll()
1279 snd_soc_write(codec, DA7213_PLL_CTRL, 0); in da7213_set_dai_pll()
1316 snd_soc_write(codec, DA7213_PLL_CTRL, pll_ctrl); in da7213_set_dai_pll()
1341 snd_soc_write(codec, DA7213_PLL_FRAC_TOP, pll_frac_top); in da7213_set_dai_pll()
1342 snd_soc_write(codec, DA7213_PLL_FRAC_BOT, pll_frac_bot); in da7213_set_dai_pll()
1343 snd_soc_write(codec, DA7213_PLL_INTEGER, pll_integer); in da7213_set_dai_pll()
1347 snd_soc_write(codec, DA7213_PLL_CTRL, pll_ctrl); in da7213_set_dai_pll()
1388 static int da7213_set_bias_level(struct snd_soc_codec *codec, in da7213_set_bias_level() argument
1391 struct da7213_priv *da7213 = snd_soc_codec_get_drvdata(codec); in da7213_set_bias_level()
1399 if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) { in da7213_set_bias_level()
1404 dev_err(codec->dev, in da7213_set_bias_level()
1411 snd_soc_update_bits(codec, DA7213_REFERENCES, in da7213_set_bias_level()
1418 snd_soc_update_bits(codec, DA7213_REFERENCES, in da7213_set_bias_level()
1437 da7213_of_micbias_lvl(struct snd_soc_codec *codec, u32 val) in da7213_of_micbias_lvl() argument
1449 dev_warn(codec->dev, "Invalid micbias level\n"); in da7213_of_micbias_lvl()
1455 da7213_of_dmic_data_sel(struct snd_soc_codec *codec, const char *str) in da7213_of_dmic_data_sel() argument
1462 dev_warn(codec->dev, "Invalid DMIC data select type\n"); in da7213_of_dmic_data_sel()
1468 da7213_of_dmic_samplephase(struct snd_soc_codec *codec, const char *str) in da7213_of_dmic_samplephase() argument
1475 dev_warn(codec->dev, "Invalid DMIC sample phase\n"); in da7213_of_dmic_samplephase()
1481 da7213_of_dmic_clkrate(struct snd_soc_codec *codec, u32 val) in da7213_of_dmic_clkrate() argument
1489 dev_warn(codec->dev, "Invalid DMIC clock rate\n"); in da7213_of_dmic_clkrate()
1495 *da7213_of_to_pdata(struct snd_soc_codec *codec) in da7213_of_to_pdata() argument
1497 struct device_node *np = codec->dev->of_node; in da7213_of_to_pdata()
1502 pdata = devm_kzalloc(codec->dev, sizeof(*pdata), GFP_KERNEL); in da7213_of_to_pdata()
1504 dev_warn(codec->dev, "Failed to allocate memory for pdata\n"); in da7213_of_to_pdata()
1509 pdata->micbias1_lvl = da7213_of_micbias_lvl(codec, of_val32); in da7213_of_to_pdata()
1514 pdata->micbias2_lvl = da7213_of_micbias_lvl(codec, of_val32); in da7213_of_to_pdata()
1519 pdata->dmic_data_sel = da7213_of_dmic_data_sel(codec, of_str); in da7213_of_to_pdata()
1525 da7213_of_dmic_samplephase(codec, of_str); in da7213_of_to_pdata()
1530 pdata->dmic_clk_rate = da7213_of_dmic_clkrate(codec, of_val32); in da7213_of_to_pdata()
1538 static int da7213_probe(struct snd_soc_codec *codec) in da7213_probe() argument
1540 struct da7213_priv *da7213 = snd_soc_codec_get_drvdata(codec); in da7213_probe()
1543 snd_soc_update_bits(codec, DA7213_ALC_CTRL1, in da7213_probe()
1551 snd_soc_update_bits(codec, DA7213_AUX_L_CTRL, in da7213_probe()
1553 snd_soc_update_bits(codec, DA7213_AUX_R_CTRL, in da7213_probe()
1555 snd_soc_update_bits(codec, DA7213_MIXIN_L_CTRL, in da7213_probe()
1557 snd_soc_update_bits(codec, DA7213_MIXIN_R_CTRL, in da7213_probe()
1559 snd_soc_update_bits(codec, DA7213_ADC_L_CTRL, in da7213_probe()
1561 snd_soc_update_bits(codec, DA7213_ADC_R_CTRL, in da7213_probe()
1563 snd_soc_update_bits(codec, DA7213_DAC_L_CTRL, in da7213_probe()
1565 snd_soc_update_bits(codec, DA7213_DAC_R_CTRL, in da7213_probe()
1567 snd_soc_update_bits(codec, DA7213_HP_L_CTRL, in da7213_probe()
1569 snd_soc_update_bits(codec, DA7213_HP_R_CTRL, in da7213_probe()
1571 snd_soc_update_bits(codec, DA7213_LINE_CTRL, in da7213_probe()
1582 snd_soc_update_bits(codec, DA7213_MIXIN_L_CTRL, in da7213_probe()
1584 snd_soc_update_bits(codec, DA7213_MIXIN_R_CTRL, in da7213_probe()
1587 snd_soc_update_bits(codec, DA7213_MIXOUT_L_CTRL, in da7213_probe()
1589 snd_soc_update_bits(codec, DA7213_MIXOUT_R_CTRL, in da7213_probe()
1592 snd_soc_update_bits(codec, DA7213_HP_L_CTRL, in da7213_probe()
1594 snd_soc_update_bits(codec, DA7213_HP_R_CTRL, in da7213_probe()
1597 snd_soc_update_bits(codec, DA7213_LINE_CTRL, in da7213_probe()
1601 if (codec->dev->of_node) in da7213_probe()
1602 da7213->pdata = da7213_of_to_pdata(codec); in da7213_probe()
1604 da7213->pdata = dev_get_platdata(codec->dev); in da7213_probe()
1630 snd_soc_update_bits(codec, DA7213_MICBIAS_CTRL, in da7213_probe()
1656 snd_soc_update_bits(codec, DA7213_MIC_CONFIG, in da7213_probe()
1663 da7213->mclk = devm_clk_get(codec->dev, "mclk"); in da7213_probe()