Lines Matching refs:codec
169 static int rt5640_reset(struct snd_soc_codec *codec) in rt5640_reset() argument
171 return snd_soc_write(codec, RT5640_RESET, 0); in rt5640_reset()
462 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in set_dmic_clk() local
463 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in set_dmic_clk()
470 dev_err(codec->dev, "Failed to set DMIC clock\n"); in set_dmic_clk()
472 snd_soc_update_bits(codec, RT5640_DMIC, RT5640_DMIC_CLK_MASK, in set_dmic_clk()
480 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in is_sys_clk_from_pll() local
483 val = snd_soc_read(codec, RT5640_GLB_CLK); in is_sys_clk_from_pll()
919 static void hp_amp_power_on(struct snd_soc_codec *codec) in hp_amp_power_on() argument
921 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in hp_amp_power_on()
945 static void rt5640_pmu_depop(struct snd_soc_codec *codec) in rt5640_pmu_depop() argument
947 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_pmu_depop()
973 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5640_hp_event() local
974 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_hp_event()
978 rt5640_pmu_depop(codec); in rt5640_hp_event()
997 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5640_lout_event() local
1001 hp_amp_power_on(codec); in rt5640_lout_event()
1002 snd_soc_update_bits(codec, RT5640_PWR_ANLG1, in rt5640_lout_event()
1004 snd_soc_update_bits(codec, RT5640_OUTPUT, in rt5640_lout_event()
1009 snd_soc_update_bits(codec, RT5640_OUTPUT, in rt5640_lout_event()
1012 snd_soc_update_bits(codec, RT5640_PWR_ANLG1, in rt5640_lout_event()
1026 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5640_hp_power_event() local
1030 hp_amp_power_on(codec); in rt5640_hp_power_event()
1042 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5640_hp_post_event() local
1043 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_hp_post_event()
1631 static int get_sdp_info(struct snd_soc_codec *codec, int dai_id) in get_sdp_info() argument
1635 if (codec == NULL) in get_sdp_info()
1638 val = snd_soc_read(codec, RT5640_I2S1_SDP); in get_sdp_info()
1682 struct snd_soc_codec *codec = dai->codec; in rt5640_hw_params() local
1683 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_hw_params()
1690 dev_err(codec->dev, "Unsupported clock setting %d for DAI %d\n", in rt5640_hw_params()
1696 dev_err(codec->dev, "Unsupported frame size: %d\n", frame_size); in rt5640_hw_params()
1726 dai_sel = get_sdp_info(codec, dai->id); in rt5640_hw_params()
1728 dev_err(codec->dev, "Failed to get sdp info: %d\n", dai_sel); in rt5640_hw_params()
1735 snd_soc_update_bits(codec, RT5640_I2S1_SDP, in rt5640_hw_params()
1737 snd_soc_update_bits(codec, RT5640_ADDA_CLK1, mask_clk, val_clk); in rt5640_hw_params()
1743 snd_soc_update_bits(codec, RT5640_I2S2_SDP, in rt5640_hw_params()
1745 snd_soc_update_bits(codec, RT5640_ADDA_CLK1, mask_clk, val_clk); in rt5640_hw_params()
1753 struct snd_soc_codec *codec = dai->codec; in rt5640_set_dai_fmt() local
1754 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_set_dai_fmt()
1796 dai_sel = get_sdp_info(codec, dai->id); in rt5640_set_dai_fmt()
1798 dev_err(codec->dev, "Failed to get sdp info: %d\n", dai_sel); in rt5640_set_dai_fmt()
1802 snd_soc_update_bits(codec, RT5640_I2S1_SDP, in rt5640_set_dai_fmt()
1807 snd_soc_update_bits(codec, RT5640_I2S2_SDP, in rt5640_set_dai_fmt()
1818 struct snd_soc_codec *codec = dai->codec; in rt5640_set_dai_sysclk() local
1819 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_set_dai_sysclk()
1833 dev_err(codec->dev, "Invalid clock id (%d)\n", clk_id); in rt5640_set_dai_sysclk()
1836 snd_soc_update_bits(codec, RT5640_GLB_CLK, in rt5640_set_dai_sysclk()
1848 struct snd_soc_codec *codec = dai->codec; in rt5640_set_dai_pll() local
1849 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_set_dai_pll()
1858 dev_dbg(codec->dev, "PLL disabled\n"); in rt5640_set_dai_pll()
1862 snd_soc_update_bits(codec, RT5640_GLB_CLK, in rt5640_set_dai_pll()
1869 snd_soc_update_bits(codec, RT5640_GLB_CLK, in rt5640_set_dai_pll()
1874 dai_sel = get_sdp_info(codec, dai->id); in rt5640_set_dai_pll()
1876 dev_err(codec->dev, in rt5640_set_dai_pll()
1881 snd_soc_update_bits(codec, RT5640_GLB_CLK, in rt5640_set_dai_pll()
1885 snd_soc_update_bits(codec, RT5640_GLB_CLK, in rt5640_set_dai_pll()
1890 dev_err(codec->dev, "Unknown PLL source %d\n", source); in rt5640_set_dai_pll()
1896 dev_err(codec->dev, "Unsupport input clock %d\n", freq_in); in rt5640_set_dai_pll()
1900 dev_dbg(codec->dev, "bypass=%d m=%d n=%d k=%d\n", in rt5640_set_dai_pll()
1904 snd_soc_write(codec, RT5640_PLL_CTRL1, in rt5640_set_dai_pll()
1906 snd_soc_write(codec, RT5640_PLL_CTRL2, in rt5640_set_dai_pll()
1917 static int rt5640_set_bias_level(struct snd_soc_codec *codec, in rt5640_set_bias_level() argument
1922 if (SND_SOC_BIAS_OFF == snd_soc_codec_get_bias_level(codec)) { in rt5640_set_bias_level()
1923 snd_soc_update_bits(codec, RT5640_PWR_ANLG1, in rt5640_set_bias_level()
1929 snd_soc_update_bits(codec, RT5640_PWR_ANLG1, in rt5640_set_bias_level()
1932 snd_soc_update_bits(codec, RT5640_DUMMY1, in rt5640_set_bias_level()
1934 snd_soc_update_bits(codec, RT5640_MICBIAS, in rt5640_set_bias_level()
1940 snd_soc_write(codec, RT5640_DEPOP_M1, 0x0004); in rt5640_set_bias_level()
1941 snd_soc_write(codec, RT5640_DEPOP_M2, 0x1100); in rt5640_set_bias_level()
1942 snd_soc_update_bits(codec, RT5640_DUMMY1, 0x1, 0); in rt5640_set_bias_level()
1943 snd_soc_write(codec, RT5640_PWR_DIG1, 0x0000); in rt5640_set_bias_level()
1944 snd_soc_write(codec, RT5640_PWR_DIG2, 0x0000); in rt5640_set_bias_level()
1945 snd_soc_write(codec, RT5640_PWR_VOL, 0x0000); in rt5640_set_bias_level()
1946 snd_soc_write(codec, RT5640_PWR_MIXER, 0x0000); in rt5640_set_bias_level()
1947 snd_soc_write(codec, RT5640_PWR_ANLG1, 0x0000); in rt5640_set_bias_level()
1948 snd_soc_write(codec, RT5640_PWR_ANLG2, 0x0000); in rt5640_set_bias_level()
1958 int rt5640_dmic_enable(struct snd_soc_codec *codec, in rt5640_dmic_enable() argument
1961 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_dmic_enable()
1984 static int rt5640_probe(struct snd_soc_codec *codec) in rt5640_probe() argument
1986 struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec); in rt5640_probe()
1987 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_probe()
1989 rt5640->codec = codec; in rt5640_probe()
1991 snd_soc_codec_force_bias_level(codec, SND_SOC_BIAS_OFF); in rt5640_probe()
1993 snd_soc_update_bits(codec, RT5640_DUMMY1, 0x0301, 0x0301); in rt5640_probe()
1994 snd_soc_update_bits(codec, RT5640_MICBIAS, 0x0030, 0x0030); in rt5640_probe()
1995 snd_soc_update_bits(codec, RT5640_DSP_PATH2, 0xfc00, 0x0c00); in rt5640_probe()
1997 switch (snd_soc_read(codec, RT5640_RESET) & RT5640_ID_MASK) { in rt5640_probe()
2000 snd_soc_add_codec_controls(codec, in rt5640_probe()
2019 dev_err(codec->dev, in rt5640_probe()
2025 rt5640_dmic_enable(codec, rt5640->pdata.dmic1_data_pin, in rt5640_probe()
2031 static int rt5640_remove(struct snd_soc_codec *codec) in rt5640_remove() argument
2033 rt5640_reset(codec); in rt5640_remove()
2039 static int rt5640_suspend(struct snd_soc_codec *codec) in rt5640_suspend() argument
2041 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_suspend()
2043 snd_soc_codec_force_bias_level(codec, SND_SOC_BIAS_OFF); in rt5640_suspend()
2044 rt5640_reset(codec); in rt5640_suspend()
2053 static int rt5640_resume(struct snd_soc_codec *codec) in rt5640_resume() argument
2055 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_resume()