Lines Matching refs:codec
565 static void m98088_eq_band(struct snd_soc_codec *codec, unsigned int dai, in m98088_eq_band() argument
583 snd_soc_write(codec, eq_reg++, M98088_BYTE1(coefs[i])); in m98088_eq_band()
584 snd_soc_write(codec, eq_reg++, M98088_BYTE0(coefs[i])); in m98088_eq_band()
638 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in max98088_mic1pre_set() local
639 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_mic1pre_set()
643 snd_soc_update_bits(codec, M98088_REG_35_LVL_MIC1, M98088_MICPRE_MASK, in max98088_mic1pre_set()
652 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in max98088_mic1pre_get() local
653 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_mic1pre_get()
662 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in max98088_mic2pre_set() local
663 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_mic2pre_set()
667 snd_soc_update_bits(codec, M98088_REG_36_LVL_MIC2, M98088_MICPRE_MASK, in max98088_mic2pre_set()
676 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in max98088_mic2pre_get() local
677 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_mic2pre_get()
878 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in max98088_mic_event() local
879 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_mic_event()
884 snd_soc_update_bits(codec, w->reg, M98088_MICPRE_MASK, in max98088_mic_event()
887 snd_soc_update_bits(codec, w->reg, M98088_MICPRE_MASK, in max98088_mic_event()
892 snd_soc_update_bits(codec, w->reg, M98088_MICPRE_MASK, 0); in max98088_mic_event()
908 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in max98088_line_pga() local
909 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_line_pga()
929 snd_soc_update_bits(codec, w->reg, in max98088_line_pga()
935 snd_soc_update_bits(codec, w->reg, in max98088_line_pga()
1224 struct snd_soc_codec *codec = dai->codec; in max98088_dai1_hw_params() local
1225 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_dai1_hw_params()
1237 snd_soc_update_bits(codec, M98088_REG_14_DAI1_FORMAT, in max98088_dai1_hw_params()
1241 snd_soc_update_bits(codec, M98088_REG_14_DAI1_FORMAT, in max98088_dai1_hw_params()
1248 snd_soc_update_bits(codec, M98088_REG_51_PWR_SYS, M98088_SHDNRUN, 0); in max98088_dai1_hw_params()
1253 snd_soc_update_bits(codec, M98088_REG_11_DAI1_CLKMODE, in max98088_dai1_hw_params()
1258 if (snd_soc_read(codec, M98088_REG_14_DAI1_FORMAT) in max98088_dai1_hw_params()
1261 dev_err(codec->dev, "Invalid system clock frequency\n"); in max98088_dai1_hw_params()
1267 snd_soc_write(codec, M98088_REG_12_DAI1_CLKCFG_HI, in max98088_dai1_hw_params()
1269 snd_soc_write(codec, M98088_REG_13_DAI1_CLKCFG_LO, in max98088_dai1_hw_params()
1275 snd_soc_update_bits(codec, M98088_REG_18_DAI1_FILTERS, in max98088_dai1_hw_params()
1278 snd_soc_update_bits(codec, M98088_REG_18_DAI1_FILTERS, in max98088_dai1_hw_params()
1281 snd_soc_update_bits(codec, M98088_REG_51_PWR_SYS, M98088_SHDNRUN, in max98088_dai1_hw_params()
1291 struct snd_soc_codec *codec = dai->codec; in max98088_dai2_hw_params() local
1292 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_dai2_hw_params()
1304 snd_soc_update_bits(codec, M98088_REG_1C_DAI2_FORMAT, in max98088_dai2_hw_params()
1308 snd_soc_update_bits(codec, M98088_REG_1C_DAI2_FORMAT, in max98088_dai2_hw_params()
1315 snd_soc_update_bits(codec, M98088_REG_51_PWR_SYS, M98088_SHDNRUN, 0); in max98088_dai2_hw_params()
1320 snd_soc_update_bits(codec, M98088_REG_19_DAI2_CLKMODE, in max98088_dai2_hw_params()
1325 if (snd_soc_read(codec, M98088_REG_1C_DAI2_FORMAT) in max98088_dai2_hw_params()
1328 dev_err(codec->dev, "Invalid system clock frequency\n"); in max98088_dai2_hw_params()
1334 snd_soc_write(codec, M98088_REG_1A_DAI2_CLKCFG_HI, in max98088_dai2_hw_params()
1336 snd_soc_write(codec, M98088_REG_1B_DAI2_CLKCFG_LO, in max98088_dai2_hw_params()
1342 snd_soc_update_bits(codec, M98088_REG_20_DAI2_FILTERS, in max98088_dai2_hw_params()
1345 snd_soc_update_bits(codec, M98088_REG_20_DAI2_FILTERS, in max98088_dai2_hw_params()
1348 snd_soc_update_bits(codec, M98088_REG_51_PWR_SYS, M98088_SHDNRUN, in max98088_dai2_hw_params()
1357 struct snd_soc_codec *codec = dai->codec; in max98088_dai_set_sysclk() local
1358 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_dai_set_sysclk()
1369 snd_soc_write(codec, M98088_REG_10_SYS_CLK, 0x10); in max98088_dai_set_sysclk()
1371 snd_soc_write(codec, M98088_REG_10_SYS_CLK, 0x20); in max98088_dai_set_sysclk()
1373 dev_err(codec->dev, "Invalid master clock frequency\n"); in max98088_dai_set_sysclk()
1377 if (snd_soc_read(codec, M98088_REG_51_PWR_SYS) & M98088_SHDNRUN) { in max98088_dai_set_sysclk()
1378 snd_soc_update_bits(codec, M98088_REG_51_PWR_SYS, in max98088_dai_set_sysclk()
1380 snd_soc_update_bits(codec, M98088_REG_51_PWR_SYS, in max98088_dai_set_sysclk()
1393 struct snd_soc_codec *codec = codec_dai->codec; in max98088_dai1_set_fmt() local
1394 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_dai1_set_fmt()
1407 snd_soc_write(codec, M98088_REG_12_DAI1_CLKCFG_HI, in max98088_dai1_set_fmt()
1409 snd_soc_write(codec, M98088_REG_13_DAI1_CLKCFG_LO, in max98088_dai1_set_fmt()
1419 dev_err(codec->dev, "Clock mode unsupported"); in max98088_dai1_set_fmt()
1449 snd_soc_update_bits(codec, M98088_REG_14_DAI1_FORMAT, in max98088_dai1_set_fmt()
1456 snd_soc_write(codec, M98088_REG_15_DAI1_CLOCK, reg15val); in max98088_dai1_set_fmt()
1465 struct snd_soc_codec *codec = codec_dai->codec; in max98088_dai2_set_fmt() local
1466 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_dai2_set_fmt()
1478 snd_soc_write(codec, M98088_REG_1A_DAI2_CLKCFG_HI, in max98088_dai2_set_fmt()
1480 snd_soc_write(codec, M98088_REG_1B_DAI2_CLKCFG_LO, in max98088_dai2_set_fmt()
1490 dev_err(codec->dev, "Clock mode unsupported"); in max98088_dai2_set_fmt()
1520 snd_soc_update_bits(codec, M98088_REG_1C_DAI2_FORMAT, in max98088_dai2_set_fmt()
1524 snd_soc_write(codec, M98088_REG_1D_DAI2_CLOCK, in max98088_dai2_set_fmt()
1533 struct snd_soc_codec *codec = codec_dai->codec; in max98088_dai1_digital_mute() local
1541 snd_soc_update_bits(codec, M98088_REG_2F_LVL_DAI1_PLAY, in max98088_dai1_digital_mute()
1548 struct snd_soc_codec *codec = codec_dai->codec; in max98088_dai2_digital_mute() local
1556 snd_soc_update_bits(codec, M98088_REG_31_LVL_DAI2_PLAY, in max98088_dai2_digital_mute()
1561 static int max98088_set_bias_level(struct snd_soc_codec *codec, in max98088_set_bias_level() argument
1564 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_set_bias_level()
1574 if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) in max98088_set_bias_level()
1577 snd_soc_update_bits(codec, M98088_REG_4C_PWR_EN_IN, in max98088_set_bias_level()
1582 snd_soc_update_bits(codec, M98088_REG_4C_PWR_EN_IN, in max98088_set_bias_level()
1587 codec->dapm.bias_level = level; in max98088_set_bias_level()
1642 static int max98088_get_channel(struct snd_soc_codec *codec, const char *name) in max98088_get_channel() argument
1651 dev_err(codec->dev, "Bad EQ channel name '%s'\n", name); in max98088_get_channel()
1655 static void max98088_setup_eq1(struct snd_soc_codec *codec) in max98088_setup_eq1() argument
1657 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_setup_eq1()
1682 dev_dbg(codec->dev, "Selected %s/%dHz for %dHz sample rate\n", in max98088_setup_eq1()
1687 save = snd_soc_read(codec, M98088_REG_49_CFG_LEVEL); in max98088_setup_eq1()
1688 snd_soc_update_bits(codec, M98088_REG_49_CFG_LEVEL, M98088_EQ1EN, 0); in max98088_setup_eq1()
1692 m98088_eq_band(codec, 0, 0, coef_set->band1); in max98088_setup_eq1()
1693 m98088_eq_band(codec, 0, 1, coef_set->band2); in max98088_setup_eq1()
1694 m98088_eq_band(codec, 0, 2, coef_set->band3); in max98088_setup_eq1()
1695 m98088_eq_band(codec, 0, 3, coef_set->band4); in max98088_setup_eq1()
1696 m98088_eq_band(codec, 0, 4, coef_set->band5); in max98088_setup_eq1()
1699 snd_soc_update_bits(codec, M98088_REG_49_CFG_LEVEL, M98088_EQ1EN, save); in max98088_setup_eq1()
1702 static void max98088_setup_eq2(struct snd_soc_codec *codec) in max98088_setup_eq2() argument
1704 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_setup_eq2()
1729 dev_dbg(codec->dev, "Selected %s/%dHz for %dHz sample rate\n", in max98088_setup_eq2()
1734 save = snd_soc_read(codec, M98088_REG_49_CFG_LEVEL); in max98088_setup_eq2()
1735 snd_soc_update_bits(codec, M98088_REG_49_CFG_LEVEL, M98088_EQ2EN, 0); in max98088_setup_eq2()
1739 m98088_eq_band(codec, 1, 0, coef_set->band1); in max98088_setup_eq2()
1740 m98088_eq_band(codec, 1, 1, coef_set->band2); in max98088_setup_eq2()
1741 m98088_eq_band(codec, 1, 2, coef_set->band3); in max98088_setup_eq2()
1742 m98088_eq_band(codec, 1, 3, coef_set->band4); in max98088_setup_eq2()
1743 m98088_eq_band(codec, 1, 4, coef_set->band5); in max98088_setup_eq2()
1746 snd_soc_update_bits(codec, M98088_REG_49_CFG_LEVEL, M98088_EQ2EN, in max98088_setup_eq2()
1753 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in max98088_put_eq_enum() local
1754 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_put_eq_enum()
1756 int channel = max98088_get_channel(codec, kcontrol->id.name); in max98088_put_eq_enum()
1772 max98088_setup_eq1(codec); in max98088_put_eq_enum()
1775 max98088_setup_eq2(codec); in max98088_put_eq_enum()
1785 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in max98088_get_eq_enum() local
1786 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_get_eq_enum()
1787 int channel = max98088_get_channel(codec, kcontrol->id.name); in max98088_get_eq_enum()
1798 static void max98088_handle_eq_pdata(struct snd_soc_codec *codec) in max98088_handle_eq_pdata() argument
1800 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_handle_eq_pdata()
1853 ret = snd_soc_add_codec_controls(codec, controls, ARRAY_SIZE(controls)); in max98088_handle_eq_pdata()
1855 dev_err(codec->dev, "Failed to add EQ control: %d\n", ret); in max98088_handle_eq_pdata()
1858 static void max98088_handle_pdata(struct snd_soc_codec *codec) in max98088_handle_pdata() argument
1860 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_handle_pdata()
1865 dev_dbg(codec->dev, "No platform data\n"); in max98088_handle_pdata()
1878 snd_soc_write(codec, M98088_REG_48_CFG_MIC, regval); in max98088_handle_pdata()
1882 snd_soc_update_bits(codec, M98088_REG_2A_MIC_REC_CNTL, in max98088_handle_pdata()
1887 max98088_handle_eq_pdata(codec); in max98088_handle_pdata()
1890 static int max98088_probe(struct snd_soc_codec *codec) in max98088_probe() argument
1892 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_probe()
1920 ret = snd_soc_read(codec, M98088_REG_FF_REV_ID); in max98088_probe()
1922 dev_err(codec->dev, "Failed to read device revision: %d\n", in max98088_probe()
1926 dev_info(codec->dev, "revision %c\n", ret - 0x40 + 'A'); in max98088_probe()
1928 snd_soc_write(codec, M98088_REG_51_PWR_SYS, M98088_PWRSV); in max98088_probe()
1930 snd_soc_write(codec, M98088_REG_0F_IRQ_ENABLE, 0x00); in max98088_probe()
1932 snd_soc_write(codec, M98088_REG_22_MIX_DAC, in max98088_probe()
1936 snd_soc_write(codec, M98088_REG_4E_BIAS_CNTL, 0xF0); in max98088_probe()
1937 snd_soc_write(codec, M98088_REG_50_DAC_BIAS2, 0x0F); in max98088_probe()
1939 snd_soc_write(codec, M98088_REG_16_DAI1_IOCFG, in max98088_probe()
1942 snd_soc_write(codec, M98088_REG_1E_DAI2_IOCFG, in max98088_probe()
1945 max98088_handle_pdata(codec); in max98088_probe()
1951 static int max98088_remove(struct snd_soc_codec *codec) in max98088_remove() argument
1953 struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec); in max98088_remove()