Lines Matching refs:codec

240 	struct snd_soc_codec *codec;  member
268 static int rt5645_reset(struct snd_soc_codec *codec) in rt5645_reset() argument
270 return snd_soc_write(codec, RT5645_RESET, 0); in rt5645_reset()
667 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in set_dmic_clk() local
668 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in set_dmic_clk()
675 dev_err(codec->dev, "Failed to set DMIC clock\n"); in set_dmic_clk()
677 snd_soc_update_bits(codec, RT5645_DMIC_CTRL1, in set_dmic_clk()
685 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in is_sys_clk_from_pll() local
688 val = snd_soc_read(codec, RT5645_GLB_CLK); in is_sys_clk_from_pll()
699 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in is_using_asrc() local
731 val = (snd_soc_read(codec, reg) >> shift) & 0xf; in is_using_asrc()
744 static int rt5645_enable_hweq(struct snd_soc_codec *codec) in rt5645_enable_hweq() argument
746 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_enable_hweq()
774 int rt5645_sel_asrc_clk_src(struct snd_soc_codec *codec, in rt5645_sel_asrc_clk_src() argument
830 snd_soc_update_bits(codec, RT5645_ASRC_2, in rt5645_sel_asrc_clk_src()
834 snd_soc_update_bits(codec, RT5645_ASRC_3, in rt5645_sel_asrc_clk_src()
1499 static void hp_amp_power(struct snd_soc_codec *codec, int on) in hp_amp_power() argument
1502 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in hp_amp_power()
1507 snd_soc_write(codec, RT5645_DEPOP_M2, 0x3100); in hp_amp_power()
1508 snd_soc_write(codec, RT5645_CHARGE_PUMP, in hp_amp_power()
1510 snd_soc_write(codec, RT5645_DEPOP_M1, 0x000d); in hp_amp_power()
1514 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in hp_amp_power()
1518 snd_soc_write(codec, RT5645_DEPOP_M3, 0x0737); in hp_amp_power()
1521 snd_soc_write(codec, RT5645_DEPOP_M2, 0x1140); in hp_amp_power()
1526 snd_soc_update_bits(codec, RT5645_DEPOP_M2, in hp_amp_power()
1528 snd_soc_write(codec, RT5645_DEPOP_M1, 0x000d); in hp_amp_power()
1533 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in hp_amp_power()
1535 snd_soc_update_bits(codec, RT5645_PWR_VOL, in hp_amp_power()
1538 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in hp_amp_power()
1544 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in hp_amp_power()
1548 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in hp_amp_power()
1564 snd_soc_write(codec, RT5645_DEPOP_M3, 0x0737); in hp_amp_power()
1567 snd_soc_write(codec, RT5645_DEPOP_M2, 0x1140); in hp_amp_power()
1569 snd_soc_write(codec, RT5645_DEPOP_M1, 0x0001); in hp_amp_power()
1572 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in hp_amp_power()
1580 snd_soc_write(codec, RT5645_DEPOP_M1, 0x0000); in hp_amp_power()
1581 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in hp_amp_power()
1584 snd_soc_update_bits(codec, RT5645_DEPOP_M2, in hp_amp_power()
1594 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5645_hp_event() local
1595 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_hp_event()
1599 hp_amp_power(codec, 1); in rt5645_hp_event()
1602 snd_soc_update_bits(codec, RT5645_DEPOP_M3, in rt5645_hp_event()
1610 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in rt5645_hp_event()
1612 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in rt5645_hp_event()
1614 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in rt5645_hp_event()
1619 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in rt5645_hp_event()
1629 snd_soc_update_bits(codec, RT5645_DEPOP_M3, in rt5645_hp_event()
1637 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in rt5645_hp_event()
1639 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in rt5645_hp_event()
1641 snd_soc_update_bits(codec, RT5645_DEPOP_M1, in rt5645_hp_event()
1647 hp_amp_power(codec, 0); in rt5645_hp_event()
1660 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5645_spk_event() local
1664 rt5645_enable_hweq(codec); in rt5645_spk_event()
1665 snd_soc_update_bits(codec, RT5645_PWR_DIG1, in rt5645_spk_event()
1670 snd_soc_update_bits(codec, RT5645_GEN_CTRL3, in rt5645_spk_event()
1675 snd_soc_update_bits(codec, RT5645_GEN_CTRL3, in rt5645_spk_event()
1677 snd_soc_write(codec, RT5645_EQ_CTRL2, 0); in rt5645_spk_event()
1678 snd_soc_update_bits(codec, RT5645_PWR_DIG1, in rt5645_spk_event()
1693 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5645_lout_event() local
1697 hp_amp_power(codec, 1); in rt5645_lout_event()
1698 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in rt5645_lout_event()
1700 snd_soc_update_bits(codec, RT5645_LOUT1, in rt5645_lout_event()
1705 snd_soc_update_bits(codec, RT5645_LOUT1, in rt5645_lout_event()
1708 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in rt5645_lout_event()
1710 hp_amp_power(codec, 0); in rt5645_lout_event()
1723 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5645_bst2_event() local
1727 snd_soc_update_bits(codec, RT5645_PWR_ANLG2, in rt5645_bst2_event()
1732 snd_soc_update_bits(codec, RT5645_PWR_ANLG2, in rt5645_bst2_event()
1746 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5650_hp_event() local
1747 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5650_hp_event()
2534 struct snd_soc_codec *codec = dai->codec; in rt5645_hw_params() local
2535 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_hw_params()
2542 dev_err(codec->dev, "Unsupported clock setting\n"); in rt5645_hw_params()
2547 dev_err(codec->dev, "Unsupported frame size: %d\n", frame_size); in rt5645_hw_params()
2588 snd_soc_update_bits(codec, RT5645_I2S1_SDP, in rt5645_hw_params()
2590 snd_soc_update_bits(codec, RT5645_ADDA_CLK1, mask_clk, val_clk); in rt5645_hw_params()
2596 snd_soc_update_bits(codec, RT5645_I2S2_SDP, in rt5645_hw_params()
2598 snd_soc_update_bits(codec, RT5645_ADDA_CLK1, mask_clk, val_clk); in rt5645_hw_params()
2601 dev_err(codec->dev, "Invalid dai->id: %d\n", dai->id); in rt5645_hw_params()
2610 struct snd_soc_codec *codec = dai->codec; in rt5645_set_dai_fmt() local
2611 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_dai_fmt()
2662 snd_soc_update_bits(codec, RT5645_I2S1_SDP, in rt5645_set_dai_fmt()
2667 snd_soc_update_bits(codec, RT5645_I2S2_SDP, in rt5645_set_dai_fmt()
2672 dev_err(codec->dev, "Invalid dai->id: %d\n", dai->id); in rt5645_set_dai_fmt()
2681 struct snd_soc_codec *codec = dai->codec; in rt5645_set_dai_sysclk() local
2682 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_dai_sysclk()
2699 dev_err(codec->dev, "Invalid clock id (%d)\n", clk_id); in rt5645_set_dai_sysclk()
2702 snd_soc_update_bits(codec, RT5645_GLB_CLK, in rt5645_set_dai_sysclk()
2715 struct snd_soc_codec *codec = dai->codec; in rt5645_set_dai_pll() local
2716 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_dai_pll()
2725 dev_dbg(codec->dev, "PLL disabled\n"); in rt5645_set_dai_pll()
2729 snd_soc_update_bits(codec, RT5645_GLB_CLK, in rt5645_set_dai_pll()
2736 snd_soc_update_bits(codec, RT5645_GLB_CLK, in rt5645_set_dai_pll()
2743 snd_soc_update_bits(codec, RT5645_GLB_CLK, in rt5645_set_dai_pll()
2747 snd_soc_update_bits(codec, RT5645_GLB_CLK, in rt5645_set_dai_pll()
2751 dev_err(codec->dev, "Invalid dai->id: %d\n", dai->id); in rt5645_set_dai_pll()
2756 dev_err(codec->dev, "Unknown PLL source %d\n", source); in rt5645_set_dai_pll()
2762 dev_err(codec->dev, "Unsupport input clock %d\n", freq_in); in rt5645_set_dai_pll()
2766 dev_dbg(codec->dev, "bypass=%d m=%d n=%d k=%d\n", in rt5645_set_dai_pll()
2770 snd_soc_write(codec, RT5645_PLL_CTRL1, in rt5645_set_dai_pll()
2772 snd_soc_write(codec, RT5645_PLL_CTRL2, in rt5645_set_dai_pll()
2786 struct snd_soc_codec *codec = dai->codec; in rt5645_set_tdm_slot() local
2787 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_tdm_slot()
2810 snd_soc_update_bits(codec, RT5645_BASS_BACK, in rt5645_set_tdm_slot()
2844 snd_soc_update_bits(codec, RT5645_TDM_CTRL_1, mask, val); in rt5645_set_tdm_slot()
2849 static int rt5645_set_bias_level(struct snd_soc_codec *codec, in rt5645_set_bias_level() argument
2852 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_bias_level()
2856 if (SND_SOC_BIAS_STANDBY == snd_soc_codec_get_bias_level(codec)) { in rt5645_set_bias_level()
2857 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in rt5645_set_bias_level()
2863 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in rt5645_set_bias_level()
2866 snd_soc_update_bits(codec, RT5645_GEN_CTRL1, in rt5645_set_bias_level()
2872 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in rt5645_set_bias_level()
2877 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in rt5645_set_bias_level()
2881 snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) in rt5645_set_bias_level()
2887 snd_soc_write(codec, RT5645_DEPOP_M2, 0x1100); in rt5645_set_bias_level()
2889 snd_soc_update_bits(codec, RT5645_GEN_CTRL1, in rt5645_set_bias_level()
2891 snd_soc_update_bits(codec, RT5645_PWR_ANLG1, in rt5645_set_bias_level()
2904 static void rt5645_enable_push_button_irq(struct snd_soc_codec *codec, in rt5645_enable_push_button_irq() argument
2907 struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec); in rt5645_enable_push_button_irq()
2914 snd_soc_update_bits(codec, in rt5645_enable_push_button_irq()
2916 snd_soc_update_bits(codec, in rt5645_enable_push_button_irq()
2918 snd_soc_read(codec, RT5650_4BTN_IL_CMD1); in rt5645_enable_push_button_irq()
2920 snd_soc_read(codec, RT5650_4BTN_IL_CMD1)); in rt5645_enable_push_button_irq()
2922 snd_soc_update_bits(codec, RT5650_4BTN_IL_CMD2, 0x8000, 0x0); in rt5645_enable_push_button_irq()
2923 snd_soc_update_bits(codec, RT5645_INT_IRQ_ST, 0x8, 0x0); in rt5645_enable_push_button_irq()
2931 static int rt5645_jack_detect(struct snd_soc_codec *codec, int jack_insert) in rt5645_jack_detect() argument
2933 struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec); in rt5645_jack_detect()
2934 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_jack_detect()
2968 dev_dbg(codec->dev, "val = %d\n", val); in rt5645_jack_detect()
2973 rt5645_enable_push_button_irq(codec, true); in rt5645_jack_detect()
2995 rt5645_enable_push_button_irq(codec, false); in rt5645_jack_detect()
3009 static int rt5645_button_detect(struct snd_soc_codec *codec) in rt5645_button_detect() argument
3013 val = snd_soc_read(codec, RT5650_4BTN_IL_CMD1); in rt5645_button_detect()
3016 snd_soc_write(codec, RT5650_4BTN_IL_CMD1, val); in rt5645_button_detect()
3023 int rt5645_set_jack_detect(struct snd_soc_codec *codec, in rt5645_set_jack_detect() argument
3027 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_set_jack_detect()
3051 if (!rt5645->codec) in rt5645_jack_detect_work()
3058 dev_dbg(rt5645->codec->dev, "gpio_state = %d\n", in rt5645_jack_detect_work()
3060 report = rt5645_jack_detect(rt5645->codec, gpio_state); in rt5645_jack_detect_work()
3068 val = snd_soc_read(rt5645->codec, RT5645_A_JD_CTRL1) & 0x0070; in rt5645_jack_detect_work()
3071 val = snd_soc_read(rt5645->codec, RT5645_A_JD_CTRL1) & 0x0020; in rt5645_jack_detect_work()
3081 report = rt5645_jack_detect(rt5645->codec, 1); in rt5645_jack_detect_work()
3086 if (snd_soc_read(rt5645->codec, RT5645_INT_IRQ_ST) & 0x4) { in rt5645_jack_detect_work()
3089 btn_type = rt5645_button_detect(rt5645->codec); in rt5645_jack_detect_work()
3119 dev_err(rt5645->codec->dev, in rt5645_jack_detect_work()
3134 snd_soc_update_bits(rt5645->codec, in rt5645_jack_detect_work()
3136 rt5645_jack_detect(rt5645->codec, 0); in rt5645_jack_detect_work()
3169 static int rt5645_probe(struct snd_soc_codec *codec) in rt5645_probe() argument
3171 struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec); in rt5645_probe()
3172 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_probe()
3174 rt5645->codec = codec; in rt5645_probe()
3195 snd_soc_codec_force_bias_level(codec, SND_SOC_BIAS_OFF); in rt5645_probe()
3204 rt5645->eq_param = devm_kzalloc(codec->dev, in rt5645_probe()
3210 static int rt5645_remove(struct snd_soc_codec *codec) in rt5645_remove() argument
3212 rt5645_reset(codec); in rt5645_remove()
3217 static int rt5645_suspend(struct snd_soc_codec *codec) in rt5645_suspend() argument
3219 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_suspend()
3227 static int rt5645_resume(struct snd_soc_codec *codec) in rt5645_resume() argument
3229 struct rt5645_priv *rt5645 = snd_soc_codec_get_drvdata(codec); in rt5645_resume()