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()
570 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); \
571 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); \
576 twl4030_write(codec, reg, twl4030_read(codec, reg)); \
592 static void handsfree_ramp(struct snd_soc_codec *codec, int reg, int ramp) in handsfree_ramp() argument
596 hs_ctl = twl4030_read(codec, reg); in handsfree_ramp()
601 twl4030_write(codec, reg, hs_ctl); in handsfree_ramp()
604 twl4030_write(codec, reg, hs_ctl); in handsfree_ramp()
608 twl4030_write(codec, reg, hs_ctl); in handsfree_ramp()
613 twl4030_write(codec, reg, hs_ctl); in handsfree_ramp()
615 twl4030_write(codec, reg, hs_ctl); in handsfree_ramp()
618 twl4030_write(codec, reg, hs_ctl); in handsfree_ramp()
625 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in handsfreelpga_event() local
629 handsfree_ramp(codec, TWL4030_REG_HFL_CTL, 1); in handsfreelpga_event()
632 handsfree_ramp(codec, TWL4030_REG_HFL_CTL, 0); in handsfreelpga_event()
641 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in handsfreerpga_event() local
645 handsfree_ramp(codec, TWL4030_REG_HFR_CTL, 1); in handsfreerpga_event()
648 handsfree_ramp(codec, TWL4030_REG_HFR_CTL, 0); in handsfreerpga_event()
657 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in vibramux_event() local
659 twl4030_write(codec, TWL4030_REG_VIBRA_SET, 0xff); in vibramux_event()
666 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in apll_event() local
670 twl4030_apll_enable(codec, 1); in apll_event()
673 twl4030_apll_enable(codec, 0); in apll_event()
682 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in aif_event() local
685 audio_if = twl4030_read(codec, TWL4030_REG_AUDIO_IF); in aif_event()
690 twl4030_apll_enable(codec, 1); in aif_event()
692 twl4030_write(codec, TWL4030_REG_AUDIO_IF, in aif_event()
697 twl4030_write(codec, TWL4030_REG_AUDIO_IF, in aif_event()
699 twl4030_apll_enable(codec, 0); in aif_event()
705 static void headset_ramp(struct snd_soc_codec *codec, int ramp) in headset_ramp() argument
708 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in headset_ramp()
715 hs_gain = twl4030_read(codec, TWL4030_REG_HS_GAIN_SET); in headset_ramp()
716 hs_pop = twl4030_read(codec, TWL4030_REG_HS_POPN_SET); in headset_ramp()
727 twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop); in headset_ramp()
734 twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop); in headset_ramp()
739 twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop); in headset_ramp()
746 twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop); in headset_ramp()
754 twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop); in headset_ramp()
763 twl4030_write(codec, TWL4030_REG_HS_POPN_SET, hs_pop); in headset_ramp()
771 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in headsetlpga_event() local
772 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in headsetlpga_event()
778 headset_ramp(codec, 1); in headsetlpga_event()
785 headset_ramp(codec, 0); in headsetlpga_event()
796 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in headsetrpga_event() local
797 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in headsetrpga_event()
803 headset_ramp(codec, 1); in headsetrpga_event()
810 headset_ramp(codec, 0); in headsetrpga_event()
821 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in digimic_event() local
822 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in digimic_event()
845 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in snd_soc_get_volsw_twl4030() local
853 (snd_soc_read(codec, reg) >> shift) & mask; in snd_soc_get_volsw_twl4030()
860 (snd_soc_read(codec, reg) >> rshift) & mask; in snd_soc_get_volsw_twl4030()
874 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in snd_soc_put_volsw_twl4030() local
895 return snd_soc_update_bits(codec, reg, val_mask, val); in snd_soc_put_volsw_twl4030()
903 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in snd_soc_get_volsw_r2_twl4030() local
911 (snd_soc_read(codec, reg) >> shift) & mask; in snd_soc_get_volsw_r2_twl4030()
913 (snd_soc_read(codec, reg2) >> shift) & mask; in snd_soc_get_volsw_r2_twl4030()
930 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in snd_soc_put_volsw_r2_twl4030() local
951 err = snd_soc_update_bits(codec, reg, val_mask, val); in snd_soc_put_volsw_r2_twl4030()
955 err = snd_soc_update_bits(codec, reg2, val_mask, val2); in snd_soc_put_volsw_r2_twl4030()
971 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in snd_soc_put_twl4030_opmode_enum_double() local
972 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in snd_soc_put_twl4030_opmode_enum_double()
975 dev_err(codec->dev, in snd_soc_put_twl4030_opmode_enum_double()
1582 static int twl4030_set_bias_level(struct snd_soc_codec *codec, in twl4030_set_bias_level() argument
1591 if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) in twl4030_set_bias_level()
1592 twl4030_codec_enable(codec, 1); in twl4030_set_bias_level()
1595 twl4030_codec_enable(codec, 0); in twl4030_set_bias_level()
1598 codec->dapm.bias_level = level; in twl4030_set_bias_level()
1635 static void twl4030_tdm_enable(struct snd_soc_codec *codec, int direction, in twl4030_tdm_enable() argument
1640 reg = twl4030_read(codec, TWL4030_REG_OPTION); in twl4030_tdm_enable()
1652 twl4030_write(codec, TWL4030_REG_OPTION, reg); in twl4030_tdm_enable()
1658 struct snd_soc_codec *codec = dai->codec; in twl4030_startup() local
1659 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_startup()
1669 if (!(twl4030_read(codec, TWL4030_REG_CODEC_MODE) & in twl4030_startup()
1687 struct snd_soc_codec *codec = dai->codec; in twl4030_shutdown() local
1688 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_shutdown()
1704 twl4030_tdm_enable(codec, substream->stream, 0); in twl4030_shutdown()
1711 struct snd_soc_codec *codec = dai->codec; in twl4030_hw_params() local
1712 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_hw_params()
1717 format = twl4030_read(codec, TWL4030_REG_AUDIO_IF); in twl4030_hw_params()
1718 mode = twl4030_read(codec, TWL4030_REG_CODEC_MODE); in twl4030_hw_params()
1724 twl4030_tdm_enable(codec, substream->stream, 1); in twl4030_hw_params()
1734 old_mode = twl4030_read(codec, in twl4030_hw_params()
1770 dev_err(codec->dev, "%s: unknown rate %d\n", __func__, in twl4030_hw_params()
1776 old_format = twl4030_read(codec, TWL4030_REG_AUDIO_IF); in twl4030_hw_params()
1787 dev_err(codec->dev, "%s: unsupported bits/sample %d\n", in twl4030_hw_params()
1798 twl4030_codec_enable(codec, 0); in twl4030_hw_params()
1799 twl4030_write(codec, TWL4030_REG_CODEC_MODE, mode); in twl4030_hw_params()
1800 twl4030_write(codec, TWL4030_REG_AUDIO_IF, format); in twl4030_hw_params()
1801 twl4030_codec_enable(codec, 1); in twl4030_hw_params()
1803 twl4030_write(codec, TWL4030_REG_CODEC_MODE, mode); in twl4030_hw_params()
1804 twl4030_write(codec, TWL4030_REG_AUDIO_IF, format); in twl4030_hw_params()
1828 struct snd_soc_codec *codec = codec_dai->codec; in twl4030_set_dai_sysclk() local
1829 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_set_dai_sysclk()
1837 dev_err(codec->dev, "Unsupported HFCLKIN: %u\n", freq); in twl4030_set_dai_sysclk()
1842 dev_err(codec->dev, in twl4030_set_dai_sysclk()
1853 struct snd_soc_codec *codec = codec_dai->codec; in twl4030_set_dai_fmt() local
1854 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_set_dai_fmt()
1858 old_format = twl4030_read(codec, TWL4030_REG_AUDIO_IF); in twl4030_set_dai_fmt()
1894 twl4030_codec_enable(codec, 0); in twl4030_set_dai_fmt()
1895 twl4030_write(codec, TWL4030_REG_AUDIO_IF, format); in twl4030_set_dai_fmt()
1896 twl4030_codec_enable(codec, 1); in twl4030_set_dai_fmt()
1898 twl4030_write(codec, TWL4030_REG_AUDIO_IF, format); in twl4030_set_dai_fmt()
1907 struct snd_soc_codec *codec = dai->codec; in twl4030_set_tristate() local
1908 u8 reg = twl4030_read(codec, TWL4030_REG_AUDIO_IF); in twl4030_set_tristate()
1915 return twl4030_write(codec, TWL4030_REG_AUDIO_IF, reg); in twl4030_set_tristate()
1920 static void twl4030_voice_enable(struct snd_soc_codec *codec, int direction, in twl4030_voice_enable() argument
1925 reg = twl4030_read(codec, TWL4030_REG_OPTION); in twl4030_voice_enable()
1937 twl4030_write(codec, TWL4030_REG_OPTION, reg); in twl4030_voice_enable()
1943 struct snd_soc_codec *codec = dai->codec; in twl4030_voice_startup() local
1944 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_voice_startup()
1951 dev_err(codec->dev, in twl4030_voice_startup()
1960 mode = twl4030_read(codec, TWL4030_REG_CODEC_MODE) in twl4030_voice_startup()
1964 dev_err(codec->dev, "%s: the codec mode is not option2\n", in twl4030_voice_startup()
1975 struct snd_soc_codec *codec = dai->codec; in twl4030_voice_shutdown() local
1978 twl4030_voice_enable(codec, substream->stream, 0); in twl4030_voice_shutdown()
1985 struct snd_soc_codec *codec = dai->codec; in twl4030_voice_hw_params() local
1986 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_voice_hw_params()
1990 twl4030_voice_enable(codec, substream->stream, 1); in twl4030_voice_hw_params()
1993 old_mode = twl4030_read(codec, in twl4030_voice_hw_params()
2005 dev_err(codec->dev, "%s: unknown rate %d\n", __func__, in twl4030_voice_hw_params()
2016 twl4030_codec_enable(codec, 0); in twl4030_voice_hw_params()
2017 twl4030_write(codec, TWL4030_REG_CODEC_MODE, mode); in twl4030_voice_hw_params()
2018 twl4030_codec_enable(codec, 1); in twl4030_voice_hw_params()
2020 twl4030_write(codec, TWL4030_REG_CODEC_MODE, mode); in twl4030_voice_hw_params()
2030 struct snd_soc_codec *codec = codec_dai->codec; in twl4030_voice_set_dai_sysclk() local
2031 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_voice_set_dai_sysclk()
2034 dev_err(codec->dev, in twl4030_voice_set_dai_sysclk()
2040 dev_err(codec->dev, in twl4030_voice_set_dai_sysclk()
2051 struct snd_soc_codec *codec = codec_dai->codec; in twl4030_voice_set_dai_fmt() local
2052 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_voice_set_dai_fmt()
2056 old_format = twl4030_read(codec, TWL4030_REG_VOICE_IF); in twl4030_voice_set_dai_fmt()
2089 twl4030_codec_enable(codec, 0); in twl4030_voice_set_dai_fmt()
2090 twl4030_write(codec, TWL4030_REG_VOICE_IF, format); in twl4030_voice_set_dai_fmt()
2091 twl4030_codec_enable(codec, 1); in twl4030_voice_set_dai_fmt()
2093 twl4030_write(codec, TWL4030_REG_VOICE_IF, format); in twl4030_voice_set_dai_fmt()
2102 struct snd_soc_codec *codec = dai->codec; in twl4030_voice_set_tristate() local
2103 u8 reg = twl4030_read(codec, TWL4030_REG_VOICE_IF); in twl4030_voice_set_tristate()
2110 return twl4030_write(codec, TWL4030_REG_VOICE_IF, reg); in twl4030_voice_set_tristate()
2171 static int twl4030_soc_probe(struct snd_soc_codec *codec) in twl4030_soc_probe() argument
2175 twl4030 = devm_kzalloc(codec->dev, sizeof(struct twl4030_priv), in twl4030_soc_probe()
2179 snd_soc_codec_set_drvdata(codec, twl4030); in twl4030_soc_probe()
2183 twl4030_init_chip(codec); in twl4030_soc_probe()
2188 static int twl4030_soc_remove(struct snd_soc_codec *codec) in twl4030_soc_remove() argument
2190 struct twl4030_priv *twl4030 = snd_soc_codec_get_drvdata(codec); in twl4030_soc_remove()