Lines Matching refs:codec
74 static void rt5631_write_index(struct snd_soc_codec *codec, in rt5631_write_index() argument
77 snd_soc_write(codec, RT5631_INDEX_ADD, reg); in rt5631_write_index()
78 snd_soc_write(codec, RT5631_INDEX_DATA, value); in rt5631_write_index()
84 static unsigned int rt5631_read_index(struct snd_soc_codec *codec, in rt5631_read_index() argument
89 snd_soc_write(codec, RT5631_INDEX_ADD, reg); in rt5631_read_index()
90 value = snd_soc_read(codec, RT5631_INDEX_DATA); in rt5631_read_index()
95 static int rt5631_reset(struct snd_soc_codec *codec) in rt5631_reset() argument
97 return snd_soc_write(codec, RT5631_RESET, 0); in rt5631_reset()
191 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in rt5631_dmic_get() local
192 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_dmic_get()
202 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in rt5631_dmic_put() local
203 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_dmic_put()
290 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_sysclk1_source() local
293 reg = snd_soc_read(codec, RT5631_GLOBAL_CLK_CTRL); in check_sysclk1_source()
300 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_dmic_used() local
301 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in check_dmic_used()
308 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_dacl_to_outmixl() local
311 reg = snd_soc_read(codec, RT5631_OUTMIXER_L_CTRL); in check_dacl_to_outmixl()
318 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_dacr_to_outmixr() local
321 reg = snd_soc_read(codec, RT5631_OUTMIXER_R_CTRL); in check_dacr_to_outmixr()
328 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_dacl_to_spkmixl() local
331 reg = snd_soc_read(codec, RT5631_SPK_MIXER_CTRL); in check_dacl_to_spkmixl()
338 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_dacr_to_spkmixr() local
341 reg = snd_soc_read(codec, RT5631_SPK_MIXER_CTRL); in check_dacr_to_spkmixr()
348 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_adcl_select() local
351 reg = snd_soc_read(codec, RT5631_ADC_REC_MIXER); in check_adcl_select()
358 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_adcr_select() local
361 reg = snd_soc_read(codec, RT5631_ADC_REC_MIXER); in check_adcr_select()
371 static void onebit_depop_power_stage(struct snd_soc_codec *codec, int enable) in onebit_depop_power_stage() argument
376 snd_soc_update_bits(codec, RT5631_DEPOP_FUN_CTRL_2, in onebit_depop_power_stage()
380 soft_vol = snd_soc_read(codec, RT5631_SOFT_VOL_CTRL); in onebit_depop_power_stage()
381 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, 0); in onebit_depop_power_stage()
382 hp_zc = snd_soc_read(codec, RT5631_INT_ST_IRQ_CTRL_2); in onebit_depop_power_stage()
383 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc & 0xf7ff); in onebit_depop_power_stage()
386 rt5631_write_index(codec, RT5631_TEST_MODE_CTRL, 0x84c0); in onebit_depop_power_stage()
387 rt5631_write_index(codec, RT5631_SPK_INTL_CTRL, 0x309f); in onebit_depop_power_stage()
388 rt5631_write_index(codec, RT5631_CP_INTL_REG2, 0x6530); in onebit_depop_power_stage()
390 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_2, in onebit_depop_power_stage()
394 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_2, 0); in onebit_depop_power_stage()
399 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, soft_vol); in onebit_depop_power_stage()
400 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc); in onebit_depop_power_stage()
409 static void onebit_depop_mute_stage(struct snd_soc_codec *codec, int enable) in onebit_depop_mute_stage() argument
414 snd_soc_update_bits(codec, RT5631_DEPOP_FUN_CTRL_2, in onebit_depop_mute_stage()
418 soft_vol = snd_soc_read(codec, RT5631_SOFT_VOL_CTRL); in onebit_depop_mute_stage()
419 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, 0); in onebit_depop_mute_stage()
420 hp_zc = snd_soc_read(codec, RT5631_INT_ST_IRQ_CTRL_2); in onebit_depop_mute_stage()
421 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc & 0xf7ff); in onebit_depop_mute_stage()
425 rt5631_write_index(codec, RT5631_SPK_INTL_CTRL, 0x307f); in onebit_depop_mute_stage()
426 snd_soc_update_bits(codec, RT5631_HP_OUT_VOL, in onebit_depop_mute_stage()
430 snd_soc_update_bits(codec, RT5631_HP_OUT_VOL, in onebit_depop_mute_stage()
437 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, soft_vol); in onebit_depop_mute_stage()
438 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc); in onebit_depop_mute_stage()
447 static void depop_seq_power_stage(struct snd_soc_codec *codec, int enable) in depop_seq_power_stage() argument
452 snd_soc_update_bits(codec, RT5631_DEPOP_FUN_CTRL_2, in depop_seq_power_stage()
456 soft_vol = snd_soc_read(codec, RT5631_SOFT_VOL_CTRL); in depop_seq_power_stage()
457 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, 0); in depop_seq_power_stage()
458 hp_zc = snd_soc_read(codec, RT5631_INT_ST_IRQ_CTRL_2); in depop_seq_power_stage()
459 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc & 0xf7ff); in depop_seq_power_stage()
462 rt5631_write_index(codec, RT5631_SPK_INTL_CTRL, 0x303e); in depop_seq_power_stage()
465 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in depop_seq_power_stage()
472 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_1, in depop_seq_power_stage()
477 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in depop_seq_power_stage()
481 rt5631_write_index(codec, RT5631_SPK_INTL_CTRL, 0x303F); in depop_seq_power_stage()
482 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_1, in depop_seq_power_stage()
486 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_1, in depop_seq_power_stage()
491 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in depop_seq_power_stage()
495 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_1, in depop_seq_power_stage()
499 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_1, in depop_seq_power_stage()
503 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in depop_seq_power_stage()
509 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, soft_vol); in depop_seq_power_stage()
510 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc); in depop_seq_power_stage()
519 static void depop_seq_mute_stage(struct snd_soc_codec *codec, int enable) in depop_seq_mute_stage() argument
524 snd_soc_update_bits(codec, RT5631_DEPOP_FUN_CTRL_2, in depop_seq_mute_stage()
528 soft_vol = snd_soc_read(codec, RT5631_SOFT_VOL_CTRL); in depop_seq_mute_stage()
529 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, 0); in depop_seq_mute_stage()
530 hp_zc = snd_soc_read(codec, RT5631_INT_ST_IRQ_CTRL_2); in depop_seq_mute_stage()
531 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc & 0xf7ff); in depop_seq_mute_stage()
536 rt5631_write_index(codec, RT5631_SPK_INTL_CTRL, 0x302f); in depop_seq_mute_stage()
537 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_1, in depop_seq_mute_stage()
542 snd_soc_update_bits(codec, RT5631_HP_OUT_VOL, in depop_seq_mute_stage()
547 rt5631_write_index(codec, RT5631_SPK_INTL_CTRL, 0x302f); in depop_seq_mute_stage()
548 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_1, in depop_seq_mute_stage()
553 snd_soc_update_bits(codec, RT5631_HP_OUT_VOL, in depop_seq_mute_stage()
560 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, soft_vol); in depop_seq_mute_stage()
561 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc); in depop_seq_mute_stage()
567 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in hp_event() local
568 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in hp_event()
573 onebit_depop_mute_stage(codec, 0); in hp_event()
574 onebit_depop_power_stage(codec, 0); in hp_event()
576 depop_seq_mute_stage(codec, 0); in hp_event()
577 depop_seq_power_stage(codec, 0); in hp_event()
583 onebit_depop_power_stage(codec, 1); in hp_event()
584 onebit_depop_mute_stage(codec, 1); in hp_event()
586 depop_seq_power_stage(codec, 1); in hp_event()
587 depop_seq_mute_stage(codec, 1); in hp_event()
601 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in set_dmic_params() local
602 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in set_dmic_params()
607 snd_soc_update_bits(codec, RT5631_DIG_MIC_CTRL, in set_dmic_params()
614 snd_soc_update_bits(codec, RT5631_DIG_MIC_CTRL, in set_dmic_params()
622 snd_soc_update_bits(codec, RT5631_DIG_MIC_CTRL, in set_dmic_params()
1356 struct snd_soc_codec *codec = dai->codec; in rt5631_hifi_pcm_params() local
1357 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_hifi_pcm_params()
1361 dev_dbg(codec->dev, "enter %s\n", __func__); in rt5631_hifi_pcm_params()
1365 dev_err(codec->dev, "Fail to get BCLK rate\n"); in rt5631_hifi_pcm_params()
1377 dev_err(codec->dev, "Fail to get coeff\n"); in rt5631_hifi_pcm_params()
1397 snd_soc_update_bits(codec, RT5631_SDP_CTRL, in rt5631_hifi_pcm_params()
1399 snd_soc_write(codec, RT5631_STEREO_AD_DA_CLK_CTRL, in rt5631_hifi_pcm_params()
1408 struct snd_soc_codec *codec = codec_dai->codec; in rt5631_hifi_codec_set_dai_fmt() local
1409 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_hifi_codec_set_dai_fmt()
1412 dev_dbg(codec->dev, "enter %s\n", __func__); in rt5631_hifi_codec_set_dai_fmt()
1452 snd_soc_write(codec, RT5631_SDP_CTRL, iface); in rt5631_hifi_codec_set_dai_fmt()
1460 struct snd_soc_codec *codec = codec_dai->codec; in rt5631_hifi_codec_set_dai_sysclk() local
1461 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_hifi_codec_set_dai_sysclk()
1463 dev_dbg(codec->dev, "enter %s, syclk=%d\n", __func__, freq); in rt5631_hifi_codec_set_dai_sysclk()
1476 struct snd_soc_codec *codec = codec_dai->codec; in rt5631_codec_set_dai_pll() local
1477 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_codec_set_dai_pll()
1480 dev_dbg(codec->dev, "enter %s\n", __func__); in rt5631_codec_set_dai_pll()
1483 dev_dbg(codec->dev, "PLL disabled\n"); in rt5631_codec_set_dai_pll()
1485 snd_soc_update_bits(codec, RT5631_GLOBAL_CLK_CTRL, in rt5631_codec_set_dai_pll()
1496 dev_info(codec->dev, in rt5631_codec_set_dai_pll()
1498 snd_soc_write(codec, RT5631_PLL_CTRL, in rt5631_codec_set_dai_pll()
1502 snd_soc_update_bits(codec, in rt5631_codec_set_dai_pll()
1515 dev_info(codec->dev, in rt5631_codec_set_dai_pll()
1517 snd_soc_write(codec, RT5631_PLL_CTRL, in rt5631_codec_set_dai_pll()
1521 snd_soc_update_bits(codec, in rt5631_codec_set_dai_pll()
1535 static int rt5631_set_bias_level(struct snd_soc_codec *codec, in rt5631_set_bias_level() argument
1538 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_set_bias_level()
1543 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD2, in rt5631_set_bias_level()
1549 if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) { in rt5631_set_bias_level()
1550 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in rt5631_set_bias_level()
1554 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in rt5631_set_bias_level()
1563 snd_soc_write(codec, RT5631_PWR_MANAG_ADD1, 0x0000); in rt5631_set_bias_level()
1564 snd_soc_write(codec, RT5631_PWR_MANAG_ADD2, 0x0000); in rt5631_set_bias_level()
1565 snd_soc_write(codec, RT5631_PWR_MANAG_ADD3, 0x0000); in rt5631_set_bias_level()
1566 snd_soc_write(codec, RT5631_PWR_MANAG_ADD4, 0x0000); in rt5631_set_bias_level()
1572 codec->dapm.bias_level = level; in rt5631_set_bias_level()
1577 static int rt5631_probe(struct snd_soc_codec *codec) in rt5631_probe() argument
1579 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_probe()
1582 val = rt5631_read_index(codec, RT5631_ADDA_MIXER_INTL_REG3); in rt5631_probe()
1588 rt5631_reset(codec); in rt5631_probe()
1589 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in rt5631_probe()
1593 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in rt5631_probe()
1596 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, 0x0f18); in rt5631_probe()
1599 snd_soc_update_bits(codec, RT5631_INT_ST_IRQ_CTRL_2, in rt5631_probe()
1602 snd_soc_update_bits(codec, RT5631_INT_ST_IRQ_CTRL_2, in rt5631_probe()
1606 snd_soc_update_bits(codec, RT5631_GPIO_CTRL, in rt5631_probe()
1611 snd_soc_update_bits(codec, RT5631_DIG_MIC_CTRL, in rt5631_probe()
1618 codec->dapm.bias_level = SND_SOC_BIAS_STANDBY; in rt5631_probe()