Lines Matching refs:codec

1040 static void anc_fir(struct snd_soc_codec *codec,  in anc_fir()  argument
1044 snd_soc_update_bits(codec, AB8500_ANCCONF1, in anc_fir()
1048 snd_soc_write(codec, AB8500_ANCCONF5, val >> 8 & 0xff); in anc_fir()
1049 snd_soc_write(codec, AB8500_ANCCONF6, val & 0xff); in anc_fir()
1052 snd_soc_update_bits(codec, AB8500_ANCCONF1, in anc_fir()
1057 static void anc_iir(struct snd_soc_codec *codec, unsigned int bnk, in anc_iir() argument
1062 snd_soc_update_bits(codec, AB8500_ANCCONF1, in anc_iir()
1066 snd_soc_update_bits(codec, AB8500_ANCCONF1, in anc_iir()
1070 snd_soc_update_bits(codec, AB8500_ANCCONF1, in anc_iir()
1075 snd_soc_write(codec, AB8500_ANCCONF7, 0); in anc_iir()
1076 snd_soc_write(codec, AB8500_ANCCONF8, val >> 16 & 0xff); in anc_iir()
1079 snd_soc_write(codec, AB8500_ANCCONF7, val >> 8 & 0xff); in anc_iir()
1080 snd_soc_write(codec, AB8500_ANCCONF8, val & 0xff); in anc_iir()
1083 snd_soc_update_bits(codec, AB8500_ANCCONF1, in anc_iir()
1088 static void anc_configure(struct snd_soc_codec *codec, in anc_configure() argument
1091 struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); in anc_configure()
1094 dev_dbg(codec->dev, "%s: Enter.\n", __func__); in anc_configure()
1097 snd_soc_update_bits(codec, AB8500_ANCCONF1, in anc_configure()
1100 snd_soc_update_bits(codec, AB8500_ANCCONF1, in anc_configure()
1106 val = snd_soc_read(codec, in anc_configure()
1108 anc_fir(codec, bnk, par, val); in anc_configure()
1114 val = snd_soc_read(codec, in anc_configure()
1116 anc_iir(codec, bnk, par, val); in anc_configure()
1119 dev_dbg(codec->dev, "%s: Exit.\n", __func__); in anc_configure()
1129 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in sid_status_control_get() local
1130 struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); in sid_status_control_get()
1143 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in sid_status_control_put() local
1144 struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); in sid_status_control_put()
1148 dev_dbg(codec->dev, "%s: Enter\n", __func__); in sid_status_control_put()
1151 dev_err(codec->dev, in sid_status_control_put()
1159 sidconf = snd_soc_read(codec, AB8500_SIDFIRCONF); in sid_status_control_put()
1162 dev_err(codec->dev, "%s: Sidetone busy while off!\n", in sid_status_control_put()
1171 snd_soc_write(codec, AB8500_SIDFIRADR, 0); in sid_status_control_put()
1174 val = snd_soc_read(codec, drvdata->sid_fir_values[param]); in sid_status_control_put()
1175 snd_soc_write(codec, AB8500_SIDFIRCOEF1, val >> 8 & 0xff); in sid_status_control_put()
1176 snd_soc_write(codec, AB8500_SIDFIRCOEF2, val & 0xff); in sid_status_control_put()
1179 snd_soc_update_bits(codec, AB8500_SIDFIRADR, in sid_status_control_put()
1182 snd_soc_update_bits(codec, AB8500_SIDFIRADR, in sid_status_control_put()
1190 dev_dbg(codec->dev, "%s: Exit\n", __func__); in sid_status_control_put()
1198 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in anc_status_control_get() local
1199 struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); in anc_status_control_get()
1211 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in anc_status_control_put() local
1212 struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); in anc_status_control_put()
1213 struct device *dev = codec->dev; in anc_status_control_put()
1237 status = snd_soc_dapm_force_enable_pin(&codec->dapm, in anc_status_control_put()
1245 snd_soc_dapm_sync(&codec->dapm); in anc_status_control_put()
1247 anc_configure(codec, apply_fir, apply_iir); in anc_status_control_put()
1262 status = snd_soc_dapm_disable_pin(&codec->dapm, "ANC Configure Input"); in anc_status_control_put()
1263 snd_soc_dapm_sync(&codec->dapm); in anc_status_control_put()
1294 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in filter_control_get() local
1295 struct ab8500_codec_drvdata *drvdata = snd_soc_codec_get_drvdata(codec); in filter_control_get()
1311 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in filter_control_put() local
1312 struct ab8500_codec_drvdata *drvdata = snd_soc_codec_get_drvdata(codec); in filter_control_put()
1930 static int ab8500_audio_init_audioblock(struct snd_soc_codec *codec) in ab8500_audio_init_audioblock() argument
1934 dev_dbg(codec->dev, "%s: Enter.\n", __func__); in ab8500_audio_init_audioblock()
1947 static int ab8500_audio_setup_mics(struct snd_soc_codec *codec, in ab8500_audio_setup_mics() argument
1955 dev_dbg(codec->dev, "%s: Enter.\n", __func__); in ab8500_audio_setup_mics()
1958 status = abx500_get_register_interruptible(codec->dev, AB8500_MISC, in ab8500_audio_setup_mics()
1965 status = abx500_set_register_interruptible(codec->dev, in ab8500_audio_setup_mics()
1973 dev_dbg(codec->dev, "%s: Mic 1a regulator: %s\n", __func__, in ab8500_audio_setup_mics()
1976 status = snd_soc_dapm_add_routes(&codec->dapm, route, 1); in ab8500_audio_setup_mics()
1977 dev_dbg(codec->dev, "%s: Mic 1b regulator: %s\n", __func__, in ab8500_audio_setup_mics()
1980 status |= snd_soc_dapm_add_routes(&codec->dapm, route, 1); in ab8500_audio_setup_mics()
1981 dev_dbg(codec->dev, "%s: Mic 2 regulator: %s\n", __func__, in ab8500_audio_setup_mics()
1984 status |= snd_soc_dapm_add_routes(&codec->dapm, route, 1); in ab8500_audio_setup_mics()
1986 dev_err(codec->dev, in ab8500_audio_setup_mics()
1993 dev_dbg(codec->dev, "%s: Mic 1 mic-type: %s\n", __func__, in ab8500_audio_setup_mics()
1995 snd_soc_update_bits(codec, AB8500_ANAGAIN1, AB8500_ANAGAINX_ENSEMICX, in ab8500_audio_setup_mics()
1998 dev_dbg(codec->dev, "%s: Mic 2 mic-type: %s\n", __func__, in ab8500_audio_setup_mics()
2000 snd_soc_update_bits(codec, AB8500_ANAGAIN2, AB8500_ANAGAINX_ENSEMICX, in ab8500_audio_setup_mics()
2007 static int ab8500_audio_set_ear_cmv(struct snd_soc_codec *codec, in ab8500_audio_set_ear_cmv() argument
2026 dev_err(codec->dev, in ab8500_audio_set_ear_cmv()
2031 dev_dbg(codec->dev, "%s: Earpiece CM-voltage: %s\n", __func__, in ab8500_audio_set_ear_cmv()
2033 snd_soc_update_bits(codec, AB8500_ANACONF1, AB8500_ANACONF1_EARSELCM, in ab8500_audio_set_ear_cmv()
2043 struct snd_soc_codec *codec = dai->codec; in ab8500_audio_set_bit_delay() local
2055 dev_err(dai->codec->dev, in ab8500_audio_set_bit_delay()
2061 dev_dbg(dai->codec->dev, "%s: IF0 Bit-delay: %d bits.\n", in ab8500_audio_set_bit_delay()
2063 snd_soc_update_bits(codec, AB8500_DIGIFCONF2, mask, val); in ab8500_audio_set_bit_delay()
2069 static int ab8500_codec_set_dai_clock_gate(struct snd_soc_codec *codec, in ab8500_codec_set_dai_clock_gate() argument
2082 dev_dbg(codec->dev, "%s: IF0 Clock is continuous.\n", in ab8500_codec_set_dai_clock_gate()
2087 dev_dbg(codec->dev, "%s: IF0 Clock is gated.\n", in ab8500_codec_set_dai_clock_gate()
2091 dev_err(codec->dev, in ab8500_codec_set_dai_clock_gate()
2097 snd_soc_update_bits(codec, AB8500_DIGIFCONF1, mask, val); in ab8500_codec_set_dai_clock_gate()
2106 struct snd_soc_codec *codec = dai->codec; in ab8500_codec_set_dai_fmt() local
2109 dev_dbg(codec->dev, "%s: Enter (fmt = 0x%x)\n", __func__, fmt); in ab8500_codec_set_dai_fmt()
2119 dev_dbg(dai->codec->dev, in ab8500_codec_set_dai_fmt()
2124 dev_dbg(dai->codec->dev, in ab8500_codec_set_dai_fmt()
2129 dev_err(dai->codec->dev, in ab8500_codec_set_dai_fmt()
2133 dev_err(dai->codec->dev, in ab8500_codec_set_dai_fmt()
2140 snd_soc_update_bits(codec, AB8500_DIGIFCONF3, mask, val); in ab8500_codec_set_dai_fmt()
2143 status = ab8500_codec_set_dai_clock_gate(codec, fmt); in ab8500_codec_set_dai_fmt()
2145 dev_err(dai->codec->dev, in ab8500_codec_set_dai_fmt()
2161 dev_dbg(dai->codec->dev, "%s: IF0 Protocol: I2S\n", __func__); in ab8500_codec_set_dai_fmt()
2167 dev_dbg(dai->codec->dev, in ab8500_codec_set_dai_fmt()
2174 dev_dbg(dai->codec->dev, in ab8500_codec_set_dai_fmt()
2181 dev_err(dai->codec->dev, in ab8500_codec_set_dai_fmt()
2189 dev_dbg(dai->codec->dev, in ab8500_codec_set_dai_fmt()
2194 dev_dbg(dai->codec->dev, in ab8500_codec_set_dai_fmt()
2200 dev_dbg(dai->codec->dev, in ab8500_codec_set_dai_fmt()
2206 dev_dbg(dai->codec->dev, in ab8500_codec_set_dai_fmt()
2213 dev_err(dai->codec->dev, in ab8500_codec_set_dai_fmt()
2219 snd_soc_update_bits(codec, AB8500_DIGIFCONF2, mask, val); in ab8500_codec_set_dai_fmt()
2228 struct snd_soc_codec *codec = dai->codec; in ab8500_codec_set_dai_tdm_slot() local
2249 dev_err(dai->codec->dev, "%s: Unsupported slot-width 0x%x\n", in ab8500_codec_set_dai_tdm_slot()
2254 dev_dbg(dai->codec->dev, "%s: IF0 slot-width: %d bits.\n", in ab8500_codec_set_dai_tdm_slot()
2256 snd_soc_update_bits(codec, AB8500_DIGIFCONF2, mask, val); in ab8500_codec_set_dai_tdm_slot()
2259 dev_dbg(dai->codec->dev, "%s: Slots, total: %d\n", __func__, slots); in ab8500_codec_set_dai_tdm_slot()
2277 dev_err(dai->codec->dev, in ab8500_codec_set_dai_tdm_slot()
2282 snd_soc_update_bits(codec, AB8500_DIGIFCONF1, mask, val); in ab8500_codec_set_dai_tdm_slot()
2293 dev_dbg(dai->codec->dev, "%s: Slots, active, TX: %d\n", __func__, in ab8500_codec_set_dai_tdm_slot()
2301 snd_soc_update_bits(codec, AB8500_DASLOTCONF1, mask, slot); in ab8500_codec_set_dai_tdm_slot()
2302 snd_soc_update_bits(codec, AB8500_DASLOTCONF3, mask, slot); in ab8500_codec_set_dai_tdm_slot()
2303 snd_soc_update_bits(codec, AB8500_DASLOTCONF2, mask, slot); in ab8500_codec_set_dai_tdm_slot()
2304 snd_soc_update_bits(codec, AB8500_DASLOTCONF4, mask, slot); in ab8500_codec_set_dai_tdm_slot()
2308 snd_soc_update_bits(codec, AB8500_DASLOTCONF1, mask, slot); in ab8500_codec_set_dai_tdm_slot()
2309 snd_soc_update_bits(codec, AB8500_DASLOTCONF3, mask, slot); in ab8500_codec_set_dai_tdm_slot()
2311 snd_soc_update_bits(codec, AB8500_DASLOTCONF2, mask, slot); in ab8500_codec_set_dai_tdm_slot()
2312 snd_soc_update_bits(codec, AB8500_DASLOTCONF4, mask, slot); in ab8500_codec_set_dai_tdm_slot()
2315 dev_dbg(dai->codec->dev, in ab8500_codec_set_dai_tdm_slot()
2320 dev_err(dai->codec->dev, in ab8500_codec_set_dai_tdm_slot()
2334 dev_dbg(dai->codec->dev, "%s: Slots, active, RX: %d\n", __func__, in ab8500_codec_set_dai_tdm_slot()
2342 snd_soc_update_bits(codec, AB8500_ADSLOTSEL(slot), in ab8500_codec_set_dai_tdm_slot()
2348 snd_soc_update_bits(codec, in ab8500_codec_set_dai_tdm_slot()
2353 snd_soc_update_bits(codec, in ab8500_codec_set_dai_tdm_slot()
2359 dev_dbg(dai->codec->dev, in ab8500_codec_set_dai_tdm_slot()
2364 dev_err(dai->codec->dev, in ab8500_codec_set_dai_tdm_slot()
2408 struct ab8500_codec_platform_data *codec) in ab8500_codec_of_probe() argument
2413 codec->amics.mic1_type = AMIC_TYPE_SINGLE_ENDED; in ab8500_codec_of_probe()
2415 codec->amics.mic1_type = AMIC_TYPE_DIFFERENTIAL; in ab8500_codec_of_probe()
2418 codec->amics.mic2_type = AMIC_TYPE_SINGLE_ENDED; in ab8500_codec_of_probe()
2420 codec->amics.mic2_type = AMIC_TYPE_DIFFERENTIAL; in ab8500_codec_of_probe()
2424 codec->amics.mic1a_micbias = AMIC_MICBIAS_VAMIC2; in ab8500_codec_of_probe()
2426 codec->amics.mic1a_micbias = AMIC_MICBIAS_VAMIC1; in ab8500_codec_of_probe()
2429 codec->amics.mic1b_micbias = AMIC_MICBIAS_VAMIC2; in ab8500_codec_of_probe()
2431 codec->amics.mic1b_micbias = AMIC_MICBIAS_VAMIC1; in ab8500_codec_of_probe()
2434 codec->amics.mic2_micbias = AMIC_MICBIAS_VAMIC1; in ab8500_codec_of_probe()
2436 codec->amics.mic2_micbias = AMIC_MICBIAS_VAMIC2; in ab8500_codec_of_probe()
2441 codec->ear_cmv = EAR_CMV_0_95V; in ab8500_codec_of_probe()
2444 codec->ear_cmv = EAR_CMV_1_10V; in ab8500_codec_of_probe()
2447 codec->ear_cmv = EAR_CMV_1_27V; in ab8500_codec_of_probe()
2450 codec->ear_cmv = EAR_CMV_1_58V; in ab8500_codec_of_probe()
2453 codec->ear_cmv = EAR_CMV_UNKNOWN; in ab8500_codec_of_probe()
2458 codec->ear_cmv = EAR_CMV_0_95V; in ab8500_codec_of_probe()
2462 static int ab8500_codec_probe(struct snd_soc_codec *codec) in ab8500_codec_probe() argument
2464 struct device *dev = codec->dev; in ab8500_codec_probe()
2482 if (pdata && !pdata->codec) in ab8500_codec_probe()
2483 pdata->codec in ab8500_codec_probe()
2488 if (!(pdata && pdata->codec)) in ab8500_codec_probe()
2491 ab8500_codec_of_probe(dev, np, pdata->codec); in ab8500_codec_probe()
2494 if (!(pdata && pdata->codec)) { in ab8500_codec_probe()
2500 status = ab8500_audio_setup_mics(codec, &pdata->codec->amics); in ab8500_codec_probe()
2505 status = ab8500_audio_set_ear_cmv(codec, pdata->codec->ear_cmv); in ab8500_codec_probe()
2512 status = ab8500_audio_init_audioblock(codec); in ab8500_codec_probe()
2520 snd_soc_write(codec, AB8500_ANACONF5, in ab8500_codec_probe()
2522 snd_soc_write(codec, AB8500_SHORTCIRCONF, in ab8500_codec_probe()
2526 status = snd_soc_add_codec_controls(codec, ab8500_filter_controls, in ab8500_codec_probe()
2544 (void)snd_soc_dapm_disable_pin(&codec->dapm, "ANC Configure Input"); in ab8500_codec_probe()