Lines Matching refs:rt722
30 int rt722_sdca_index_write(struct rt722_sdca_priv *rt722, in rt722_sdca_index_write() argument
33 struct regmap *regmap = rt722->regmap; in rt722_sdca_index_write()
39 dev_err(&rt722->slave->dev, in rt722_sdca_index_write()
46 int rt722_sdca_index_read(struct rt722_sdca_priv *rt722, in rt722_sdca_index_read() argument
50 struct regmap *regmap = rt722->regmap; in rt722_sdca_index_read()
55 dev_err(&rt722->slave->dev, in rt722_sdca_index_read()
62 static int rt722_sdca_index_update_bits(struct rt722_sdca_priv *rt722, in rt722_sdca_index_update_bits() argument
68 ret = rt722_sdca_index_read(rt722, nid, reg, &tmp); in rt722_sdca_index_update_bits()
73 return rt722_sdca_index_write(rt722, nid, reg, tmp); in rt722_sdca_index_update_bits()
94 static unsigned int rt722_sdca_button_detect(struct rt722_sdca_priv *rt722) in rt722_sdca_button_detect() argument
101 ret = regmap_read(rt722->regmap, in rt722_sdca_button_detect()
112 ret = regmap_read(rt722->regmap, in rt722_sdca_button_detect()
119 ret = regmap_read(rt722->regmap, in rt722_sdca_button_detect()
133 regmap_write(rt722->regmap, in rt722_sdca_button_detect()
140 static int rt722_sdca_headset_detect(struct rt722_sdca_priv *rt722) in rt722_sdca_headset_detect() argument
146 ret = regmap_read(rt722->regmap, in rt722_sdca_headset_detect()
154 rt722->jack_type = 0; in rt722_sdca_headset_detect()
157 rt722->jack_type = SND_JACK_HEADPHONE; in rt722_sdca_headset_detect()
160 rt722->jack_type = SND_JACK_HEADSET; in rt722_sdca_headset_detect()
166 ret = regmap_write(rt722->regmap, in rt722_sdca_headset_detect()
173 dev_dbg(&rt722->slave->dev, in rt722_sdca_headset_detect()
185 struct rt722_sdca_priv *rt722 = in rt722_sdca_jack_detect_handler() local
189 if (!rt722->hs_jack) in rt722_sdca_jack_detect_handler()
192 if (!rt722->component->card || !rt722->component->card->instantiated) in rt722_sdca_jack_detect_handler()
196 if (rt722->scp_sdca_stat1 & SDW_SCP_SDCA_INT_SDCA_0) { in rt722_sdca_jack_detect_handler()
197 ret = rt722_sdca_headset_detect(rt722); in rt722_sdca_jack_detect_handler()
203 if (rt722->scp_sdca_stat2 & SDW_SCP_SDCA_INT_SDCA_8) in rt722_sdca_jack_detect_handler()
204 btn_type = rt722_sdca_button_detect(rt722); in rt722_sdca_jack_detect_handler()
206 if (rt722->jack_type == 0) in rt722_sdca_jack_detect_handler()
209 dev_dbg(&rt722->slave->dev, in rt722_sdca_jack_detect_handler()
210 "in %s, jack_type=%d\n", __func__, rt722->jack_type); in rt722_sdca_jack_detect_handler()
211 dev_dbg(&rt722->slave->dev, in rt722_sdca_jack_detect_handler()
213 dev_dbg(&rt722->slave->dev, in rt722_sdca_jack_detect_handler()
215 rt722->scp_sdca_stat1, rt722->scp_sdca_stat2); in rt722_sdca_jack_detect_handler()
217 snd_soc_jack_report(rt722->hs_jack, rt722->jack_type | btn_type, in rt722_sdca_jack_detect_handler()
224 snd_soc_jack_report(rt722->hs_jack, rt722->jack_type, in rt722_sdca_jack_detect_handler()
230 &rt722->jack_btn_check_work, msecs_to_jiffies(200)); in rt722_sdca_jack_detect_handler()
236 struct rt722_sdca_priv *rt722 = in rt722_sdca_btn_check_handler() local
242 ret = regmap_read(rt722->regmap, in rt722_sdca_btn_check_handler()
251 ret = regmap_read(rt722->regmap, in rt722_sdca_btn_check_handler()
258 ret = regmap_read(rt722->regmap, in rt722_sdca_btn_check_handler()
268 rt722->jack_type = 0; in rt722_sdca_btn_check_handler()
270 dev_dbg(&rt722->slave->dev, "%s, btn_type=0x%x\n", __func__, btn_type); in rt722_sdca_btn_check_handler()
271 snd_soc_jack_report(rt722->hs_jack, rt722->jack_type | btn_type, in rt722_sdca_btn_check_handler()
278 snd_soc_jack_report(rt722->hs_jack, rt722->jack_type, in rt722_sdca_btn_check_handler()
284 &rt722->jack_btn_check_work, msecs_to_jiffies(200)); in rt722_sdca_btn_check_handler()
293 static void rt722_sdca_jack_init(struct rt722_sdca_priv *rt722) in rt722_sdca_jack_init() argument
295 mutex_lock(&rt722->calibrate_mutex); in rt722_sdca_jack_init()
296 if (rt722->hs_jack) { in rt722_sdca_jack_init()
298 sdw_write_no_pm(rt722->slave, SDW_SCP_SDCA_INTMASK1, in rt722_sdca_jack_init()
301 sdw_write_no_pm(rt722->slave, SDW_SCP_SDCA_INTMASK2, in rt722_sdca_jack_init()
303 dev_dbg(&rt722->slave->dev, "in %s enable\n", __func__); in rt722_sdca_jack_init()
304 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, in rt722_sdca_jack_init()
307 regmap_write(rt722->regmap, in rt722_sdca_jack_init()
310 regmap_write(rt722->regmap, in rt722_sdca_jack_init()
313 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_GE_RELATED_CTL1, 0x0000); in rt722_sdca_jack_init()
315 rt722_sdca_index_update_bits(rt722, RT722_VENDOR_HDA_CTL, in rt722_sdca_jack_init()
318 mutex_unlock(&rt722->calibrate_mutex); in rt722_sdca_jack_init()
324 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_set_jack_detect() local
327 rt722->hs_jack = hs_jack; in rt722_sdca_set_jack_detect()
340 rt722_sdca_jack_init(rt722); in rt722_sdca_set_jack_detect()
354 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_set_gain_put() local
365 regmap_read(rt722->regmap, mc->reg, &lvalue); in rt722_sdca_set_gain_put()
366 regmap_read(rt722->regmap, mc->rreg, &rvalue); in rt722_sdca_set_gain_put()
406 regmap_write(rt722->regmap, mc->reg, gain_l_val); in rt722_sdca_set_gain_put()
409 regmap_write(rt722->regmap, mc->rreg, gain_r_val); in rt722_sdca_set_gain_put()
411 regmap_read(rt722->regmap, mc->reg, &read_l); in rt722_sdca_set_gain_put()
412 regmap_read(rt722->regmap, mc->rreg, &read_r); in rt722_sdca_set_gain_put()
423 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_set_gain_get() local
435 regmap_read(rt722->regmap, mc->reg, &read_l); in rt722_sdca_set_gain_get()
436 regmap_read(rt722->regmap, mc->rreg, &read_r); in rt722_sdca_set_gain_get()
466 static int rt722_sdca_set_fu1e_capture_ctl(struct rt722_sdca_priv *rt722) in rt722_sdca_set_fu1e_capture_ctl() argument
471 for (i = 0; i < ARRAY_SIZE(rt722->fu1e_mixer_mute); i++) { in rt722_sdca_set_fu1e_capture_ctl()
472 ch_mute = rt722->fu1e_dapm_mute || rt722->fu1e_mixer_mute[i]; in rt722_sdca_set_fu1e_capture_ctl()
473 err = regmap_write(rt722->regmap, in rt722_sdca_set_fu1e_capture_ctl()
487 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_fu1e_capture_get() local
493 ucontrol->value.integer.value[i] = !rt722->fu1e_mixer_mute[i]; in rt722_sdca_fu1e_capture_get()
502 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_fu1e_capture_put() local
508 if (rt722->fu1e_mixer_mute[i] != !ucontrol->value.integer.value[i]) in rt722_sdca_fu1e_capture_put()
510 rt722->fu1e_mixer_mute[i] = !ucontrol->value.integer.value[i]; in rt722_sdca_fu1e_capture_put()
513 err = rt722_sdca_set_fu1e_capture_ctl(rt722); in rt722_sdca_fu1e_capture_put()
520 static int rt722_sdca_set_fu0f_capture_ctl(struct rt722_sdca_priv *rt722) in rt722_sdca_set_fu0f_capture_ctl() argument
525 ch_l = (rt722->fu0f_dapm_mute || rt722->fu0f_mixer_l_mute) ? 0x01 : 0x00; in rt722_sdca_set_fu0f_capture_ctl()
526 ch_r = (rt722->fu0f_dapm_mute || rt722->fu0f_mixer_r_mute) ? 0x01 : 0x00; in rt722_sdca_set_fu0f_capture_ctl()
528 err = regmap_write(rt722->regmap, in rt722_sdca_set_fu0f_capture_ctl()
534 err = regmap_write(rt722->regmap, in rt722_sdca_set_fu0f_capture_ctl()
547 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_fu0f_capture_get() local
549 ucontrol->value.integer.value[0] = !rt722->fu0f_mixer_l_mute; in rt722_sdca_fu0f_capture_get()
550 ucontrol->value.integer.value[1] = !rt722->fu0f_mixer_r_mute; in rt722_sdca_fu0f_capture_get()
558 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_fu0f_capture_put() local
561 if (rt722->fu0f_mixer_l_mute != !ucontrol->value.integer.value[0] || in rt722_sdca_fu0f_capture_put()
562 rt722->fu0f_mixer_r_mute != !ucontrol->value.integer.value[1]) in rt722_sdca_fu0f_capture_put()
565 rt722->fu0f_mixer_l_mute = !ucontrol->value.integer.value[0]; in rt722_sdca_fu0f_capture_put()
566 rt722->fu0f_mixer_r_mute = !ucontrol->value.integer.value[1]; in rt722_sdca_fu0f_capture_put()
567 err = rt722_sdca_set_fu0f_capture_ctl(rt722); in rt722_sdca_fu0f_capture_put()
594 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_dmic_set_gain_get() local
608 regmap_read(rt722->regmap, p->reg_base + i, ®value); in rt722_sdca_dmic_set_gain_get()
627 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_dmic_set_gain_put() local
641 regmap_read(rt722->regmap, p->reg_base + i, ®value[i]); in rt722_sdca_dmic_set_gain_put()
662 err = regmap_write(rt722->regmap, p->reg_base + i, gain_val[i]); in rt722_sdca_dmic_set_gain_put()
664 dev_err(&rt722->slave->dev, "%s: %#08x can't be set\n", in rt722_sdca_dmic_set_gain_put()
780 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_fu42_event() local
785 regmap_write(rt722->regmap, in rt722_sdca_fu42_event()
788 regmap_write(rt722->regmap, in rt722_sdca_fu42_event()
793 regmap_write(rt722->regmap, in rt722_sdca_fu42_event()
796 regmap_write(rt722->regmap, in rt722_sdca_fu42_event()
809 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_fu21_event() local
814 regmap_write(rt722->regmap, in rt722_sdca_fu21_event()
817 regmap_write(rt722->regmap, in rt722_sdca_fu21_event()
822 regmap_write(rt722->regmap, in rt722_sdca_fu21_event()
825 regmap_write(rt722->regmap, in rt722_sdca_fu21_event()
838 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_fu113_event() local
842 rt722->fu1e_dapm_mute = false; in rt722_sdca_fu113_event()
843 rt722_sdca_set_fu1e_capture_ctl(rt722); in rt722_sdca_fu113_event()
847 rt722->fu1e_dapm_mute = true; in rt722_sdca_fu113_event()
848 rt722_sdca_set_fu1e_capture_ctl(rt722); in rt722_sdca_fu113_event()
859 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_fu36_event() local
863 rt722->fu0f_dapm_mute = false; in rt722_sdca_fu36_event()
864 rt722_sdca_set_fu0f_capture_ctl(rt722); in rt722_sdca_fu36_event()
867 rt722->fu0f_dapm_mute = true; in rt722_sdca_fu36_event()
868 rt722_sdca_set_fu0f_capture_ctl(rt722); in rt722_sdca_fu36_event()
874 static void rt722_pde_transition_delay(struct rt722_sdca_priv *rt722, unsigned char func, in rt722_pde_transition_delay() argument
879 pm_runtime_mark_last_busy(&rt722->slave->dev); in rt722_pde_transition_delay()
883 regmap_read(rt722->regmap, in rt722_pde_transition_delay()
892 dev_warn(&rt722->slave->dev, "%s PDE to %s is NOT ready", __func__, ps?"PS3":"PS0"); in rt722_pde_transition_delay()
901 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_pde47_event() local
906 regmap_write(rt722->regmap, in rt722_sdca_pde47_event()
909 rt722_pde_transition_delay(rt722, FUNC_NUM_JACK_CODEC, RT722_SDCA_ENT_PDE40, ps0); in rt722_sdca_pde47_event()
912 regmap_write(rt722->regmap, in rt722_sdca_pde47_event()
915 rt722_pde_transition_delay(rt722, FUNC_NUM_JACK_CODEC, RT722_SDCA_ENT_PDE40, ps3); in rt722_sdca_pde47_event()
926 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_pde23_event() local
931 regmap_write(rt722->regmap, in rt722_sdca_pde23_event()
934 rt722_pde_transition_delay(rt722, FUNC_NUM_AMP, RT722_SDCA_ENT_PDE23, ps0); in rt722_sdca_pde23_event()
937 regmap_write(rt722->regmap, in rt722_sdca_pde23_event()
940 rt722_pde_transition_delay(rt722, FUNC_NUM_AMP, RT722_SDCA_ENT_PDE23, ps3); in rt722_sdca_pde23_event()
951 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_pde11_event() local
956 regmap_write(rt722->regmap, in rt722_sdca_pde11_event()
959 rt722_pde_transition_delay(rt722, FUNC_NUM_MIC_ARRAY, RT722_SDCA_ENT_PDE2A, ps0); in rt722_sdca_pde11_event()
962 regmap_write(rt722->regmap, in rt722_sdca_pde11_event()
965 rt722_pde_transition_delay(rt722, FUNC_NUM_MIC_ARRAY, RT722_SDCA_ENT_PDE2A, ps3); in rt722_sdca_pde11_event()
976 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_pde12_event() local
981 regmap_write(rt722->regmap, in rt722_sdca_pde12_event()
984 rt722_pde_transition_delay(rt722, FUNC_NUM_JACK_CODEC, RT722_SDCA_ENT_PDE12, ps0); in rt722_sdca_pde12_event()
987 regmap_write(rt722->regmap, in rt722_sdca_pde12_event()
990 rt722_pde_transition_delay(rt722, FUNC_NUM_JACK_CODEC, RT722_SDCA_ENT_PDE12, ps3); in rt722_sdca_pde12_event()
1068 static int rt722_sdca_parse_dt(struct rt722_sdca_priv *rt722, struct device *dev) in rt722_sdca_parse_dt() argument
1070 device_property_read_u32(dev, "realtek,jd-src", &rt722->jd_src); in rt722_sdca_parse_dt()
1077 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_probe() local
1080 rt722_sdca_parse_dt(rt722, &rt722->slave->dev); in rt722_sdca_probe()
1081 rt722->component = component; in rt722_sdca_probe()
1121 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_pcm_hw_params() local
1135 if (!rt722->slave) in rt722_sdca_pcm_hw_params()
1170 retval = sdw_stream_add_slave(rt722->slave, &stream_config, in rt722_sdca_pcm_hw_params()
1205 regmap_write(rt722->regmap, in rt722_sdca_pcm_hw_params()
1208 regmap_write(rt722->regmap, in rt722_sdca_pcm_hw_params()
1214 regmap_write(rt722->regmap, in rt722_sdca_pcm_hw_params()
1219 regmap_write(rt722->regmap, in rt722_sdca_pcm_hw_params()
1230 struct rt722_sdca_priv *rt722 = snd_soc_component_get_drvdata(component); in rt722_sdca_pcm_hw_free() local
1234 if (!rt722->slave) in rt722_sdca_pcm_hw_free()
1237 sdw_stream_remove_slave(rt722->slave, sdw_stream); in rt722_sdca_pcm_hw_free()
1301 struct rt722_sdca_priv *rt722; in rt722_sdca_init() local
1303 rt722 = devm_kzalloc(dev, sizeof(*rt722), GFP_KERNEL); in rt722_sdca_init()
1304 if (!rt722) in rt722_sdca_init()
1307 dev_set_drvdata(dev, rt722); in rt722_sdca_init()
1308 rt722->slave = slave; in rt722_sdca_init()
1309 rt722->regmap = regmap; in rt722_sdca_init()
1311 regcache_cache_only(rt722->regmap, true); in rt722_sdca_init()
1313 mutex_init(&rt722->calibrate_mutex); in rt722_sdca_init()
1314 mutex_init(&rt722->disable_irq_lock); in rt722_sdca_init()
1316 INIT_DELAYED_WORK(&rt722->jack_detect_work, rt722_sdca_jack_detect_handler); in rt722_sdca_init()
1317 INIT_DELAYED_WORK(&rt722->jack_btn_check_work, rt722_sdca_btn_check_handler); in rt722_sdca_init()
1323 rt722->hw_init = false; in rt722_sdca_init()
1324 rt722->first_hw_init = false; in rt722_sdca_init()
1325 rt722->fu1e_dapm_mute = true; in rt722_sdca_init()
1326 rt722->fu0f_dapm_mute = true; in rt722_sdca_init()
1327 rt722->fu0f_mixer_l_mute = rt722->fu0f_mixer_r_mute = true; in rt722_sdca_init()
1328 rt722->fu1e_mixer_mute[0] = rt722->fu1e_mixer_mute[1] = in rt722_sdca_init()
1329 rt722->fu1e_mixer_mute[2] = rt722->fu1e_mixer_mute[3] = true; in rt722_sdca_init()
1335 static void rt722_sdca_dmic_preset(struct rt722_sdca_priv *rt722) in rt722_sdca_dmic_preset() argument
1338 struct device *dev = &rt722->slave->dev; in rt722_sdca_dmic_preset()
1340 regmap_read(rt722->regmap, in rt722_sdca_dmic_preset()
1344 if ((mic_func_status & FUNCTION_NEEDS_INITIALIZATION) || (!rt722->first_hw_init)) { in rt722_sdca_dmic_preset()
1346 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, in rt722_sdca_dmic_preset()
1349 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, in rt722_sdca_dmic_preset()
1352 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, in rt722_sdca_dmic_preset()
1355 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, in rt722_sdca_dmic_preset()
1358 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, in rt722_sdca_dmic_preset()
1361 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, in rt722_sdca_dmic_preset()
1364 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, in rt722_sdca_dmic_preset()
1367 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, in rt722_sdca_dmic_preset()
1370 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, in rt722_sdca_dmic_preset()
1373 regmap_write(rt722->regmap, in rt722_sdca_dmic_preset()
1377 regmap_write(rt722->regmap, 0x2f5c, 0x25); in rt722_sdca_dmic_preset()
1379 regmap_write(rt722->regmap, 0x2f03, 0x06); in rt722_sdca_dmic_preset()
1381 if (rt722->hw_vid == RT722_VB) in rt722_sdca_dmic_preset()
1382 regmap_write(rt722->regmap, 0x2f52, 0x00); in rt722_sdca_dmic_preset()
1385 regmap_write(rt722->regmap, in rt722_sdca_dmic_preset()
1391 static void rt722_sdca_amp_preset(struct rt722_sdca_priv *rt722) in rt722_sdca_amp_preset() argument
1394 struct device *dev = &rt722->slave->dev; in rt722_sdca_amp_preset()
1396 regmap_read(rt722->regmap, in rt722_sdca_amp_preset()
1400 if ((amp_func_status & FUNCTION_NEEDS_INITIALIZATION) || (!rt722->first_hw_init)) { in rt722_sdca_amp_preset()
1402 rt722_sdca_index_write(rt722, RT722_VENDOR_REG, RT722_CLSD_CTRL6, in rt722_sdca_amp_preset()
1405 rt722_sdca_index_write(rt722, RT722_VENDOR_CALI, RT722_DC_CALIB_CTRL, in rt722_sdca_amp_preset()
1408 rt722_sdca_index_write(rt722, RT722_VENDOR_CALI, RT722_DC_CALIB_CTRL, in rt722_sdca_amp_preset()
1411 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_AMP_PDE_FLOAT_CTL, in rt722_sdca_amp_preset()
1414 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_EAPD_CTL, in rt722_sdca_amp_preset()
1417 regmap_write(rt722->regmap, in rt722_sdca_amp_preset()
1421 if (rt722->hw_vid == RT722_VB) in rt722_sdca_amp_preset()
1422 regmap_write(rt722->regmap, 0x2f54, 0x00); in rt722_sdca_amp_preset()
1425 regmap_write(rt722->regmap, in rt722_sdca_amp_preset()
1431 static void rt722_sdca_jack_preset(struct rt722_sdca_priv *rt722) in rt722_sdca_jack_preset() argument
1436 struct device *dev = &rt722->slave->dev; in rt722_sdca_jack_preset()
1438 regmap_read(rt722->regmap, in rt722_sdca_jack_preset()
1442 if ((jack_func_status & FUNCTION_NEEDS_INITIALIZATION) || (!rt722->first_hw_init)) { in rt722_sdca_jack_preset()
1444 rt722_sdca_index_write(rt722, RT722_VENDOR_REG, RT722_ANALOG_BIAS_CTL3, in rt722_sdca_jack_preset()
1447 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_GE_RELATED_CTL2, in rt722_sdca_jack_preset()
1450 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_UMP_HID_CTL4, in rt722_sdca_jack_preset()
1453 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_UMP_HID_CTL5, in rt722_sdca_jack_preset()
1456 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_UMP_HID_CTL0, in rt722_sdca_jack_preset()
1459 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_UMP_HID_CTL7, in rt722_sdca_jack_preset()
1462 rt722_sdca_index_write(rt722, RT722_VENDOR_REG, RT722_JD_CTRL1, in rt722_sdca_jack_preset()
1465 rt722_sdca_index_write(rt722, RT722_VENDOR_REG, RT722_CLSD_CTRL6, in rt722_sdca_jack_preset()
1468 rt722_sdca_index_write(rt722, RT722_VENDOR_REG, RT722_FSM_CTL, in rt722_sdca_jack_preset()
1471 rt722_sdca_index_write(rt722, RT722_VENDOR_CALI, RT722_DAC_DC_CALI_CTL3, in rt722_sdca_jack_preset()
1476 ret = rt722_sdca_index_read(rt722, RT722_VENDOR_CALI, in rt722_sdca_jack_preset()
1479 dev_dbg(&rt722->slave->dev, "calibration failed!, ret=%d\n", ret); in rt722_sdca_jack_preset()
1485 dev_dbg(&rt722->slave->dev, "%s, calibration time-out!\n", __func__); in rt722_sdca_jack_preset()
1488 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_ADC0A_08_PDE_FLOAT_CTL, in rt722_sdca_jack_preset()
1491 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_MIC2_LINE2_PDE_FLOAT_CTL, in rt722_sdca_jack_preset()
1494 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_ET41_LINE2_PDE_FLOAT_CTL, in rt722_sdca_jack_preset()
1497 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_DAC03_HP_PDE_FLOAT_CTL, in rt722_sdca_jack_preset()
1499 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_ENT_FLOAT_CTRL_1, in rt722_sdca_jack_preset()
1501 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_FLOAT_CTRL_1, in rt722_sdca_jack_preset()
1504 regmap_write(rt722->regmap, 0x2f58, 0x07); in rt722_sdca_jack_preset()
1505 regmap_write(rt722->regmap, 0x2f03, 0x06); in rt722_sdca_jack_preset()
1507 rt722_sdca_index_update_bits(rt722, RT722_VENDOR_REG, in rt722_sdca_jack_preset()
1509 rt722_sdca_index_update_bits(rt722, RT722_VENDOR_REG, in rt722_sdca_jack_preset()
1512 rt722_sdca_index_write(rt722, RT722_VENDOR_REG, RT722_DIGITAL_MISC_CTRL4, in rt722_sdca_jack_preset()
1515 if (rt722->hw_vid == RT722_VB) in rt722_sdca_jack_preset()
1516 regmap_write(rt722->regmap, 0x2f51, 0x00); in rt722_sdca_jack_preset()
1519 regmap_write(rt722->regmap, in rt722_sdca_jack_preset()
1527 struct rt722_sdca_priv *rt722 = dev_get_drvdata(dev); in rt722_sdca_io_init() local
1530 rt722->disable_irq = false; in rt722_sdca_io_init()
1532 if (rt722->hw_init) in rt722_sdca_io_init()
1535 regcache_cache_only(rt722->regmap, false); in rt722_sdca_io_init()
1536 if (rt722->first_hw_init) { in rt722_sdca_io_init()
1537 regcache_cache_bypass(rt722->regmap, true); in rt722_sdca_io_init()
1558 rt722_sdca_index_read(rt722, RT722_VENDOR_REG, RT722_JD_PRODUCT_NUM, &val); in rt722_sdca_io_init()
1559 rt722->hw_vid = (val & 0x0f00) >> 8; in rt722_sdca_io_init()
1560 dev_dbg(&slave->dev, "%s hw_vid=0x%x\n", __func__, rt722->hw_vid); in rt722_sdca_io_init()
1562 rt722_sdca_dmic_preset(rt722); in rt722_sdca_io_init()
1563 rt722_sdca_amp_preset(rt722); in rt722_sdca_io_init()
1564 rt722_sdca_jack_preset(rt722); in rt722_sdca_io_init()
1566 if (rt722->first_hw_init) { in rt722_sdca_io_init()
1567 regcache_cache_bypass(rt722->regmap, false); in rt722_sdca_io_init()
1568 regcache_mark_dirty(rt722->regmap); in rt722_sdca_io_init()
1570 rt722->first_hw_init = true; in rt722_sdca_io_init()
1573 rt722->hw_init = true; in rt722_sdca_io_init()