Lines Matching refs:max98088
3 * max98088.c -- MAX98088 ALSA SoC Audio driver
25 #include <sound/max98088.h>
26 #include "max98088.h"
384 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
387 max98088->mic1pre = sel;
398 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
400 ucontrol->value.integer.value[0] = max98088->mic1pre;
408 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
411 max98088->mic2pre = sel;
422 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
424 ucontrol->value.integer.value[0] = max98088->mic2pre;
621 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
627 (1+max98088->mic1pre)<<M98088_MICPRE_SHIFT);
630 (1+max98088->mic2pre)<<M98088_MICPRE_SHIFT);
651 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
659 state = &max98088->ina_state;
662 state = &max98088->inb_state;
967 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
973 cdata = &max98088->dai[0];
1004 if (max98088->sysclk == 0) {
1010 pclk = DIV_ROUND_CLOSEST(max98088->sysclk, max98088->mclk_prescaler);
1037 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1043 cdata = &max98088->dai[1];
1074 if (max98088->sysclk == 0) {
1080 pclk = DIV_ROUND_CLOSEST(max98088->sysclk, max98088->mclk_prescaler);
1106 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1109 if (freq == max98088->sysclk)
1112 if (!IS_ERR(max98088->mclk)) {
1113 freq = clk_round_rate(max98088->mclk, freq);
1114 clk_set_rate(max98088->mclk, freq);
1123 max98088->mclk_prescaler = 1;
1126 max98088->mclk_prescaler = 2;
1141 max98088->sysclk = freq;
1149 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1154 cdata = &max98088->dai[0];
1209 if (max98088->digmic)
1221 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1225 cdata = &max98088->dai[1];
1321 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1335 if (!IS_ERR(max98088->mclk)) {
1338 clk_disable_unprepare(max98088->mclk);
1340 clk_prepare_enable(max98088->mclk);
1346 regcache_sync(max98088->regmap);
1355 regcache_mark_dirty(max98088->regmap);
1426 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1427 struct max98088_pdata *pdata = max98088->pdata;
1432 cdata = &max98088->dai[0];
1434 if (!pdata || !max98088->eq_textcnt)
1444 if (strcmp(pdata->eq_cfg[i].name, max98088->eq_texts[sel]) == 0 &&
1473 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1474 struct max98088_pdata *pdata = max98088->pdata;
1479 cdata = &max98088->dai[1];
1481 if (!pdata || !max98088->eq_textcnt)
1491 if (strcmp(pdata->eq_cfg[i].name, max98088->eq_texts[sel]) == 0 &&
1523 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1524 struct max98088_pdata *pdata = max98088->pdata;
1532 cdata = &max98088->dai[channel];
1555 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1562 cdata = &max98088->dai[channel];
1569 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1570 struct max98088_pdata *pdata = max98088->pdata;
1578 max98088->eq_enum,
1582 max98088->eq_enum,
1594 max98088->eq_textcnt = 0;
1595 max98088->eq_texts = NULL;
1597 for (j = 0; j < max98088->eq_textcnt; j++) {
1598 if (strcmp(cfg[i].name, max98088->eq_texts[j]) == 0)
1602 if (j != max98088->eq_textcnt)
1606 t = krealloc(max98088->eq_texts,
1607 sizeof(char *) * (max98088->eq_textcnt + 1),
1613 t[max98088->eq_textcnt] = cfg[i].name;
1614 max98088->eq_textcnt++;
1615 max98088->eq_texts = t;
1619 max98088->eq_enum.texts = max98088->eq_texts;
1620 max98088->eq_enum.items = max98088->eq_textcnt;
1629 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1630 struct max98088_pdata *pdata = max98088->pdata;
1645 max98088->digmic = (regval ? 1 : 0);
1661 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1665 regcache_mark_dirty(max98088->regmap);
1669 max98088->sysclk = (unsigned)-1;
1670 max98088->eq_textcnt = 0;
1672 cdata = &max98088->dai[0];
1677 cdata = &max98088->dai[1];
1682 max98088->ina_state = 0;
1683 max98088->inb_state = 0;
1684 max98088->ex_mode = 0;
1685 max98088->digmic = 0;
1686 max98088->mic1pre = 0;
1687 max98088->mic2pre = 0;
1722 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1724 kfree(max98088->eq_texts);
1747 struct max98088_priv *max98088;
1750 max98088 = devm_kzalloc(&i2c->dev, sizeof(struct max98088_priv),
1752 if (max98088 == NULL)
1755 max98088->regmap = devm_regmap_init_i2c(i2c, &max98088_regmap);
1756 if (IS_ERR(max98088->regmap))
1757 return PTR_ERR(max98088->regmap);
1759 max98088->mclk = devm_clk_get(&i2c->dev, "mclk");
1760 if (IS_ERR(max98088->mclk))
1761 if (PTR_ERR(max98088->mclk) == -EPROBE_DEFER)
1762 return PTR_ERR(max98088->mclk);
1764 max98088->devtype = id->driver_data;
1766 i2c_set_clientdata(i2c, max98088);
1767 max98088->pdata = i2c->dev.platform_data;
1775 { "max98088", MAX98088 },
1783 { .compatible = "maxim,max98088" },
1792 .name = "max98088",