Lines Matching full:max98095
3 * max98095.c -- MAX98095 ALSA SoC Audio driver
25 #include <sound/max98095.h>
27 #include "max98095.h"
30 MAX98095, enumerator
354 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_mic1pre_set() local
357 max98095->mic1pre = sel; in max98095_mic1pre_set()
368 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_mic1pre_get() local
370 ucontrol->value.integer.value[0] = max98095->mic1pre; in max98095_mic1pre_get()
378 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_mic2pre_set() local
381 max98095->mic2pre = sel; in max98095_mic2pre_set()
392 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_mic2pre_get() local
394 ucontrol->value.integer.value[0] = max98095->mic2pre; in max98095_mic2pre_get()
599 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_mic_event() local
605 (1+max98095->mic1pre)<<M98095_MICPRE_SHIFT); in max98095_mic_event()
608 (1+max98095->mic2pre)<<M98095_MICPRE_SHIFT); in max98095_mic_event()
629 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_line_pga() local
635 state = &max98095->lin_state; in max98095_line_pga()
943 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_dai1_hw_params() local
949 cdata = &max98095->dai[0]; in max98095_dai1_hw_params()
975 if (max98095->sysclk == 0) { in max98095_dai1_hw_params()
981 do_div(ni, (unsigned long long int)max98095->sysclk); in max98095_dai1_hw_params()
1004 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_dai2_hw_params() local
1010 cdata = &max98095->dai[1]; in max98095_dai2_hw_params()
1036 if (max98095->sysclk == 0) { in max98095_dai2_hw_params()
1042 do_div(ni, (unsigned long long int)max98095->sysclk); in max98095_dai2_hw_params()
1065 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_dai3_hw_params() local
1071 cdata = &max98095->dai[2]; in max98095_dai3_hw_params()
1097 if (max98095->sysclk == 0) { in max98095_dai3_hw_params()
1103 do_div(ni, (unsigned long long int)max98095->sysclk); in max98095_dai3_hw_params()
1125 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_dai_set_sysclk() local
1128 if (freq == max98095->sysclk) in max98095_dai_set_sysclk()
1131 if (!IS_ERR(max98095->mclk)) { in max98095_dai_set_sysclk()
1132 freq = clk_round_rate(max98095->mclk, freq); in max98095_dai_set_sysclk()
1133 clk_set_rate(max98095->mclk, freq); in max98095_dai_set_sysclk()
1154 max98095->sysclk = freq; in max98095_dai_set_sysclk()
1162 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_dai1_set_fmt() local
1166 cdata = &max98095->dai[0]; in max98095_dai1_set_fmt()
1230 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_dai2_set_fmt() local
1234 cdata = &max98095->dai[1]; in max98095_dai2_set_fmt()
1299 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_dai3_set_fmt() local
1303 cdata = &max98095->dai[2]; in max98095_dai3_set_fmt()
1367 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_set_bias_level() local
1382 if (IS_ERR(max98095->mclk)) in max98095_set_bias_level()
1386 clk_disable_unprepare(max98095->mclk); in max98095_set_bias_level()
1388 ret = clk_prepare_enable(max98095->mclk); in max98095_set_bias_level()
1396 ret = regcache_sync(max98095->regmap); in max98095_set_bias_level()
1411 regcache_mark_dirty(max98095->regmap); in max98095_set_bias_level()
1495 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_put_eq_enum() local
1496 struct max98095_pdata *pdata = max98095->pdata; in max98095_put_eq_enum()
1507 if (!pdata || !max98095->eq_textcnt) in max98095_put_eq_enum()
1513 cdata = &max98095->dai[channel]; in max98095_put_eq_enum()
1521 if (strcmp(pdata->eq_cfg[i].name, max98095->eq_texts[sel]) == 0 && in max98095_put_eq_enum()
1540 mutex_lock(&max98095->lock); in max98095_put_eq_enum()
1548 mutex_unlock(&max98095->lock); in max98095_put_eq_enum()
1559 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_get_eq_enum() local
1563 cdata = &max98095->dai[channel]; in max98095_get_eq_enum()
1571 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_handle_eq_pdata() local
1572 struct max98095_pdata *pdata = max98095->pdata; in max98095_handle_eq_pdata()
1581 max98095->eq_enum, in max98095_handle_eq_pdata()
1585 max98095->eq_enum, in max98095_handle_eq_pdata()
1596 max98095->eq_textcnt = 0; in max98095_handle_eq_pdata()
1597 max98095->eq_texts = NULL; in max98095_handle_eq_pdata()
1599 for (j = 0; j < max98095->eq_textcnt; j++) { in max98095_handle_eq_pdata()
1600 if (strcmp(cfg[i].name, max98095->eq_texts[j]) == 0) in max98095_handle_eq_pdata()
1604 if (j != max98095->eq_textcnt) in max98095_handle_eq_pdata()
1608 t = krealloc(max98095->eq_texts, in max98095_handle_eq_pdata()
1609 sizeof(char *) * (max98095->eq_textcnt + 1), in max98095_handle_eq_pdata()
1615 t[max98095->eq_textcnt] = cfg[i].name; in max98095_handle_eq_pdata()
1616 max98095->eq_textcnt++; in max98095_handle_eq_pdata()
1617 max98095->eq_texts = t; in max98095_handle_eq_pdata()
1621 max98095->eq_enum.texts = max98095->eq_texts; in max98095_handle_eq_pdata()
1622 max98095->eq_enum.items = max98095->eq_textcnt; in max98095_handle_eq_pdata()
1646 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_put_bq_enum() local
1647 struct max98095_pdata *pdata = max98095->pdata; in max98095_put_bq_enum()
1658 if (!pdata || !max98095->bq_textcnt) in max98095_put_bq_enum()
1664 cdata = &max98095->dai[channel]; in max98095_put_bq_enum()
1672 if (strcmp(pdata->bq_cfg[i].name, max98095->bq_texts[sel]) == 0 && in max98095_put_bq_enum()
1691 mutex_lock(&max98095->lock); in max98095_put_bq_enum()
1696 mutex_unlock(&max98095->lock); in max98095_put_bq_enum()
1707 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_get_bq_enum() local
1714 cdata = &max98095->dai[channel]; in max98095_get_bq_enum()
1722 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_handle_bq_pdata() local
1723 struct max98095_pdata *pdata = max98095->pdata; in max98095_handle_bq_pdata()
1732 max98095->bq_enum, in max98095_handle_bq_pdata()
1736 max98095->bq_enum, in max98095_handle_bq_pdata()
1748 max98095->bq_textcnt = 0; in max98095_handle_bq_pdata()
1749 max98095->bq_texts = NULL; in max98095_handle_bq_pdata()
1751 for (j = 0; j < max98095->bq_textcnt; j++) { in max98095_handle_bq_pdata()
1752 if (strcmp(cfg[i].name, max98095->bq_texts[j]) == 0) in max98095_handle_bq_pdata()
1756 if (j != max98095->bq_textcnt) in max98095_handle_bq_pdata()
1760 t = krealloc(max98095->bq_texts, in max98095_handle_bq_pdata()
1761 sizeof(char *) * (max98095->bq_textcnt + 1), in max98095_handle_bq_pdata()
1767 t[max98095->bq_textcnt] = cfg[i].name; in max98095_handle_bq_pdata()
1768 max98095->bq_textcnt++; in max98095_handle_bq_pdata()
1769 max98095->bq_texts = t; in max98095_handle_bq_pdata()
1773 max98095->bq_enum.texts = max98095->bq_texts; in max98095_handle_bq_pdata()
1774 max98095->bq_enum.items = max98095->bq_textcnt; in max98095_handle_bq_pdata()
1783 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_handle_pdata() local
1784 struct max98095_pdata *pdata = max98095->pdata; in max98095_handle_pdata()
1813 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_report_jack() local
1827 max98095->headphone_jack) in max98095_report_jack()
1831 if ((value & M98095_MIC_IN) && max98095->mic_jack) in max98095_report_jack()
1834 if (max98095->headphone_jack == max98095->mic_jack) { in max98095_report_jack()
1835 snd_soc_jack_report(max98095->headphone_jack, in max98095_report_jack()
1839 if (max98095->headphone_jack) in max98095_report_jack()
1840 snd_soc_jack_report(max98095->headphone_jack, in max98095_report_jack()
1842 if (max98095->mic_jack) in max98095_report_jack()
1843 snd_soc_jack_report(max98095->mic_jack, in max98095_report_jack()
1852 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_jack_detect_enable() local
1857 if (max98095->pdata->jack_detect_pin5en) in max98095_jack_detect_enable()
1860 if (max98095->pdata->jack_detect_delay) in max98095_jack_detect_enable()
1861 slew = max98095->pdata->jack_detect_delay; in max98095_jack_detect_enable()
1896 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_jack_detect() local
1900 max98095->headphone_jack = hp_jack; in max98095_jack_detect()
1901 max98095->mic_jack = mic_jack; in max98095_jack_detect()
1925 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_suspend() local
1927 if (max98095->headphone_jack || max98095->mic_jack) in max98095_suspend()
1937 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_resume() local
1942 if (max98095->headphone_jack || max98095->mic_jack) { in max98095_resume()
1987 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_probe() local
1992 max98095->mclk = devm_clk_get(component->dev, "mclk"); in max98095_probe()
1993 if (PTR_ERR(max98095->mclk) == -EPROBE_DEFER) in max98095_probe()
2003 max98095->sysclk = (unsigned)-1; in max98095_probe()
2004 max98095->eq_textcnt = 0; in max98095_probe()
2005 max98095->bq_textcnt = 0; in max98095_probe()
2007 cdata = &max98095->dai[0]; in max98095_probe()
2013 cdata = &max98095->dai[1]; in max98095_probe()
2019 cdata = &max98095->dai[2]; in max98095_probe()
2025 max98095->lin_state = 0; in max98095_probe()
2026 max98095->mic1pre = 0; in max98095_probe()
2027 max98095->mic2pre = 0; in max98095_probe()
2034 IRQF_ONESHOT, "max98095", component); in max98095_probe()
2087 struct max98095_priv *max98095 = snd_soc_component_get_drvdata(component); in max98095_remove() local
2090 if (max98095->headphone_jack || max98095->mic_jack) in max98095_remove()
2118 struct max98095_priv *max98095; in max98095_i2c_probe() local
2121 max98095 = devm_kzalloc(&i2c->dev, sizeof(struct max98095_priv), in max98095_i2c_probe()
2123 if (max98095 == NULL) in max98095_i2c_probe()
2126 mutex_init(&max98095->lock); in max98095_i2c_probe()
2128 max98095->regmap = devm_regmap_init_i2c(i2c, &max98095_regmap); in max98095_i2c_probe()
2129 if (IS_ERR(max98095->regmap)) { in max98095_i2c_probe()
2130 ret = PTR_ERR(max98095->regmap); in max98095_i2c_probe()
2135 max98095->devtype = id->driver_data; in max98095_i2c_probe()
2136 i2c_set_clientdata(i2c, max98095); in max98095_i2c_probe()
2137 max98095->pdata = i2c->dev.platform_data; in max98095_i2c_probe()
2146 { "max98095", MAX98095 },
2152 { .compatible = "maxim,max98095", },
2159 .name = "max98095",
2168 MODULE_DESCRIPTION("ALSA SoC MAX98095 driver");