Lines Matching refs:codec

170 static int rt5640_reset(struct snd_soc_codec *codec)  in rt5640_reset()  argument
172 return snd_soc_write(codec, RT5640_RESET, 0); in rt5640_reset()
461 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in set_dmic_clk() local
462 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in set_dmic_clk()
468 dev_err(codec->dev, "Failed to set DMIC clock\n"); in set_dmic_clk()
470 snd_soc_update_bits(codec, RT5640_DMIC, RT5640_DMIC_CLK_MASK, in set_dmic_clk()
478 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(source->dapm); in is_sys_clk_from_pll() local
481 val = snd_soc_read(codec, RT5640_GLB_CLK); in is_sys_clk_from_pll()
913 static void hp_amp_power_on(struct snd_soc_codec *codec) in hp_amp_power_on() argument
915 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in hp_amp_power_on()
939 static void rt5640_pmu_depop(struct snd_soc_codec *codec) in rt5640_pmu_depop() argument
941 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_pmu_depop()
967 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5640_hp_event() local
968 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_hp_event()
972 rt5640_pmu_depop(codec); in rt5640_hp_event()
991 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5640_lout_event() local
995 hp_amp_power_on(codec); in rt5640_lout_event()
996 snd_soc_update_bits(codec, RT5640_PWR_ANLG1, in rt5640_lout_event()
998 snd_soc_update_bits(codec, RT5640_OUTPUT, in rt5640_lout_event()
1003 snd_soc_update_bits(codec, RT5640_OUTPUT, in rt5640_lout_event()
1006 snd_soc_update_bits(codec, RT5640_PWR_ANLG1, in rt5640_lout_event()
1020 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5640_hp_power_event() local
1024 hp_amp_power_on(codec); in rt5640_hp_power_event()
1036 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in rt5640_hp_post_event() local
1037 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_hp_post_event()
1616 static int get_sdp_info(struct snd_soc_codec *codec, int dai_id) in get_sdp_info() argument
1620 if (codec == NULL) in get_sdp_info()
1623 val = snd_soc_read(codec, RT5640_I2S1_SDP); in get_sdp_info()
1667 struct snd_soc_codec *codec = dai->codec; in rt5640_hw_params() local
1668 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_hw_params()
1675 dev_err(codec->dev, "Unsupported clock setting %d for DAI %d\n", in rt5640_hw_params()
1681 dev_err(codec->dev, "Unsupported frame size: %d\n", frame_size); in rt5640_hw_params()
1711 dai_sel = get_sdp_info(codec, dai->id); in rt5640_hw_params()
1713 dev_err(codec->dev, "Failed to get sdp info: %d\n", dai_sel); in rt5640_hw_params()
1720 snd_soc_update_bits(codec, RT5640_I2S1_SDP, in rt5640_hw_params()
1722 snd_soc_update_bits(codec, RT5640_ADDA_CLK1, mask_clk, val_clk); in rt5640_hw_params()
1728 snd_soc_update_bits(codec, RT5640_I2S2_SDP, in rt5640_hw_params()
1730 snd_soc_update_bits(codec, RT5640_ADDA_CLK1, mask_clk, val_clk); in rt5640_hw_params()
1738 struct snd_soc_codec *codec = dai->codec; in rt5640_set_dai_fmt() local
1739 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_set_dai_fmt()
1781 dai_sel = get_sdp_info(codec, dai->id); in rt5640_set_dai_fmt()
1783 dev_err(codec->dev, "Failed to get sdp info: %d\n", dai_sel); in rt5640_set_dai_fmt()
1787 snd_soc_update_bits(codec, RT5640_I2S1_SDP, in rt5640_set_dai_fmt()
1792 snd_soc_update_bits(codec, RT5640_I2S2_SDP, in rt5640_set_dai_fmt()
1803 struct snd_soc_codec *codec = dai->codec; in rt5640_set_dai_sysclk() local
1804 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_set_dai_sysclk()
1818 dev_err(codec->dev, "Invalid clock id (%d)\n", clk_id); in rt5640_set_dai_sysclk()
1821 snd_soc_update_bits(codec, RT5640_GLB_CLK, in rt5640_set_dai_sysclk()
1833 struct snd_soc_codec *codec = dai->codec; in rt5640_set_dai_pll() local
1834 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_set_dai_pll()
1843 dev_dbg(codec->dev, "PLL disabled\n"); in rt5640_set_dai_pll()
1847 snd_soc_update_bits(codec, RT5640_GLB_CLK, in rt5640_set_dai_pll()
1854 snd_soc_update_bits(codec, RT5640_GLB_CLK, in rt5640_set_dai_pll()
1859 dai_sel = get_sdp_info(codec, dai->id); in rt5640_set_dai_pll()
1861 dev_err(codec->dev, in rt5640_set_dai_pll()
1866 snd_soc_update_bits(codec, RT5640_GLB_CLK, in rt5640_set_dai_pll()
1870 snd_soc_update_bits(codec, RT5640_GLB_CLK, in rt5640_set_dai_pll()
1875 dev_err(codec->dev, "Unknown PLL source %d\n", source); in rt5640_set_dai_pll()
1881 dev_err(codec->dev, "Unsupport input clock %d\n", freq_in); in rt5640_set_dai_pll()
1885 dev_dbg(codec->dev, "bypass=%d m=%d n=%d k=%d\n", in rt5640_set_dai_pll()
1889 snd_soc_write(codec, RT5640_PLL_CTRL1, in rt5640_set_dai_pll()
1891 snd_soc_write(codec, RT5640_PLL_CTRL2, in rt5640_set_dai_pll()
1902 static int rt5640_set_bias_level(struct snd_soc_codec *codec, in rt5640_set_bias_level() argument
1907 if (SND_SOC_BIAS_OFF == codec->dapm.bias_level) { in rt5640_set_bias_level()
1908 snd_soc_update_bits(codec, RT5640_PWR_ANLG1, in rt5640_set_bias_level()
1914 snd_soc_update_bits(codec, RT5640_PWR_ANLG1, in rt5640_set_bias_level()
1917 snd_soc_update_bits(codec, RT5640_DUMMY1, in rt5640_set_bias_level()
1919 snd_soc_update_bits(codec, RT5640_MICBIAS, in rt5640_set_bias_level()
1925 snd_soc_write(codec, RT5640_DEPOP_M1, 0x0004); in rt5640_set_bias_level()
1926 snd_soc_write(codec, RT5640_DEPOP_M2, 0x1100); in rt5640_set_bias_level()
1927 snd_soc_update_bits(codec, RT5640_DUMMY1, 0x1, 0); in rt5640_set_bias_level()
1928 snd_soc_write(codec, RT5640_PWR_DIG1, 0x0000); in rt5640_set_bias_level()
1929 snd_soc_write(codec, RT5640_PWR_DIG2, 0x0000); in rt5640_set_bias_level()
1930 snd_soc_write(codec, RT5640_PWR_VOL, 0x0000); in rt5640_set_bias_level()
1931 snd_soc_write(codec, RT5640_PWR_MIXER, 0x0000); in rt5640_set_bias_level()
1932 snd_soc_write(codec, RT5640_PWR_ANLG1, 0x0000); in rt5640_set_bias_level()
1933 snd_soc_write(codec, RT5640_PWR_ANLG2, 0x0000); in rt5640_set_bias_level()
1939 codec->dapm.bias_level = level; in rt5640_set_bias_level()
1944 int rt5640_dmic_enable(struct snd_soc_codec *codec, in rt5640_dmic_enable() argument
1947 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_dmic_enable()
1970 static int rt5640_probe(struct snd_soc_codec *codec) in rt5640_probe() argument
1972 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_probe()
1974 rt5640->codec = codec; in rt5640_probe()
1976 rt5640_set_bias_level(codec, SND_SOC_BIAS_OFF); in rt5640_probe()
1978 snd_soc_update_bits(codec, RT5640_DUMMY1, 0x0301, 0x0301); in rt5640_probe()
1979 snd_soc_update_bits(codec, RT5640_MICBIAS, 0x0030, 0x0030); in rt5640_probe()
1980 snd_soc_update_bits(codec, RT5640_DSP_PATH2, 0xfc00, 0x0c00); in rt5640_probe()
1982 switch (snd_soc_read(codec, RT5640_RESET) & RT5640_ID_MASK) { in rt5640_probe()
1985 snd_soc_add_codec_controls(codec, in rt5640_probe()
1988 snd_soc_dapm_new_controls(&codec->dapm, in rt5640_probe()
1991 snd_soc_dapm_add_routes(&codec->dapm, in rt5640_probe()
1996 snd_soc_dapm_new_controls(&codec->dapm, in rt5640_probe()
1999 snd_soc_dapm_add_routes(&codec->dapm, in rt5640_probe()
2004 dev_err(codec->dev, in rt5640_probe()
2010 rt5640_dmic_enable(codec, rt5640->pdata.dmic1_data_pin, in rt5640_probe()
2016 static int rt5640_remove(struct snd_soc_codec *codec) in rt5640_remove() argument
2018 rt5640_reset(codec); in rt5640_remove()
2024 static int rt5640_suspend(struct snd_soc_codec *codec) in rt5640_suspend() argument
2026 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_suspend()
2028 rt5640_set_bias_level(codec, SND_SOC_BIAS_OFF); in rt5640_suspend()
2029 rt5640_reset(codec); in rt5640_suspend()
2038 static int rt5640_resume(struct snd_soc_codec *codec) in rt5640_resume() argument
2040 struct rt5640_priv *rt5640 = snd_soc_codec_get_drvdata(codec); in rt5640_resume()