Lines Matching defs:rt712

3 // rt712-sdca-dmic.c -- rt712 SDCA DMIC ALSA SoC audio driver
18 #include "rt712-sdca.h"
19 #include "rt712-sdca-dmic.h"
132 static int rt712_sdca_dmic_index_write(struct rt712_sdca_dmic_priv *rt712,
136 struct regmap *regmap = rt712->mbq_regmap;
141 dev_err(&rt712->slave->dev,
148 static int rt712_sdca_dmic_index_read(struct rt712_sdca_dmic_priv *rt712,
152 struct regmap *regmap = rt712->mbq_regmap;
157 dev_err(&rt712->slave->dev,
164 static int rt712_sdca_dmic_index_update_bits(struct rt712_sdca_dmic_priv *rt712,
170 ret = rt712_sdca_dmic_index_read(rt712, nid, reg, &tmp);
175 return rt712_sdca_dmic_index_write(rt712, nid, reg, tmp);
180 struct rt712_sdca_dmic_priv *rt712 = dev_get_drvdata(dev);
182 if (rt712->hw_init)
185 regcache_cache_only(rt712->regmap, false);
186 regcache_cache_only(rt712->mbq_regmap, false);
187 if (rt712->first_hw_init) {
188 regcache_cache_bypass(rt712->regmap, true);
189 regcache_cache_bypass(rt712->mbq_regmap, true);
201 rt712_sdca_dmic_index_write(rt712, RT712_VENDOR_HDA_CTL,
203 rt712_sdca_dmic_index_write(rt712, RT712_VENDOR_HDA_CTL,
205 rt712_sdca_dmic_index_write(rt712, RT712_VENDOR_HDA_CTL,
207 rt712_sdca_dmic_index_write(rt712, RT712_VENDOR_HDA_CTL,
209 rt712_sdca_dmic_index_write(rt712, RT712_VENDOR_HDA_CTL,
211 rt712_sdca_dmic_index_write(rt712, RT712_VENDOR_HDA_CTL,
213 rt712_sdca_dmic_index_write(rt712, RT712_VENDOR_HDA_CTL,
215 rt712_sdca_dmic_index_write(rt712, RT712_VENDOR_HDA_CTL,
217 rt712_sdca_dmic_index_write(rt712, RT712_VENDOR_HDA_CTL,
219 rt712_sdca_dmic_index_write(rt712, RT712_VENDOR_HDA_CTL,
221 regmap_write(rt712->regmap,
223 rt712_sdca_dmic_index_write(rt712, RT712_ULTRA_SOUND_DET,
225 regmap_write(rt712->regmap, RT712_RC_CAL, 0x23);
226 regmap_write(rt712->regmap, 0x2f52, 0x00);
228 if (rt712->first_hw_init) {
229 regcache_cache_bypass(rt712->regmap, false);
230 regcache_mark_dirty(rt712->regmap);
231 regcache_cache_bypass(rt712->mbq_regmap, false);
232 regcache_mark_dirty(rt712->mbq_regmap);
234 rt712->first_hw_init = true;
237 rt712->hw_init = true;
250 struct rt712_sdca_priv *rt712 = snd_soc_component_get_drvdata(component);
262 regmap_read(rt712->mbq_regmap, p->reg_base + i, &regvalue);
285 struct rt712_sdca_priv *rt712 = snd_soc_component_get_drvdata(component);
297 regmap_read(rt712->mbq_regmap, p->reg_base + i, &regvalue[i]);
318 err = regmap_write(rt712->mbq_regmap, p->reg_base + i, gain_val[i]);
320 dev_err(&rt712->slave->dev, "0x%08x can't be set\n", p->reg_base + i);
326 static int rt712_sdca_set_fu1e_capture_ctl(struct rt712_sdca_dmic_priv *rt712)
331 for (i = 0; i < ARRAY_SIZE(rt712->fu1e_mixer_mute); i++) {
332 ch_mute = (rt712->fu1e_dapm_mute || rt712->fu1e_mixer_mute[i]) ? 0x01 : 0x00;
333 err = regmap_write(rt712->regmap,
347 struct rt712_sdca_dmic_priv *rt712 = snd_soc_component_get_drvdata(component);
353 ucontrol->value.integer.value[i] = !rt712->fu1e_mixer_mute[i];
362 struct rt712_sdca_dmic_priv *rt712 = snd_soc_component_get_drvdata(component);
368 if (rt712->fu1e_mixer_mute[i] != !ucontrol->value.integer.value[i])
370 rt712->fu1e_mixer_mute[i] = !ucontrol->value.integer.value[i];
373 err = rt712_sdca_set_fu1e_capture_ctl(rt712);
438 struct rt712_sdca_dmic_priv *rt712 = snd_soc_component_get_drvdata(component);
448 rt712_sdca_dmic_index_read(rt712, RT712_VENDOR_HDA_CTL,
463 struct rt712_sdca_dmic_priv *rt712 = snd_soc_component_get_drvdata(component);
480 rt712_sdca_dmic_index_read(rt712, RT712_VENDOR_HDA_CTL,
490 rt712_sdca_dmic_index_update_bits(rt712, RT712_VENDOR_HDA_CTL,
524 struct rt712_sdca_dmic_priv *rt712 = snd_soc_component_get_drvdata(component);
528 rt712->fu1e_dapm_mute = false;
529 rt712_sdca_set_fu1e_capture_ctl(rt712);
532 rt712->fu1e_dapm_mute = true;
533 rt712_sdca_set_fu1e_capture_ctl(rt712);
544 struct rt712_sdca_dmic_priv *rt712 = snd_soc_component_get_drvdata(component);
549 regmap_write(rt712->regmap,
555 regmap_write(rt712->regmap,
597 struct rt712_sdca_dmic_priv *rt712 = snd_soc_component_get_drvdata(component);
600 rt712->component = component;
602 if (!rt712->first_hw_init)
642 struct rt712_sdca_dmic_priv *rt712 = snd_soc_component_get_drvdata(component);
655 if (!rt712->slave)
667 retval = sdw_stream_add_slave(rt712->slave, &stream_config,
707 regmap_write(rt712->regmap,
710 regmap_write(rt712->regmap,
721 struct rt712_sdca_dmic_priv *rt712 = snd_soc_component_get_drvdata(component);
725 if (!rt712->slave)
728 sdw_stream_remove_slave(rt712->slave, sdw_stream);
746 .name = "rt712-sdca-dmic-aif1",
762 struct rt712_sdca_dmic_priv *rt712;
765 rt712 = devm_kzalloc(dev, sizeof(*rt712), GFP_KERNEL);
766 if (!rt712)
769 dev_set_drvdata(dev, rt712);
770 rt712->slave = slave;
771 rt712->regmap = regmap;
772 rt712->mbq_regmap = mbq_regmap;
774 regcache_cache_only(rt712->regmap, true);
775 regcache_cache_only(rt712->mbq_regmap, true);
781 rt712->hw_init = false;
782 rt712->first_hw_init = false;
783 rt712->fu1e_dapm_mute = true;
784 rt712->fu1e_mixer_mute[0] = rt712->fu1e_mixer_mute[1] =
785 rt712->fu1e_mixer_mute[2] = rt712->fu1e_mixer_mute[3] = true;
818 struct rt712_sdca_dmic_priv *rt712 = dev_get_drvdata(&slave->dev);
821 rt712->hw_init = false;
827 if (rt712->hw_init || status != SDW_SLAVE_ATTACHED)
888 struct rt712_sdca_dmic_priv *rt712 = dev_get_drvdata(dev);
890 if (!rt712->hw_init)
893 regcache_cache_only(rt712->regmap, true);
894 regcache_cache_only(rt712->mbq_regmap, true);
914 struct rt712_sdca_dmic_priv *rt712 = dev_get_drvdata(dev);
917 if (!rt712->first_hw_init)
934 regcache_cache_only(rt712->regmap, false);
935 regcache_sync(rt712->regmap);
936 regcache_cache_only(rt712->mbq_regmap, false);
937 regcache_sync(rt712->mbq_regmap);
978 .name = "rt712-sdca-dmic",