Lines Matching refs:max98520
19 #include "max98520.h"
75 struct max98520_priv *max98520 =
93 regmap_update_bits(max98520->regmap,
116 regmap_update_bits(max98520->regmap,
143 struct max98520_priv *max98520 =
146 int blr_clk_ratio = params_channels(params) * max98520->ch_size;
149 if (!max98520->tdm_mode) {
158 regmap_update_bits(max98520->regmap,
163 dev_dbg(component->dev, "%s tdm_mode:%d out\n", __func__, max98520->tdm_mode);
172 struct max98520_priv *max98520 =
194 max98520->ch_size = snd_pcm_format_width(params_format(params));
196 regmap_update_bits(max98520->regmap,
253 regmap_update_bits(max98520->regmap,
269 struct max98520_priv *max98520 =
275 max98520->tdm_mode = false;
277 max98520->tdm_mode = true;
287 regmap_update_bits(max98520->regmap,
309 regmap_update_bits(max98520->regmap,
314 regmap_update_bits(max98520->regmap,
318 regmap_update_bits(max98520->regmap,
342 struct max98520_priv *max98520 =
349 regmap_write(max98520->regmap, MAX98520_R209F_AMP_EN, 1);
350 regmap_write(max98520->regmap, MAX98520_R210F_GLOBAL_EN, 1);
356 regmap_write(max98520->regmap, MAX98520_R210F_GLOBAL_EN, 0);
357 regmap_write(max98520->regmap, MAX98520_R209F_AMP_EN, 0);
584 .name = "max98520-aif1",
599 struct max98520_priv *max98520 =
603 regmap_write(max98520->regmap, MAX98520_R2000_SW_RESET, 1);
606 regmap_write(max98520->regmap, MAX98520_R2043_PCM_RX_SRC1, 0x2);
610 regmap_write(max98520->regmap, MAX98520_R2044_PCM_RX_SRC2, 0x10);
613 regmap_update_bits(max98520->regmap, MAX98520_R2092_AMP_DSP_CFG, 1, 1);
615 regmap_write(max98520->regmap, MAX98520_R2030_CLK_MON_CTRL, 0x1);
618 regmap_update_bits(max98520->regmap,
628 struct max98520_priv *max98520 = dev_get_drvdata(dev);
630 regcache_cache_only(max98520->regmap, true);
631 regcache_mark_dirty(max98520->regmap);
637 struct max98520_priv *max98520 = dev_get_drvdata(dev);
639 regcache_cache_only(max98520->regmap, false);
640 regmap_write(max98520->regmap, MAX98520_R2000_SW_RESET, 1);
641 regcache_sync(max98520->regmap);
673 static void max98520_power_on(struct max98520_priv *max98520, bool poweron)
675 if (max98520->reset_gpio)
676 gpiod_set_value_cansleep(max98520->reset_gpio, !poweron);
683 struct max98520_priv *max98520;
692 max98520 = devm_kzalloc(&i2c->dev, sizeof(*max98520), GFP_KERNEL);
694 if (!max98520)
697 i2c_set_clientdata(i2c, max98520);
700 max98520->regmap = devm_regmap_init_i2c(i2c, &max98520_regmap);
701 if (IS_ERR(max98520->regmap)) {
702 ret = PTR_ERR(max98520->regmap);
708 max98520->reset_gpio = devm_gpiod_get_optional(&i2c->dev, "reset", GPIOD_OUT_HIGH);
709 if (max98520->reset_gpio) {
710 if (IS_ERR(max98520->reset_gpio)) {
711 ret = PTR_ERR(max98520->reset_gpio);
716 max98520_power_on(max98520, 1);
720 ret = regmap_read(max98520->regmap, MAX98520_R21FF_REVISION_ID, ®);
739 { "max98520", 0},
747 { .compatible = "maxim,max98520", },
755 .name = "max98520",