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()
190 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in rt5631_dmic_get() local
191 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_dmic_get()
201 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in rt5631_dmic_put() local
202 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_dmic_put()
289 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_sysclk1_source() local
292 reg = snd_soc_read(codec, RT5631_GLOBAL_CLK_CTRL); in check_sysclk1_source()
299 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_dmic_used() local
300 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in check_dmic_used()
307 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_dacl_to_outmixl() local
310 reg = snd_soc_read(codec, RT5631_OUTMIXER_L_CTRL); in check_dacl_to_outmixl()
317 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_dacr_to_outmixr() local
320 reg = snd_soc_read(codec, RT5631_OUTMIXER_R_CTRL); in check_dacr_to_outmixr()
327 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_dacl_to_spkmixl() local
330 reg = snd_soc_read(codec, RT5631_SPK_MIXER_CTRL); in check_dacl_to_spkmixl()
337 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_dacr_to_spkmixr() local
340 reg = snd_soc_read(codec, RT5631_SPK_MIXER_CTRL); in check_dacr_to_spkmixr()
347 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_adcl_select() local
350 reg = snd_soc_read(codec, RT5631_ADC_REC_MIXER); in check_adcl_select()
357 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in check_adcr_select() local
360 reg = snd_soc_read(codec, RT5631_ADC_REC_MIXER); in check_adcr_select()
370 static void onebit_depop_power_stage(struct snd_soc_codec *codec, int enable) in onebit_depop_power_stage() argument
375 snd_soc_update_bits(codec, RT5631_DEPOP_FUN_CTRL_2, in onebit_depop_power_stage()
379 soft_vol = snd_soc_read(codec, RT5631_SOFT_VOL_CTRL); in onebit_depop_power_stage()
380 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, 0); in onebit_depop_power_stage()
381 hp_zc = snd_soc_read(codec, RT5631_INT_ST_IRQ_CTRL_2); in onebit_depop_power_stage()
382 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc & 0xf7ff); in onebit_depop_power_stage()
385 rt5631_write_index(codec, RT5631_TEST_MODE_CTRL, 0x84c0); in onebit_depop_power_stage()
386 rt5631_write_index(codec, RT5631_SPK_INTL_CTRL, 0x309f); in onebit_depop_power_stage()
387 rt5631_write_index(codec, RT5631_CP_INTL_REG2, 0x6530); in onebit_depop_power_stage()
389 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_2, in onebit_depop_power_stage()
393 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_2, 0); in onebit_depop_power_stage()
398 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, soft_vol); in onebit_depop_power_stage()
399 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc); in onebit_depop_power_stage()
408 static void onebit_depop_mute_stage(struct snd_soc_codec *codec, int enable) in onebit_depop_mute_stage() argument
413 snd_soc_update_bits(codec, RT5631_DEPOP_FUN_CTRL_2, in onebit_depop_mute_stage()
417 soft_vol = snd_soc_read(codec, RT5631_SOFT_VOL_CTRL); in onebit_depop_mute_stage()
418 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, 0); in onebit_depop_mute_stage()
419 hp_zc = snd_soc_read(codec, RT5631_INT_ST_IRQ_CTRL_2); in onebit_depop_mute_stage()
420 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc & 0xf7ff); in onebit_depop_mute_stage()
424 rt5631_write_index(codec, RT5631_SPK_INTL_CTRL, 0x307f); in onebit_depop_mute_stage()
425 snd_soc_update_bits(codec, RT5631_HP_OUT_VOL, in onebit_depop_mute_stage()
429 snd_soc_update_bits(codec, RT5631_HP_OUT_VOL, in onebit_depop_mute_stage()
436 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, soft_vol); in onebit_depop_mute_stage()
437 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc); in onebit_depop_mute_stage()
446 static void depop_seq_power_stage(struct snd_soc_codec *codec, int enable) in depop_seq_power_stage() argument
451 snd_soc_update_bits(codec, RT5631_DEPOP_FUN_CTRL_2, in depop_seq_power_stage()
455 soft_vol = snd_soc_read(codec, RT5631_SOFT_VOL_CTRL); in depop_seq_power_stage()
456 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, 0); in depop_seq_power_stage()
457 hp_zc = snd_soc_read(codec, RT5631_INT_ST_IRQ_CTRL_2); in depop_seq_power_stage()
458 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc & 0xf7ff); in depop_seq_power_stage()
461 rt5631_write_index(codec, RT5631_SPK_INTL_CTRL, 0x303e); in depop_seq_power_stage()
464 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in depop_seq_power_stage()
471 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_1, in depop_seq_power_stage()
476 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in depop_seq_power_stage()
480 rt5631_write_index(codec, RT5631_SPK_INTL_CTRL, 0x303F); in depop_seq_power_stage()
481 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_1, in depop_seq_power_stage()
485 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_1, in depop_seq_power_stage()
490 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in depop_seq_power_stage()
494 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_1, in depop_seq_power_stage()
498 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_1, in depop_seq_power_stage()
502 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in depop_seq_power_stage()
508 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, soft_vol); in depop_seq_power_stage()
509 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc); in depop_seq_power_stage()
518 static void depop_seq_mute_stage(struct snd_soc_codec *codec, int enable) in depop_seq_mute_stage() argument
523 snd_soc_update_bits(codec, RT5631_DEPOP_FUN_CTRL_2, in depop_seq_mute_stage()
527 soft_vol = snd_soc_read(codec, RT5631_SOFT_VOL_CTRL); in depop_seq_mute_stage()
528 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, 0); in depop_seq_mute_stage()
529 hp_zc = snd_soc_read(codec, RT5631_INT_ST_IRQ_CTRL_2); in depop_seq_mute_stage()
530 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc & 0xf7ff); in depop_seq_mute_stage()
535 rt5631_write_index(codec, RT5631_SPK_INTL_CTRL, 0x302f); in depop_seq_mute_stage()
536 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_1, in depop_seq_mute_stage()
541 snd_soc_update_bits(codec, RT5631_HP_OUT_VOL, in depop_seq_mute_stage()
546 rt5631_write_index(codec, RT5631_SPK_INTL_CTRL, 0x302f); in depop_seq_mute_stage()
547 snd_soc_write(codec, RT5631_DEPOP_FUN_CTRL_1, in depop_seq_mute_stage()
552 snd_soc_update_bits(codec, RT5631_HP_OUT_VOL, in depop_seq_mute_stage()
559 snd_soc_write(codec, RT5631_SOFT_VOL_CTRL, soft_vol); in depop_seq_mute_stage()
560 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, hp_zc); in depop_seq_mute_stage()
566 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in hp_event() local
567 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in hp_event()
572 onebit_depop_mute_stage(codec, 0); in hp_event()
573 onebit_depop_power_stage(codec, 0); in hp_event()
575 depop_seq_mute_stage(codec, 0); in hp_event()
576 depop_seq_power_stage(codec, 0); in hp_event()
582 onebit_depop_power_stage(codec, 1); in hp_event()
583 onebit_depop_mute_stage(codec, 1); in hp_event()
585 depop_seq_power_stage(codec, 1); in hp_event()
586 depop_seq_mute_stage(codec, 1); in hp_event()
600 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in set_dmic_params() local
601 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in set_dmic_params()
606 snd_soc_update_bits(codec, RT5631_DIG_MIC_CTRL, in set_dmic_params()
613 snd_soc_update_bits(codec, RT5631_DIG_MIC_CTRL, in set_dmic_params()
621 snd_soc_update_bits(codec, RT5631_DIG_MIC_CTRL, in set_dmic_params()
1355 struct snd_soc_codec *codec = dai->codec; in rt5631_hifi_pcm_params() local
1356 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_hifi_pcm_params()
1360 dev_dbg(codec->dev, "enter %s\n", __func__); in rt5631_hifi_pcm_params()
1364 dev_err(codec->dev, "Fail to get BCLK rate\n"); in rt5631_hifi_pcm_params()
1376 dev_err(codec->dev, "Fail to get coeff\n"); in rt5631_hifi_pcm_params()
1396 snd_soc_update_bits(codec, RT5631_SDP_CTRL, in rt5631_hifi_pcm_params()
1398 snd_soc_write(codec, RT5631_STEREO_AD_DA_CLK_CTRL, in rt5631_hifi_pcm_params()
1407 struct snd_soc_codec *codec = codec_dai->codec; in rt5631_hifi_codec_set_dai_fmt() local
1408 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_hifi_codec_set_dai_fmt()
1411 dev_dbg(codec->dev, "enter %s\n", __func__); in rt5631_hifi_codec_set_dai_fmt()
1451 snd_soc_write(codec, RT5631_SDP_CTRL, iface); in rt5631_hifi_codec_set_dai_fmt()
1459 struct snd_soc_codec *codec = codec_dai->codec; in rt5631_hifi_codec_set_dai_sysclk() local
1460 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_hifi_codec_set_dai_sysclk()
1462 dev_dbg(codec->dev, "enter %s, syclk=%d\n", __func__, freq); in rt5631_hifi_codec_set_dai_sysclk()
1475 struct snd_soc_codec *codec = codec_dai->codec; in rt5631_codec_set_dai_pll() local
1476 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_codec_set_dai_pll()
1479 dev_dbg(codec->dev, "enter %s\n", __func__); in rt5631_codec_set_dai_pll()
1482 dev_dbg(codec->dev, "PLL disabled\n"); in rt5631_codec_set_dai_pll()
1484 snd_soc_update_bits(codec, RT5631_GLOBAL_CLK_CTRL, in rt5631_codec_set_dai_pll()
1495 dev_info(codec->dev, in rt5631_codec_set_dai_pll()
1497 snd_soc_write(codec, RT5631_PLL_CTRL, in rt5631_codec_set_dai_pll()
1501 snd_soc_update_bits(codec, in rt5631_codec_set_dai_pll()
1514 dev_info(codec->dev, in rt5631_codec_set_dai_pll()
1516 snd_soc_write(codec, RT5631_PLL_CTRL, in rt5631_codec_set_dai_pll()
1520 snd_soc_update_bits(codec, in rt5631_codec_set_dai_pll()
1534 static int rt5631_set_bias_level(struct snd_soc_codec *codec, in rt5631_set_bias_level() argument
1537 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_set_bias_level()
1542 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD2, in rt5631_set_bias_level()
1548 if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) { in rt5631_set_bias_level()
1549 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in rt5631_set_bias_level()
1553 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in rt5631_set_bias_level()
1562 snd_soc_write(codec, RT5631_PWR_MANAG_ADD1, 0x0000); in rt5631_set_bias_level()
1563 snd_soc_write(codec, RT5631_PWR_MANAG_ADD2, 0x0000); in rt5631_set_bias_level()
1564 snd_soc_write(codec, RT5631_PWR_MANAG_ADD3, 0x0000); in rt5631_set_bias_level()
1565 snd_soc_write(codec, RT5631_PWR_MANAG_ADD4, 0x0000); in rt5631_set_bias_level()
1575 static int rt5631_probe(struct snd_soc_codec *codec) in rt5631_probe() argument
1577 struct rt5631_priv *rt5631 = snd_soc_codec_get_drvdata(codec); in rt5631_probe()
1580 val = rt5631_read_index(codec, RT5631_ADDA_MIXER_INTL_REG3); in rt5631_probe()
1586 rt5631_reset(codec); in rt5631_probe()
1587 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in rt5631_probe()
1591 snd_soc_update_bits(codec, RT5631_PWR_MANAG_ADD3, in rt5631_probe()
1594 snd_soc_write(codec, RT5631_INT_ST_IRQ_CTRL_2, 0x0f18); in rt5631_probe()
1597 snd_soc_update_bits(codec, RT5631_INT_ST_IRQ_CTRL_2, in rt5631_probe()
1600 snd_soc_update_bits(codec, RT5631_INT_ST_IRQ_CTRL_2, in rt5631_probe()
1604 snd_soc_update_bits(codec, RT5631_GPIO_CTRL, in rt5631_probe()
1609 snd_soc_update_bits(codec, RT5631_DIG_MIC_CTRL, in rt5631_probe()
1616 snd_soc_codec_init_bias_level(codec, SND_SOC_BIAS_STANDBY); in rt5631_probe()