Lines Matching refs:codec
75 struct snd_soc_codec *codec; member
149 struct snd_soc_codec *codec = snd_soc_dapm_kcontrol_codec(kcontrol); in snd_soc_dapm_put_volsw_aic3x() local
175 change = snd_soc_test_bits(codec, reg, mask, val); in snd_soc_dapm_put_volsw_aic3x()
182 snd_soc_dapm_mixer_update_power(&codec->dapm, kcontrol, connect, in snd_soc_dapm_put_volsw_aic3x()
201 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in mic_bias_event() local
202 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in mic_bias_event()
207 snd_soc_update_bits(codec, MICBIAS_CTRL, in mic_bias_event()
213 snd_soc_update_bits(codec, MICBIAS_CTRL, in mic_bias_event()
979 static int aic3x_add_widgets(struct snd_soc_codec *codec) in aic3x_add_widgets() argument
981 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_add_widgets()
982 struct snd_soc_dapm_context *dapm = &codec->dapm; in aic3x_add_widgets()
1021 struct snd_soc_codec *codec = dai->codec; in aic3x_hw_params() local
1022 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_hw_params()
1029 data = snd_soc_read(codec, AIC3X_ASD_INTF_CTRLB) & (~(0x3 << 4)); in aic3x_hw_params()
1043 snd_soc_write(codec, AIC3X_ASD_INTF_CTRLB, data); in aic3x_hw_params()
1058 snd_soc_write(codec, AIC3X_PLL_PROGA_REG, pll_q << PLLQ_SHIFT); in aic3x_hw_params()
1059 snd_soc_write(codec, AIC3X_GPIOB_REG, CODEC_CLKIN_CLKDIV); in aic3x_hw_params()
1061 snd_soc_update_bits(codec, AIC3X_PLL_PROGA_REG, PLL_ENABLE, 0); in aic3x_hw_params()
1064 snd_soc_write(codec, AIC3X_GPIOB_REG, CODEC_CLKIN_PLLDIV); in aic3x_hw_params()
1066 snd_soc_update_bits(codec, AIC3X_PLL_PROGA_REG, in aic3x_hw_params()
1076 snd_soc_write(codec, AIC3X_CODEC_DATAPATH_REG, data); in aic3x_hw_params()
1085 snd_soc_write(codec, AIC3X_SAMPLE_RATE_SEL_REG, data); in aic3x_hw_params()
1154 snd_soc_update_bits(codec, AIC3X_PLL_PROGA_REG, PLLP_MASK, pll_p); in aic3x_hw_params()
1155 snd_soc_write(codec, AIC3X_OVRF_STATUS_AND_PLLR_REG, in aic3x_hw_params()
1157 snd_soc_write(codec, AIC3X_PLL_PROGB_REG, pll_j << PLLJ_SHIFT); in aic3x_hw_params()
1158 snd_soc_write(codec, AIC3X_PLL_PROGC_REG, in aic3x_hw_params()
1160 snd_soc_write(codec, AIC3X_PLL_PROGD_REG, in aic3x_hw_params()
1169 struct snd_soc_codec *codec = dai->codec; in aic3x_prepare() local
1170 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_prepare()
1180 snd_soc_write(codec, AIC3X_ASD_INTF_CTRLC, delay); in aic3x_prepare()
1187 struct snd_soc_codec *codec = dai->codec; in aic3x_mute() local
1188 u8 ldac_reg = snd_soc_read(codec, LDAC_VOL) & ~MUTE_ON; in aic3x_mute()
1189 u8 rdac_reg = snd_soc_read(codec, RDAC_VOL) & ~MUTE_ON; in aic3x_mute()
1192 snd_soc_write(codec, LDAC_VOL, ldac_reg | MUTE_ON); in aic3x_mute()
1193 snd_soc_write(codec, RDAC_VOL, rdac_reg | MUTE_ON); in aic3x_mute()
1195 snd_soc_write(codec, LDAC_VOL, ldac_reg); in aic3x_mute()
1196 snd_soc_write(codec, RDAC_VOL, rdac_reg); in aic3x_mute()
1205 struct snd_soc_codec *codec = codec_dai->codec; in aic3x_set_dai_sysclk() local
1206 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_set_dai_sysclk()
1209 snd_soc_update_bits(codec, AIC3X_CLKGEN_CTRL_REG, PLLCLK_IN_MASK, in aic3x_set_dai_sysclk()
1211 snd_soc_update_bits(codec, AIC3X_CLKGEN_CTRL_REG, CLKDIV_IN_MASK, in aic3x_set_dai_sysclk()
1221 struct snd_soc_codec *codec = codec_dai->codec; in aic3x_set_dai_fmt() local
1222 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_set_dai_fmt()
1225 iface_areg = snd_soc_read(codec, AIC3X_ASD_INTF_CTRLA) & 0x3f; in aic3x_set_dai_fmt()
1226 iface_breg = snd_soc_read(codec, AIC3X_ASD_INTF_CTRLB) & 0x3f; in aic3x_set_dai_fmt()
1267 snd_soc_write(codec, AIC3X_ASD_INTF_CTRLA, iface_areg); in aic3x_set_dai_fmt()
1268 snd_soc_write(codec, AIC3X_ASD_INTF_CTRLB, iface_breg); in aic3x_set_dai_fmt()
1277 struct snd_soc_codec *codec = codec_dai->codec; in aic3x_set_dai_tdm_slot() local
1278 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_set_dai_tdm_slot()
1282 dev_err(codec->dev, "tx and rx masks must be symmetric\n"); in aic3x_set_dai_tdm_slot()
1287 dev_err(codec->dev, "tx and rx masks need to be non 0\n"); in aic3x_set_dai_tdm_slot()
1294 dev_err(codec->dev, "Invalid mask, slots must be adjacent\n"); in aic3x_set_dai_tdm_slot()
1301 snd_soc_update_bits(codec, AIC3X_ASD_INTF_CTRLA, in aic3x_set_dai_tdm_slot()
1327 static int aic3x_set_power(struct snd_soc_codec *codec, int power) in aic3x_set_power() argument
1329 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_set_power()
1353 pll_c = snd_soc_read(codec, AIC3X_PLL_PROGC_REG); in aic3x_set_power()
1354 pll_d = snd_soc_read(codec, AIC3X_PLL_PROGD_REG); in aic3x_set_power()
1357 snd_soc_write(codec, AIC3X_PLL_PROGC_REG, pll_c); in aic3x_set_power()
1358 snd_soc_write(codec, AIC3X_PLL_PROGD_REG, pll_d); in aic3x_set_power()
1366 snd_soc_write(codec, AIC3X_RESET, SOFT_RESET); in aic3x_set_power()
1378 static int aic3x_set_bias_level(struct snd_soc_codec *codec, in aic3x_set_bias_level() argument
1381 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_set_bias_level()
1387 if (codec->dapm.bias_level == SND_SOC_BIAS_STANDBY && in aic3x_set_bias_level()
1390 snd_soc_update_bits(codec, AIC3X_PLL_PROGA_REG, in aic3x_set_bias_level()
1396 aic3x_set_power(codec, 1); in aic3x_set_bias_level()
1397 if (codec->dapm.bias_level == SND_SOC_BIAS_PREPARE && in aic3x_set_bias_level()
1400 snd_soc_update_bits(codec, AIC3X_PLL_PROGA_REG, in aic3x_set_bias_level()
1406 aic3x_set_power(codec, 0); in aic3x_set_bias_level()
1409 codec->dapm.bias_level = level; in aic3x_set_bias_level()
1446 static void aic3x_mono_init(struct snd_soc_codec *codec) in aic3x_mono_init() argument
1449 snd_soc_write(codec, DACL1_2_MONOLOPM_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_mono_init()
1450 snd_soc_write(codec, DACR1_2_MONOLOPM_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_mono_init()
1453 snd_soc_update_bits(codec, MONOLOPM_CTRL, UNMUTE, UNMUTE); in aic3x_mono_init()
1456 snd_soc_write(codec, PGAL_2_MONOLOPM_VOL, DEFAULT_VOL); in aic3x_mono_init()
1457 snd_soc_write(codec, PGAR_2_MONOLOPM_VOL, DEFAULT_VOL); in aic3x_mono_init()
1460 snd_soc_write(codec, LINE2L_2_MONOLOPM_VOL, DEFAULT_VOL); in aic3x_mono_init()
1461 snd_soc_write(codec, LINE2R_2_MONOLOPM_VOL, DEFAULT_VOL); in aic3x_mono_init()
1468 static int aic3x_init(struct snd_soc_codec *codec) in aic3x_init() argument
1470 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_init()
1472 snd_soc_write(codec, AIC3X_PAGE_SELECT, PAGE0_SELECT); in aic3x_init()
1473 snd_soc_write(codec, AIC3X_RESET, SOFT_RESET); in aic3x_init()
1476 snd_soc_write(codec, LDAC_VOL, DEFAULT_VOL | MUTE_ON); in aic3x_init()
1477 snd_soc_write(codec, RDAC_VOL, DEFAULT_VOL | MUTE_ON); in aic3x_init()
1480 snd_soc_write(codec, DACL1_2_HPLOUT_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_init()
1481 snd_soc_write(codec, DACR1_2_HPROUT_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_init()
1482 snd_soc_write(codec, DACL1_2_HPLCOM_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_init()
1483 snd_soc_write(codec, DACR1_2_HPRCOM_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_init()
1485 snd_soc_write(codec, DACL1_2_LLOPM_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_init()
1486 snd_soc_write(codec, DACR1_2_RLOPM_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_init()
1489 snd_soc_update_bits(codec, LLOPM_CTRL, UNMUTE, UNMUTE); in aic3x_init()
1490 snd_soc_update_bits(codec, RLOPM_CTRL, UNMUTE, UNMUTE); in aic3x_init()
1491 snd_soc_update_bits(codec, HPLOUT_CTRL, UNMUTE, UNMUTE); in aic3x_init()
1492 snd_soc_update_bits(codec, HPROUT_CTRL, UNMUTE, UNMUTE); in aic3x_init()
1493 snd_soc_update_bits(codec, HPLCOM_CTRL, UNMUTE, UNMUTE); in aic3x_init()
1494 snd_soc_update_bits(codec, HPRCOM_CTRL, UNMUTE, UNMUTE); in aic3x_init()
1497 snd_soc_write(codec, LADC_VOL, DEFAULT_GAIN); in aic3x_init()
1498 snd_soc_write(codec, RADC_VOL, DEFAULT_GAIN); in aic3x_init()
1500 snd_soc_write(codec, LINE1L_2_LADC_CTRL, 0x0); in aic3x_init()
1501 snd_soc_write(codec, LINE1R_2_RADC_CTRL, 0x0); in aic3x_init()
1504 snd_soc_write(codec, PGAL_2_HPLOUT_VOL, DEFAULT_VOL); in aic3x_init()
1505 snd_soc_write(codec, PGAR_2_HPROUT_VOL, DEFAULT_VOL); in aic3x_init()
1506 snd_soc_write(codec, PGAL_2_HPLCOM_VOL, DEFAULT_VOL); in aic3x_init()
1507 snd_soc_write(codec, PGAR_2_HPRCOM_VOL, DEFAULT_VOL); in aic3x_init()
1509 snd_soc_write(codec, PGAL_2_LLOPM_VOL, DEFAULT_VOL); in aic3x_init()
1510 snd_soc_write(codec, PGAR_2_RLOPM_VOL, DEFAULT_VOL); in aic3x_init()
1513 snd_soc_write(codec, LINE2L_2_HPLOUT_VOL, DEFAULT_VOL); in aic3x_init()
1514 snd_soc_write(codec, LINE2R_2_HPROUT_VOL, DEFAULT_VOL); in aic3x_init()
1515 snd_soc_write(codec, LINE2L_2_HPLCOM_VOL, DEFAULT_VOL); in aic3x_init()
1516 snd_soc_write(codec, LINE2R_2_HPRCOM_VOL, DEFAULT_VOL); in aic3x_init()
1518 snd_soc_write(codec, LINE2L_2_LLOPM_VOL, DEFAULT_VOL); in aic3x_init()
1519 snd_soc_write(codec, LINE2R_2_RLOPM_VOL, DEFAULT_VOL); in aic3x_init()
1524 aic3x_mono_init(codec); in aic3x_init()
1527 snd_soc_write(codec, CLASSD_CTRL, 0); in aic3x_init()
1547 static int aic3x_probe(struct snd_soc_codec *codec) in aic3x_probe() argument
1549 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_probe()
1553 aic3x->codec = codec; in aic3x_probe()
1561 dev_err(codec->dev, in aic3x_probe()
1569 aic3x_init(codec); in aic3x_probe()
1574 snd_soc_write(codec, AIC3X_GPIO1_REG, in aic3x_probe()
1576 snd_soc_write(codec, AIC3X_GPIO2_REG, in aic3x_probe()
1579 dev_warn(codec->dev, "GPIO functionality is not supported on tlv320aic3104\n"); in aic3x_probe()
1586 snd_soc_add_codec_controls(codec, aic3x_extra_snd_controls, in aic3x_probe()
1588 snd_soc_add_codec_controls(codec, aic3x_mono_controls, in aic3x_probe()
1592 snd_soc_add_codec_controls(codec, aic3x_extra_snd_controls, in aic3x_probe()
1594 snd_soc_add_codec_controls(codec, in aic3x_probe()
1606 snd_soc_update_bits(codec, MICBIAS_CTRL, in aic3x_probe()
1619 aic3x_add_widgets(codec); in aic3x_probe()
1630 static int aic3x_remove(struct snd_soc_codec *codec) in aic3x_remove() argument
1632 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_remove()