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;
624 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
630 (1+max98088->mic1pre)<<M98088_MICPRE_SHIFT);
633 (1+max98088->mic2pre)<<M98088_MICPRE_SHIFT);
654 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
662 state = &max98088->ina_state;
665 state = &max98088->inb_state;
970 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
976 cdata = &max98088->dai[0];
1007 if (max98088->sysclk == 0) {
1013 pclk = DIV_ROUND_CLOSEST(max98088->sysclk, max98088->mclk_prescaler);
1040 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1046 cdata = &max98088->dai[1];
1077 if (max98088->sysclk == 0) {
1083 pclk = DIV_ROUND_CLOSEST(max98088->sysclk, max98088->mclk_prescaler);
1109 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1112 if (freq == max98088->sysclk)
1115 if (!IS_ERR(max98088->mclk)) {
1116 freq = clk_round_rate(max98088->mclk, freq);
1117 clk_set_rate(max98088->mclk, freq);
1126 max98088->mclk_prescaler = 1;
1129 max98088->mclk_prescaler = 2;
1144 max98088->sysclk = freq;
1152 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1157 cdata = &max98088->dai[0];
1210 if (max98088->digmic)
1222 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1226 cdata = &max98088->dai[1];
1320 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1334 if (!IS_ERR(max98088->mclk)) {
1337 clk_disable_unprepare(max98088->mclk);
1339 clk_prepare_enable(max98088->mclk);
1345 regcache_sync(max98088->regmap);
1354 regcache_mark_dirty(max98088->regmap);
1425 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1426 struct max98088_pdata *pdata = max98088->pdata;
1431 cdata = &max98088->dai[0];
1433 if (!pdata || !max98088->eq_textcnt)
1443 if (strcmp(pdata->eq_cfg[i].name, max98088->eq_texts[sel]) == 0 &&
1472 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1473 struct max98088_pdata *pdata = max98088->pdata;
1478 cdata = &max98088->dai[1];
1480 if (!pdata || !max98088->eq_textcnt)
1490 if (strcmp(pdata->eq_cfg[i].name, max98088->eq_texts[sel]) == 0 &&
1522 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1523 struct max98088_pdata *pdata = max98088->pdata;
1531 cdata = &max98088->dai[channel];
1554 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1561 cdata = &max98088->dai[channel];
1568 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1569 struct max98088_pdata *pdata = max98088->pdata;
1577 max98088->eq_enum,
1581 max98088->eq_enum,
1593 max98088->eq_textcnt = 0;
1594 max98088->eq_texts = NULL;
1596 for (j = 0; j < max98088->eq_textcnt; j++) {
1597 if (strcmp(cfg[i].name, max98088->eq_texts[j]) == 0)
1601 if (j != max98088->eq_textcnt)
1605 t = krealloc(max98088->eq_texts,
1606 sizeof(char *) * (max98088->eq_textcnt + 1),
1612 t[max98088->eq_textcnt] = cfg[i].name;
1613 max98088->eq_textcnt++;
1614 max98088->eq_texts = t;
1618 max98088->eq_enum.texts = max98088->eq_texts;
1619 max98088->eq_enum.items = max98088->eq_textcnt;
1628 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1629 struct max98088_pdata *pdata = max98088->pdata;
1644 max98088->digmic = (regval ? 1 : 0);
1660 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1664 regcache_mark_dirty(max98088->regmap);
1668 max98088->sysclk = (unsigned)-1;
1669 max98088->eq_textcnt = 0;
1671 cdata = &max98088->dai[0];
1676 cdata = &max98088->dai[1];
1681 max98088->ina_state = 0;
1682 max98088->inb_state = 0;
1683 max98088->ex_mode = 0;
1684 max98088->digmic = 0;
1685 max98088->mic1pre = 0;
1686 max98088->mic2pre = 0;
1721 struct max98088_priv *max98088 = snd_soc_component_get_drvdata(component);
1723 kfree(max98088->eq_texts);
1743 { "max98088", MAX98088 },
1751 struct max98088_priv *max98088;
1754 max98088 = devm_kzalloc(&i2c->dev, sizeof(struct max98088_priv),
1756 if (max98088 == NULL)
1759 max98088->regmap = devm_regmap_init_i2c(i2c, &max98088_regmap);
1760 if (IS_ERR(max98088->regmap))
1761 return PTR_ERR(max98088->regmap);
1763 max98088->mclk = devm_clk_get(&i2c->dev, "mclk");
1764 if (IS_ERR(max98088->mclk))
1765 if (PTR_ERR(max98088->mclk) == -EPROBE_DEFER)
1766 return PTR_ERR(max98088->mclk);
1769 max98088->devtype = id->driver_data;
1771 i2c_set_clientdata(i2c, max98088);
1772 max98088->pdata = i2c->dev.platform_data;
1780 { .compatible = "maxim,max98088" },
1789 .name = "max98088",