Lines Matching refs:codec
89 static unsigned int twl4030_read(struct snd_soc_codec *codec, unsigned int reg) in twl4030_read() argument
91 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_read()
154 static int twl4030_write(struct snd_soc_codec *codec, unsigned int reg, in twl4030_write() argument
157 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_write()
189 static void twl4030_codec_enable(struct snd_soc_codec *codec, int enable) in twl4030_codec_enable() argument
191 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_codec_enable()
230 static struct twl4030_codec_data *twl4030_get_pdata(struct snd_soc_codec *codec) in twl4030_get_pdata() argument
232 struct twl4030_codec_data *pdata = dev_get_platdata(codec->dev); in twl4030_get_pdata()
235 twl4030_codec_node = of_find_node_by_name(codec->dev->parent->of_node, in twl4030_get_pdata()
239 pdata = devm_kzalloc(codec->dev, in twl4030_get_pdata()
243 dev_err(codec->dev, "Can not allocate memory\n"); in twl4030_get_pdata()
252 static void twl4030_init_chip(struct snd_soc_codec *codec) in twl4030_init_chip() argument
255 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_init_chip()
259 pdata = twl4030_get_pdata(codec); in twl4030_init_chip()
266 dev_warn(codec->dev, in twl4030_init_chip()
273 dev_err(codec->dev, in twl4030_init_chip()
294 reg = twl4030_read(codec, TWL4030_REG_MISC_SET_1); in twl4030_init_chip()
295 twl4030_write(codec, TWL4030_REG_MISC_SET_1, in twl4030_init_chip()
298 twl4030_write(codec, TWL4030_REG_OPTION, in twl4030_init_chip()
303 twl4030_write(codec, TWL4030_REG_ARXR2_APGA_CTL, 0x32); in twl4030_init_chip()
311 reg = twl4030_read(codec, TWL4030_REG_HS_POPN_SET); in twl4030_init_chip()
314 twl4030_write(codec, TWL4030_REG_HS_POPN_SET, reg); in twl4030_init_chip()
317 twl4030_codec_enable(codec, 1); in twl4030_init_chip()
319 reg = twl4030_read(codec, TWL4030_REG_ANAMICL); in twl4030_init_chip()
322 twl4030_write(codec, TWL4030_REG_ANAMICL, in twl4030_init_chip()
341 twl4030_codec_enable(codec, 0); in twl4030_init_chip()
344 static void twl4030_apll_enable(struct snd_soc_codec *codec, int enable) in twl4030_apll_enable() argument
346 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_apll_enable()
569 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); \
570 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); \
575 twl4030_write(codec, reg, twl4030_read(codec, reg)); \
591 static void handsfree_ramp(struct snd_soc_codec *codec, int reg, int ramp) in handsfree_ramp() argument
595 hs_ctl = twl4030_read(codec, reg); in handsfree_ramp()
600 twl4030_write(codec, reg, hs_ctl); in handsfree_ramp()
603 twl4030_write(codec, reg, hs_ctl); in handsfree_ramp()
607 twl4030_write(codec, reg, hs_ctl); in handsfree_ramp()
612 twl4030_write(codec, reg, hs_ctl); in handsfree_ramp()
614 twl4030_write(codec, reg, hs_ctl); in handsfree_ramp()
617 twl4030_write(codec, reg, hs_ctl); in handsfree_ramp()
624 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in handsfreelpga_event() local
628 handsfree_ramp(codec, TWL4030_REG_HFL_CTL, 1); in handsfreelpga_event()
631 handsfree_ramp(codec, TWL4030_REG_HFL_CTL, 0); in handsfreelpga_event()
640 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in handsfreerpga_event() local
644 handsfree_ramp(codec, TWL4030_REG_HFR_CTL, 1); in handsfreerpga_event()
647 handsfree_ramp(codec, TWL4030_REG_HFR_CTL, 0); in handsfreerpga_event()
656 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in vibramux_event() local
658 twl4030_write(codec, TWL4030_REG_VIBRA_SET, 0xff); in vibramux_event()
665 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in apll_event() local
669 twl4030_apll_enable(codec, 1); in apll_event()
672 twl4030_apll_enable(codec, 0); in apll_event()
681 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in aif_event() local
684 audio_if = twl4030_read(codec, TWL4030_REG_AUDIO_IF); in aif_event()
689 twl4030_apll_enable(codec, 1); in aif_event()
691 twl4030_write(codec, TWL4030_REG_AUDIO_IF, in aif_event()
696 twl4030_write(codec, TWL4030_REG_AUDIO_IF, in aif_event()
698 twl4030_apll_enable(codec, 0); in aif_event()
704 static void headset_ramp(struct snd_soc_codec *codec, int ramp) in headset_ramp() argument
707 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in headset_ramp()
714 hs_gain = twl4030_read(codec, TWL4030_REG_HS_GAIN_SET); in headset_ramp()
715 hs_pop = twl4030_read(codec, TWL4030_REG_HS_POPN_SET); in headset_ramp()
726 twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop); in headset_ramp()
733 twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop); in headset_ramp()
738 twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop); in headset_ramp()
745 twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop); in headset_ramp()
753 twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop); in headset_ramp()
762 twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop); in headset_ramp()
770 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in headsetlpga_event() local
771 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in headsetlpga_event()
777 headset_ramp(codec, 1); in headsetlpga_event()
784 headset_ramp(codec, 0); in headsetlpga_event()
795 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in headsetrpga_event() local
796 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in headsetrpga_event()
802 headset_ramp(codec, 1); in headsetrpga_event()
809 headset_ramp(codec, 0); in headsetrpga_event()
820 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in digimic_event() local
821 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in digimic_event()
844 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in snd_soc_get_volsw_twl4030() local
852 (snd_soc_read(codec, reg) >> shift) & mask; in snd_soc_get_volsw_twl4030()
859 (snd_soc_read(codec, reg) >> rshift) & mask; in snd_soc_get_volsw_twl4030()
873 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in snd_soc_put_volsw_twl4030() local
894 return snd_soc_update_bits(codec, reg, val_mask, val); in snd_soc_put_volsw_twl4030()
902 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in snd_soc_get_volsw_r2_twl4030() local
910 (snd_soc_read(codec, reg) >> shift) & mask; in snd_soc_get_volsw_r2_twl4030()
912 (snd_soc_read(codec, reg2) >> shift) & mask; in snd_soc_get_volsw_r2_twl4030()
929 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in snd_soc_put_volsw_r2_twl4030() local
950 err = snd_soc_update_bits(codec, reg, val_mask, val); in snd_soc_put_volsw_r2_twl4030()
954 err = snd_soc_update_bits(codec, reg2, val_mask, val2); in snd_soc_put_volsw_r2_twl4030()
970 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in snd_soc_put_twl4030_opmode_enum_double() local
971 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in snd_soc_put_twl4030_opmode_enum_double()
974 dev_err(codec->dev, in snd_soc_put_twl4030_opmode_enum_double()
1581 static int twl4030_set_bias_level(struct snd_soc_codec *codec, in twl4030_set_bias_level() argument
1590 if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) in twl4030_set_bias_level()
1591 twl4030_codec_enable(codec, 1); in twl4030_set_bias_level()
1594 twl4030_codec_enable(codec, 0); in twl4030_set_bias_level()
1630 static void twl4030_tdm_enable(struct snd_soc_codec *codec, int direction, in twl4030_tdm_enable() argument
1635 reg = twl4030_read(codec, TWL4030_REG_OPTION); in twl4030_tdm_enable()
1647 twl4030_write(codec, TWL4030_REG_OPTION, reg); in twl4030_tdm_enable()
1653 struct snd_soc_codec *codec = dai->codec; in twl4030_startup() local
1654 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_startup()
1664 if (!(twl4030_read(codec, TWL4030_REG_CODEC_MODE) & in twl4030_startup()
1682 struct snd_soc_codec *codec = dai->codec; in twl4030_shutdown() local
1683 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_shutdown()
1699 twl4030_tdm_enable(codec, substream->stream, 0); in twl4030_shutdown()
1706 struct snd_soc_codec *codec = dai->codec; in twl4030_hw_params() local
1707 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_hw_params()
1712 format = twl4030_read(codec, TWL4030_REG_AUDIO_IF); in twl4030_hw_params()
1713 mode = twl4030_read(codec, TWL4030_REG_CODEC_MODE); in twl4030_hw_params()
1719 twl4030_tdm_enable(codec, substream->stream, 1); in twl4030_hw_params()
1729 old_mode = twl4030_read(codec, in twl4030_hw_params()
1765 dev_err(codec->dev, "%s: unknown rate %d\n", __func__, in twl4030_hw_params()
1771 old_format = twl4030_read(codec, TWL4030_REG_AUDIO_IF); in twl4030_hw_params()
1782 dev_err(codec->dev, "%s: unsupported bits/sample %d\n", in twl4030_hw_params()
1793 twl4030_codec_enable(codec, 0); in twl4030_hw_params()
1794 twl4030_write(codec, TWL4030_REG_CODEC_MODE, mode); in twl4030_hw_params()
1795 twl4030_write(codec, TWL4030_REG_AUDIO_IF, format); in twl4030_hw_params()
1796 twl4030_codec_enable(codec, 1); in twl4030_hw_params()
1798 twl4030_write(codec, TWL4030_REG_CODEC_MODE, mode); in twl4030_hw_params()
1799 twl4030_write(codec, TWL4030_REG_AUDIO_IF, format); in twl4030_hw_params()
1823 struct snd_soc_codec *codec = codec_dai->codec; in twl4030_set_dai_sysclk() local
1824 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_set_dai_sysclk()
1832 dev_err(codec->dev, "Unsupported HFCLKIN: %u\n", freq); in twl4030_set_dai_sysclk()
1837 dev_err(codec->dev, in twl4030_set_dai_sysclk()
1848 struct snd_soc_codec *codec = codec_dai->codec; in twl4030_set_dai_fmt() local
1849 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_set_dai_fmt()
1853 old_format = twl4030_read(codec, TWL4030_REG_AUDIO_IF); in twl4030_set_dai_fmt()
1889 twl4030_codec_enable(codec, 0); in twl4030_set_dai_fmt()
1890 twl4030_write(codec, TWL4030_REG_AUDIO_IF, format); in twl4030_set_dai_fmt()
1891 twl4030_codec_enable(codec, 1); in twl4030_set_dai_fmt()
1893 twl4030_write(codec, TWL4030_REG_AUDIO_IF, format); in twl4030_set_dai_fmt()
1902 struct snd_soc_codec *codec = dai->codec; in twl4030_set_tristate() local
1903 u8 reg = twl4030_read(codec, TWL4030_REG_AUDIO_IF); in twl4030_set_tristate()
1910 return twl4030_write(codec, TWL4030_REG_AUDIO_IF, reg); in twl4030_set_tristate()
1915 static void twl4030_voice_enable(struct snd_soc_codec *codec, int direction, in twl4030_voice_enable() argument
1920 reg = twl4030_read(codec, TWL4030_REG_OPTION); in twl4030_voice_enable()
1932 twl4030_write(codec, TWL4030_REG_OPTION, reg); in twl4030_voice_enable()
1938 struct snd_soc_codec *codec = dai->codec; in twl4030_voice_startup() local
1939 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_voice_startup()
1946 dev_err(codec->dev, in twl4030_voice_startup()
1955 mode = twl4030_read(codec, TWL4030_REG_CODEC_MODE) in twl4030_voice_startup()
1959 dev_err(codec->dev, "%s: the codec mode is not option2\n", in twl4030_voice_startup()
1970 struct snd_soc_codec *codec = dai->codec; in twl4030_voice_shutdown() local
1973 twl4030_voice_enable(codec, substream->stream, 0); in twl4030_voice_shutdown()
1980 struct snd_soc_codec *codec = dai->codec; in twl4030_voice_hw_params() local
1981 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_voice_hw_params()
1985 twl4030_voice_enable(codec, substream->stream, 1); in twl4030_voice_hw_params()
1988 old_mode = twl4030_read(codec, in twl4030_voice_hw_params()
2000 dev_err(codec->dev, "%s: unknown rate %d\n", __func__, in twl4030_voice_hw_params()
2011 twl4030_codec_enable(codec, 0); in twl4030_voice_hw_params()
2012 twl4030_write(codec, TWL4030_REG_CODEC_MODE, mode); in twl4030_voice_hw_params()
2013 twl4030_codec_enable(codec, 1); in twl4030_voice_hw_params()
2015 twl4030_write(codec, TWL4030_REG_CODEC_MODE, mode); in twl4030_voice_hw_params()
2025 struct snd_soc_codec *codec = codec_dai->codec; in twl4030_voice_set_dai_sysclk() local
2026 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_voice_set_dai_sysclk()
2029 dev_err(codec->dev, in twl4030_voice_set_dai_sysclk()
2035 dev_err(codec->dev, in twl4030_voice_set_dai_sysclk()
2046 struct snd_soc_codec *codec = codec_dai->codec; in twl4030_voice_set_dai_fmt() local
2047 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_voice_set_dai_fmt()
2051 old_format = twl4030_read(codec, TWL4030_REG_VOICE_IF); in twl4030_voice_set_dai_fmt()
2084 twl4030_codec_enable(codec, 0); in twl4030_voice_set_dai_fmt()
2085 twl4030_write(codec, TWL4030_REG_VOICE_IF, format); in twl4030_voice_set_dai_fmt()
2086 twl4030_codec_enable(codec, 1); in twl4030_voice_set_dai_fmt()
2088 twl4030_write(codec, TWL4030_REG_VOICE_IF, format); in twl4030_voice_set_dai_fmt()
2097 struct snd_soc_codec *codec = dai->codec; in twl4030_voice_set_tristate() local
2098 u8 reg = twl4030_read(codec, TWL4030_REG_VOICE_IF); in twl4030_voice_set_tristate()
2105 return twl4030_write(codec, TWL4030_REG_VOICE_IF, reg); in twl4030_voice_set_tristate()
2166 static int twl4030_soc_probe(struct snd_soc_codec *codec) in twl4030_soc_probe() argument
2170 twl4030 = devm_kzalloc(codec->dev, sizeof(struct twl4030_priv), in twl4030_soc_probe()
2174 snd_soc_codec_set_drvdata(codec, twl4030); in twl4030_soc_probe()
2178 twl4030_init_chip(codec); in twl4030_soc_probe()
2183 static int twl4030_soc_remove(struct snd_soc_codec *codec) in twl4030_soc_remove() argument
2185 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_soc_remove()