Lines Matching refs:codec
75 struct snd_soc_codec *codec; member
150 struct snd_soc_codec *codec = snd_soc_dapm_kcontrol_codec(kcontrol); in snd_soc_dapm_put_volsw_aic3x() local
151 struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec); in snd_soc_dapm_put_volsw_aic3x()
177 change = snd_soc_test_bits(codec, reg, mask, val); in snd_soc_dapm_put_volsw_aic3x()
203 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in mic_bias_event() local
204 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in mic_bias_event()
209 snd_soc_update_bits(codec, MICBIAS_CTRL, in mic_bias_event()
215 snd_soc_update_bits(codec, MICBIAS_CTRL, in mic_bias_event()
981 static int aic3x_add_widgets(struct snd_soc_codec *codec) in aic3x_add_widgets() argument
983 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_add_widgets()
984 struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec); in aic3x_add_widgets()
1023 struct snd_soc_codec *codec = dai->codec; in aic3x_hw_params() local
1024 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_hw_params()
1035 data = snd_soc_read(codec, AIC3X_ASD_INTF_CTRLB) & (~(0x3 << 4)); in aic3x_hw_params()
1049 snd_soc_write(codec, AIC3X_ASD_INTF_CTRLB, data); in aic3x_hw_params()
1064 snd_soc_write(codec, AIC3X_PLL_PROGA_REG, pll_q << PLLQ_SHIFT); in aic3x_hw_params()
1065 snd_soc_write(codec, AIC3X_GPIOB_REG, CODEC_CLKIN_CLKDIV); in aic3x_hw_params()
1067 snd_soc_update_bits(codec, AIC3X_PLL_PROGA_REG, PLL_ENABLE, 0); in aic3x_hw_params()
1070 snd_soc_write(codec, AIC3X_GPIOB_REG, CODEC_CLKIN_PLLDIV); in aic3x_hw_params()
1072 snd_soc_update_bits(codec, AIC3X_PLL_PROGA_REG, in aic3x_hw_params()
1082 snd_soc_write(codec, AIC3X_CODEC_DATAPATH_REG, data); in aic3x_hw_params()
1091 snd_soc_write(codec, AIC3X_SAMPLE_RATE_SEL_REG, data); in aic3x_hw_params()
1160 snd_soc_update_bits(codec, AIC3X_PLL_PROGA_REG, PLLP_MASK, pll_p); in aic3x_hw_params()
1161 snd_soc_write(codec, AIC3X_OVRF_STATUS_AND_PLLR_REG, in aic3x_hw_params()
1163 snd_soc_write(codec, AIC3X_PLL_PROGB_REG, pll_j << PLLJ_SHIFT); in aic3x_hw_params()
1164 snd_soc_write(codec, AIC3X_PLL_PROGC_REG, in aic3x_hw_params()
1166 snd_soc_write(codec, AIC3X_PLL_PROGD_REG, in aic3x_hw_params()
1175 struct snd_soc_codec *codec = dai->codec; in aic3x_prepare() local
1176 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_prepare()
1190 snd_soc_write(codec, AIC3X_ASD_INTF_CTRLC, delay); in aic3x_prepare()
1197 struct snd_soc_codec *codec = dai->codec; in aic3x_mute() local
1198 u8 ldac_reg = snd_soc_read(codec, LDAC_VOL) & ~MUTE_ON; in aic3x_mute()
1199 u8 rdac_reg = snd_soc_read(codec, RDAC_VOL) & ~MUTE_ON; in aic3x_mute()
1202 snd_soc_write(codec, LDAC_VOL, ldac_reg | MUTE_ON); in aic3x_mute()
1203 snd_soc_write(codec, RDAC_VOL, rdac_reg | MUTE_ON); in aic3x_mute()
1205 snd_soc_write(codec, LDAC_VOL, ldac_reg); in aic3x_mute()
1206 snd_soc_write(codec, RDAC_VOL, rdac_reg); in aic3x_mute()
1215 struct snd_soc_codec *codec = codec_dai->codec; in aic3x_set_dai_sysclk() local
1216 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_set_dai_sysclk()
1219 snd_soc_update_bits(codec, AIC3X_CLKGEN_CTRL_REG, PLLCLK_IN_MASK, in aic3x_set_dai_sysclk()
1221 snd_soc_update_bits(codec, AIC3X_CLKGEN_CTRL_REG, CLKDIV_IN_MASK, in aic3x_set_dai_sysclk()
1231 struct snd_soc_codec *codec = codec_dai->codec; in aic3x_set_dai_fmt() local
1232 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_set_dai_fmt()
1235 iface_areg = snd_soc_read(codec, AIC3X_ASD_INTF_CTRLA) & 0x3f; in aic3x_set_dai_fmt()
1236 iface_breg = snd_soc_read(codec, AIC3X_ASD_INTF_CTRLB) & 0x3f; in aic3x_set_dai_fmt()
1277 snd_soc_write(codec, AIC3X_ASD_INTF_CTRLA, iface_areg); in aic3x_set_dai_fmt()
1278 snd_soc_write(codec, AIC3X_ASD_INTF_CTRLB, iface_breg); in aic3x_set_dai_fmt()
1287 struct snd_soc_codec *codec = codec_dai->codec; in aic3x_set_dai_tdm_slot() local
1288 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_set_dai_tdm_slot()
1292 dev_err(codec->dev, "tx and rx masks must be symmetric\n"); in aic3x_set_dai_tdm_slot()
1297 dev_err(codec->dev, "tx and rx masks need to be non 0\n"); in aic3x_set_dai_tdm_slot()
1304 dev_err(codec->dev, "Invalid mask, slots must be adjacent\n"); in aic3x_set_dai_tdm_slot()
1315 dev_err(codec->dev, "Unsupported slot width %d\n", slot_width); in aic3x_set_dai_tdm_slot()
1324 snd_soc_update_bits(codec, AIC3X_ASD_INTF_CTRLA, in aic3x_set_dai_tdm_slot()
1350 static int aic3x_set_power(struct snd_soc_codec *codec, int power) in aic3x_set_power() argument
1352 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_set_power()
1376 pll_c = snd_soc_read(codec, AIC3X_PLL_PROGC_REG); in aic3x_set_power()
1377 pll_d = snd_soc_read(codec, AIC3X_PLL_PROGD_REG); in aic3x_set_power()
1380 snd_soc_write(codec, AIC3X_PLL_PROGC_REG, pll_c); in aic3x_set_power()
1381 snd_soc_write(codec, AIC3X_PLL_PROGD_REG, pll_d); in aic3x_set_power()
1389 snd_soc_write(codec, AIC3X_RESET, SOFT_RESET); in aic3x_set_power()
1401 static int aic3x_set_bias_level(struct snd_soc_codec *codec, in aic3x_set_bias_level() argument
1404 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_set_bias_level()
1410 if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_STANDBY && in aic3x_set_bias_level()
1413 snd_soc_update_bits(codec, AIC3X_PLL_PROGA_REG, in aic3x_set_bias_level()
1419 aic3x_set_power(codec, 1); in aic3x_set_bias_level()
1420 if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_PREPARE && in aic3x_set_bias_level()
1423 snd_soc_update_bits(codec, AIC3X_PLL_PROGA_REG, in aic3x_set_bias_level()
1429 aic3x_set_power(codec, 0); in aic3x_set_bias_level()
1468 static void aic3x_mono_init(struct snd_soc_codec *codec) in aic3x_mono_init() argument
1471 snd_soc_write(codec, DACL1_2_MONOLOPM_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_mono_init()
1472 snd_soc_write(codec, DACR1_2_MONOLOPM_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_mono_init()
1475 snd_soc_update_bits(codec, MONOLOPM_CTRL, UNMUTE, UNMUTE); in aic3x_mono_init()
1478 snd_soc_write(codec, PGAL_2_MONOLOPM_VOL, DEFAULT_VOL); in aic3x_mono_init()
1479 snd_soc_write(codec, PGAR_2_MONOLOPM_VOL, DEFAULT_VOL); in aic3x_mono_init()
1482 snd_soc_write(codec, LINE2L_2_MONOLOPM_VOL, DEFAULT_VOL); in aic3x_mono_init()
1483 snd_soc_write(codec, LINE2R_2_MONOLOPM_VOL, DEFAULT_VOL); in aic3x_mono_init()
1490 static int aic3x_init(struct snd_soc_codec *codec) in aic3x_init() argument
1492 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_init()
1494 snd_soc_write(codec, AIC3X_PAGE_SELECT, PAGE0_SELECT); in aic3x_init()
1495 snd_soc_write(codec, AIC3X_RESET, SOFT_RESET); in aic3x_init()
1498 snd_soc_write(codec, LDAC_VOL, DEFAULT_VOL | MUTE_ON); in aic3x_init()
1499 snd_soc_write(codec, RDAC_VOL, DEFAULT_VOL | MUTE_ON); in aic3x_init()
1502 snd_soc_write(codec, DACL1_2_HPLOUT_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_init()
1503 snd_soc_write(codec, DACR1_2_HPROUT_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_init()
1504 snd_soc_write(codec, DACL1_2_HPLCOM_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_init()
1505 snd_soc_write(codec, DACR1_2_HPRCOM_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_init()
1507 snd_soc_write(codec, DACL1_2_LLOPM_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_init()
1508 snd_soc_write(codec, DACR1_2_RLOPM_VOL, DEFAULT_VOL | ROUTE_ON); in aic3x_init()
1511 snd_soc_update_bits(codec, LLOPM_CTRL, UNMUTE, UNMUTE); in aic3x_init()
1512 snd_soc_update_bits(codec, RLOPM_CTRL, UNMUTE, UNMUTE); in aic3x_init()
1513 snd_soc_update_bits(codec, HPLOUT_CTRL, UNMUTE, UNMUTE); in aic3x_init()
1514 snd_soc_update_bits(codec, HPROUT_CTRL, UNMUTE, UNMUTE); in aic3x_init()
1515 snd_soc_update_bits(codec, HPLCOM_CTRL, UNMUTE, UNMUTE); in aic3x_init()
1516 snd_soc_update_bits(codec, HPRCOM_CTRL, UNMUTE, UNMUTE); in aic3x_init()
1519 snd_soc_write(codec, LADC_VOL, DEFAULT_GAIN); in aic3x_init()
1520 snd_soc_write(codec, RADC_VOL, DEFAULT_GAIN); in aic3x_init()
1522 snd_soc_write(codec, LINE1L_2_LADC_CTRL, 0x0); in aic3x_init()
1523 snd_soc_write(codec, LINE1R_2_RADC_CTRL, 0x0); in aic3x_init()
1526 snd_soc_write(codec, PGAL_2_HPLOUT_VOL, DEFAULT_VOL); in aic3x_init()
1527 snd_soc_write(codec, PGAR_2_HPROUT_VOL, DEFAULT_VOL); in aic3x_init()
1528 snd_soc_write(codec, PGAL_2_HPLCOM_VOL, DEFAULT_VOL); in aic3x_init()
1529 snd_soc_write(codec, PGAR_2_HPRCOM_VOL, DEFAULT_VOL); in aic3x_init()
1531 snd_soc_write(codec, PGAL_2_LLOPM_VOL, DEFAULT_VOL); in aic3x_init()
1532 snd_soc_write(codec, PGAR_2_RLOPM_VOL, DEFAULT_VOL); in aic3x_init()
1537 snd_soc_write(codec, LINE2L_2_HPLOUT_VOL, DEFAULT_VOL); in aic3x_init()
1538 snd_soc_write(codec, LINE2R_2_HPROUT_VOL, DEFAULT_VOL); in aic3x_init()
1539 snd_soc_write(codec, LINE2L_2_HPLCOM_VOL, DEFAULT_VOL); in aic3x_init()
1540 snd_soc_write(codec, LINE2R_2_HPRCOM_VOL, DEFAULT_VOL); in aic3x_init()
1542 snd_soc_write(codec, LINE2L_2_LLOPM_VOL, DEFAULT_VOL); in aic3x_init()
1543 snd_soc_write(codec, LINE2R_2_RLOPM_VOL, DEFAULT_VOL); in aic3x_init()
1549 aic3x_mono_init(codec); in aic3x_init()
1552 snd_soc_write(codec, CLASSD_CTRL, 0); in aic3x_init()
1572 static int aic3x_probe(struct snd_soc_codec *codec) in aic3x_probe() argument
1574 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_probe()
1578 aic3x->codec = codec; in aic3x_probe()
1586 dev_err(codec->dev, in aic3x_probe()
1594 aic3x_init(codec); in aic3x_probe()
1599 snd_soc_write(codec, AIC3X_GPIO1_REG, in aic3x_probe()
1601 snd_soc_write(codec, AIC3X_GPIO2_REG, in aic3x_probe()
1604 dev_warn(codec->dev, "GPIO functionality is not supported on tlv320aic3104\n"); in aic3x_probe()
1611 snd_soc_add_codec_controls(codec, aic3x_extra_snd_controls, in aic3x_probe()
1613 snd_soc_add_codec_controls(codec, aic3x_mono_controls, in aic3x_probe()
1617 snd_soc_add_codec_controls(codec, aic3x_extra_snd_controls, in aic3x_probe()
1619 snd_soc_add_codec_controls(codec, in aic3x_probe()
1631 snd_soc_update_bits(codec, MICBIAS_CTRL, in aic3x_probe()
1644 aic3x_add_widgets(codec); in aic3x_probe()
1655 static int aic3x_remove(struct snd_soc_codec *codec) in aic3x_remove() argument
1657 struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec); in aic3x_remove()