Lines Matching refs:da7213
28 #include <sound/da7213.h>
29 #include "da7213.h"
218 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
221 mutex_lock(&da7213->ctrl_lock);
223 mutex_unlock(&da7213->ctrl_lock);
232 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
235 mutex_lock(&da7213->ctrl_lock);
237 mutex_unlock(&da7213->ctrl_lock);
246 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
249 mutex_lock(&da7213->ctrl_lock);
251 mutex_unlock(&da7213->ctrl_lock);
260 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
263 mutex_lock(&da7213->ctrl_lock);
265 mutex_unlock(&da7213->ctrl_lock);
360 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
402 if (da7213->alc_calib_auto)
424 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
430 if ((!ret) && (da7213->alc_en))
440 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
445 if (!da7213->alc_en) {
447 da7213->alc_en = true;
450 da7213->alc_en = false;
461 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
468 mutex_lock(&da7213->ctrl_lock);
469 ret = regmap_raw_read(da7213->regmap, reg, &val, sizeof(val));
470 mutex_unlock(&da7213->ctrl_lock);
488 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
502 mutex_lock(&da7213->ctrl_lock);
503 ret = regmap_raw_read(da7213->regmap, reg, &val_old, sizeof(val_old));
505 ret = regmap_raw_write(da7213->regmap, reg,
507 mutex_unlock(&da7213->ctrl_lock);
902 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
910 if (da7213->master)
961 if (da7213->master)
1325 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1333 if (da7213->fmt != DA7213_DAI_FORMAT_DSP) {
1369 da7213->out_rate = DA7213_PLL_FREQ_OUT_98304000;
1373 da7213->out_rate = DA7213_PLL_FREQ_OUT_90316800;
1377 da7213->out_rate = DA7213_PLL_FREQ_OUT_98304000;
1381 da7213->out_rate = DA7213_PLL_FREQ_OUT_98304000;
1385 da7213->out_rate = DA7213_PLL_FREQ_OUT_90316800;
1389 da7213->out_rate = DA7213_PLL_FREQ_OUT_98304000;
1393 da7213->out_rate = DA7213_PLL_FREQ_OUT_90316800;
1397 da7213->out_rate = DA7213_PLL_FREQ_OUT_98304000;
1401 da7213->out_rate = DA7213_PLL_FREQ_OUT_90316800;
1405 da7213->out_rate = DA7213_PLL_FREQ_OUT_98304000;
1424 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1431 da7213->master = true;
1434 da7213->master = false;
1490 da7213->fmt = DA7213_DAI_FORMAT_I2S_MODE;
1494 da7213->fmt = DA7213_DAI_FORMAT_LEFT_J;
1498 da7213->fmt = DA7213_DAI_FORMAT_RIGHT_J;
1503 da7213->fmt = DA7213_DAI_FORMAT_DSP;
1507 da7213->fmt = DA7213_DAI_FORMAT_DSP;
1553 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1556 if ((da7213->clk_src == clk_id) && (da7213->mclk_rate == freq))
1563 if (((freq < da7213->fin_min_rate) && (freq != 32768)) || (freq > 54000000)) {
1584 da7213->clk_src = clk_id;
1586 if (da7213->mclk) {
1587 freq = clk_round_rate(da7213->mclk, freq);
1588 ret = clk_set_rate(da7213->mclk, freq);
1596 da7213->mclk_rate = freq;
1606 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1614 if (da7213->mclk_rate == 32768) {
1615 if (!da7213->master) {
1628 if (da7213->mclk_rate < 5000000) {
1631 da7213->mclk_rate);
1633 } else if (da7213->mclk_rate <= 9000000) {
1636 } else if (da7213->mclk_rate <= 18000000) {
1639 } else if (da7213->mclk_rate <= 36000000) {
1642 } else if (da7213->mclk_rate <= 54000000) {
1648 da7213->mclk_rate);
1651 freq_ref = (da7213->mclk_rate / indiv);
1670 if (da7213->mclk_rate != 32768) {
1717 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1718 da7213->fixed_clk_auto_pll = false;
1750 .name = "da7213-hifi",
1773 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1776 if (!da7213->fixed_clk_auto_pll)
1779 da7213->mclk_rate = clk_get_rate(da7213->mclk);
1783 if (da7213->master)
1789 switch (da7213->out_rate) {
1791 if (da7213->mclk_rate == 11289600 ||
1792 da7213->mclk_rate == 22579200 ||
1793 da7213->mclk_rate == 45158400)
1797 if (da7213->mclk_rate == 12288000 ||
1798 da7213->mclk_rate == 24576000 ||
1799 da7213->mclk_rate == 49152000)
1812 da7213->mclk_rate, da7213->out_rate);
1818 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1827 if (da7213->mclk) {
1828 ret = clk_prepare_enable(da7213->mclk);
1847 if (da7213->mclk) {
1849 clk_disable_unprepare(da7213->mclk);
1869 { .compatible = "dlg,da7213", .data = (void *)DA7213_FIN_MIN_RATE },
1985 struct da7213_priv *da7213 = snd_soc_component_get_drvdata(component);
1992 da7213->alc_calib_auto = true;
2049 da7213->pdata = dev_get_platdata(component->dev);
2050 if (!da7213->pdata)
2051 da7213->pdata = da7213_fw_to_pdata(component);
2054 if (da7213->pdata) {
2055 struct da7213_platform_data *pdata = da7213->pdata;
2112 da7213->mclk = devm_clk_get_optional(component->dev, "mclk");
2113 if (IS_ERR(da7213->mclk))
2114 return PTR_ERR(da7213->mclk);
2115 if (da7213->mclk)
2119 da7213->fixed_clk_auto_pll = true;
2156 struct da7213_priv *da7213 = data;
2157 regulator_bulk_disable(DA7213_NUM_SUPPLIES, da7213->supplies);
2167 struct da7213_priv *da7213;
2170 da7213 = devm_kzalloc(&i2c->dev, sizeof(*da7213), GFP_KERNEL);
2171 if (!da7213)
2174 da7213->fin_min_rate = (uintptr_t)i2c_get_match_data(i2c);
2175 if (!da7213->fin_min_rate)
2178 i2c_set_clientdata(i2c, da7213);
2182 da7213->supplies[i].supply = da7213_supply_names[i];
2185 da7213->supplies);
2191 ret = regulator_bulk_enable(DA7213_NUM_SUPPLIES, da7213->supplies);
2195 ret = devm_add_action_or_reset(&i2c->dev, da7213_power_off, da7213);
2199 da7213->regmap = devm_regmap_init_i2c(i2c, &da7213_regmap_config);
2200 if (IS_ERR(da7213->regmap)) {
2201 ret = PTR_ERR(da7213->regmap);
2206 mutex_init(&da7213->ctrl_lock);
2216 dev_err(&i2c->dev, "Failed to register da7213 component: %d\n",
2229 struct da7213_priv *da7213 = dev_get_drvdata(dev);
2231 regcache_cache_only(da7213->regmap, true);
2232 regcache_mark_dirty(da7213->regmap);
2233 regulator_bulk_disable(DA7213_NUM_SUPPLIES, da7213->supplies);
2240 struct da7213_priv *da7213 = dev_get_drvdata(dev);
2243 ret = regulator_bulk_enable(DA7213_NUM_SUPPLIES, da7213->supplies);
2246 regcache_cache_only(da7213->regmap, false);
2247 return regcache_sync(da7213->regmap);
2256 { "da7213" },
2264 .name = "da7213",