Lines Matching +full:0 +full:x1e00

38 	if (ret < 0)  in rt722_sdca_index_write()
54 if (ret < 0) in rt722_sdca_index_read()
69 if (ret < 0) in rt722_sdca_index_update_bits()
78 if ((*buffer & 0xf0) == 0x10 || (*buffer & 0x0f) == 0x01 || (*(buffer + 1) == 0x01) || in rt722_sdca_btn_type()
79 (*(buffer + 1) == 0x10)) in rt722_sdca_btn_type()
81 else if ((*buffer & 0xf0) == 0x20 || (*buffer & 0x0f) == 0x02 || (*(buffer + 1) == 0x02) || in rt722_sdca_btn_type()
82 (*(buffer + 1) == 0x20)) in rt722_sdca_btn_type()
84 else if ((*buffer & 0xf0) == 0x40 || (*buffer & 0x0f) == 0x04 || (*(buffer + 1) == 0x04) || in rt722_sdca_btn_type()
85 (*(buffer + 1) == 0x40)) in rt722_sdca_btn_type()
87 else if ((*buffer & 0xf0) == 0x80 || (*buffer & 0x0f) == 0x08 || (*(buffer + 1) == 0x08) || in rt722_sdca_btn_type()
88 (*(buffer + 1) == 0x80)) in rt722_sdca_btn_type()
91 return 0; in rt722_sdca_btn_type()
96 unsigned int btn_type = 0, offset, idx, val, owner; in rt722_sdca_button_detect()
103 RT722_SDCA_CTL_HIDTX_CURRENT_OWNER, 0), &owner); in rt722_sdca_button_detect()
104 if (ret < 0) in rt722_sdca_button_detect()
105 return 0; in rt722_sdca_button_detect()
109 return 0; in rt722_sdca_button_detect()
114 RT722_SDCA_CTL_HIDTX_MESSAGE_OFFSET, 0), &offset); in rt722_sdca_button_detect()
115 if (ret < 0) in rt722_sdca_button_detect()
118 for (idx = 0; idx < sizeof(buf); idx++) { in rt722_sdca_button_detect()
121 if (ret < 0) in rt722_sdca_button_detect()
123 buf[idx] = val & 0xff; in rt722_sdca_button_detect()
126 if (buf[0] == 0x11) in rt722_sdca_button_detect()
131 if (owner == 0) in rt722_sdca_button_detect()
135 RT722_SDCA_CTL_HIDTX_CURRENT_OWNER, 0), 0x01); in rt722_sdca_button_detect()
148 RT722_SDCA_CTL_DETECTED_MODE, 0), &det_mode); in rt722_sdca_headset_detect()
149 if (ret < 0) in rt722_sdca_headset_detect()
153 case 0x00: in rt722_sdca_headset_detect()
154 rt722->jack_type = 0; in rt722_sdca_headset_detect()
156 case 0x03: in rt722_sdca_headset_detect()
159 case 0x05: in rt722_sdca_headset_detect()
168 RT722_SDCA_CTL_SELECTED_MODE, 0), det_mode); in rt722_sdca_headset_detect()
169 if (ret < 0) in rt722_sdca_headset_detect()
174 "%s, detected_mode=0x%x\n", __func__, det_mode); in rt722_sdca_headset_detect()
176 return 0; in rt722_sdca_headset_detect()
187 int btn_type = 0, ret; in rt722_sdca_jack_detect_handler()
198 if (ret < 0) in rt722_sdca_jack_detect_handler()
206 if (rt722->jack_type == 0) in rt722_sdca_jack_detect_handler()
207 btn_type = 0; in rt722_sdca_jack_detect_handler()
212 "in %s, btn_type=0x%x\n", __func__, btn_type); in rt722_sdca_jack_detect_handler()
214 "in %s, scp_sdca_stat1=0x%x, scp_sdca_stat2=0x%x\n", __func__, in rt722_sdca_jack_detect_handler()
238 int btn_type = 0, ret, idx; in rt722_sdca_btn_check_handler()
244 RT722_SDCA_CTL_DETECTED_MODE, 0), &det_mode); in rt722_sdca_btn_check_handler()
245 if (ret < 0) in rt722_sdca_btn_check_handler()
253 RT722_SDCA_CTL_HIDTX_MESSAGE_OFFSET, 0), &offset); in rt722_sdca_btn_check_handler()
254 if (ret < 0) in rt722_sdca_btn_check_handler()
257 for (idx = 0; idx < sizeof(buf); idx++) { in rt722_sdca_btn_check_handler()
260 if (ret < 0) in rt722_sdca_btn_check_handler()
262 buf[idx] = val & 0xff; in rt722_sdca_btn_check_handler()
265 if (buf[0] == 0x11) 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()
297 /* set SCP_SDCA_IntMask1[0]=1 */ in rt722_sdca_jack_init()
300 /* set SCP_SDCA_IntMask2[0]=1 */ in rt722_sdca_jack_init()
305 RT722_HDA_LEGACY_UNSOL_CTL, 0x016E); in rt722_sdca_jack_init()
309 RT722_SDCA_CTL_SELECTED_MODE, 0), 0); in rt722_sdca_jack_init()
312 RT722_SDCA_CTL_SELECTED_MODE, 0), 0); 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()
316 RT722_GE_RELATED_CTL2, 0x4000, 0x4000); in rt722_sdca_jack_init()
330 if (ret < 0) { in rt722_sdca_set_jack_detect()
337 return 0; in rt722_sdca_set_jack_detect()
345 return 0; in rt722_sdca_set_jack_detect()
357 unsigned int adc_vol_flag = 0, changed = 0; in rt722_sdca_set_gain_put()
359 const unsigned int interval_offset = 0xc0; in rt722_sdca_set_gain_put()
360 const unsigned int tendB = 0xa00; in rt722_sdca_set_gain_put()
370 gain_l_val = ucontrol->value.integer.value[0]; in rt722_sdca_set_gain_put()
379 gain_l_val = 0x1e00 - ((mc->max - gain_l_val) * interval_offset); in rt722_sdca_set_gain_put()
381 gain_l_val = 0 - ((mc->max - gain_l_val) * interval_offset); in rt722_sdca_set_gain_put()
382 gain_l_val &= 0xffff; in rt722_sdca_set_gain_put()
395 gain_r_val = 0x1e00 - ((mc->max - gain_r_val) * interval_offset); in rt722_sdca_set_gain_put()
397 gain_r_val = 0 - ((mc->max - gain_r_val) * interval_offset); in rt722_sdca_set_gain_put()
398 gain_r_val &= 0xffff; in rt722_sdca_set_gain_put()
404 return 0; in rt722_sdca_set_gain_put()
427 unsigned int read_l, read_r, ctl_l = 0, ctl_r = 0; in rt722_sdca_set_gain_get()
428 unsigned int adc_vol_flag = 0; in rt722_sdca_set_gain_get()
429 const unsigned int interval_offset = 0xc0; in rt722_sdca_set_gain_get()
430 const unsigned int tendB = 0xa00; in rt722_sdca_set_gain_get()
443 ctl_l = mc->max - (((0x1e00 - read_l) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
445 ctl_l = mc->max - (((0 - read_l) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
453 ctl_r = mc->max - (((0x1e00 - read_r) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
455 ctl_r = mc->max - (((0 - read_r) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
461 ucontrol->value.integer.value[0] = ctl_l; in rt722_sdca_set_gain_get()
464 return 0; in rt722_sdca_set_gain_get()
472 for (i = 0; i < ARRAY_SIZE(rt722->fu1e_mixer_mute); i++) { in rt722_sdca_set_fu1e_capture_ctl()
477 if (err < 0) in rt722_sdca_set_fu1e_capture_ctl()
481 return 0; in rt722_sdca_set_fu1e_capture_ctl()
493 for (i = 0; i < p->count; i++) in rt722_sdca_fu1e_capture_get()
496 return 0; in rt722_sdca_fu1e_capture_get()
506 int err, changed = 0, i; in rt722_sdca_fu1e_capture_put()
508 for (i = 0; i < p->count; i++) { in rt722_sdca_fu1e_capture_put()
515 if (err < 0) in rt722_sdca_fu1e_capture_put()
526 ch_l = (rt722->fu0f_dapm_mute || rt722->fu0f_mixer_l_mute) ? 0x01 : 0x00; in rt722_sdca_set_fu0f_capture_ctl()
527 ch_r = (rt722->fu0f_dapm_mute || rt722->fu0f_mixer_r_mute) ? 0x01 : 0x00; in rt722_sdca_set_fu0f_capture_ctl()
532 if (err < 0) in rt722_sdca_set_fu0f_capture_ctl()
538 if (err < 0) in rt722_sdca_set_fu0f_capture_ctl()
541 return 0; in rt722_sdca_set_fu0f_capture_ctl()
550 ucontrol->value.integer.value[0] = !rt722->fu0f_mixer_l_mute; in rt722_sdca_fu0f_capture_get()
552 return 0; in rt722_sdca_fu0f_capture_get()
560 int err, changed = 0; in rt722_sdca_fu0f_capture_put()
562 if (rt722->fu0f_mixer_l_mute != !ucontrol->value.integer.value[0] || in rt722_sdca_fu0f_capture_put()
566 rt722->fu0f_mixer_l_mute = !ucontrol->value.integer.value[0]; in rt722_sdca_fu0f_capture_put()
569 if (err < 0) in rt722_sdca_fu0f_capture_put()
586 uinfo->value.integer.min = 0; in rt722_sdca_fu_info()
588 return 0; in rt722_sdca_fu_info()
598 unsigned int boost_step = 0x0a00; in rt722_sdca_dmic_set_gain_get()
599 unsigned int vol_max = 0x1e00; in rt722_sdca_dmic_set_gain_get()
601 unsigned int adc_vol_flag = 0; in rt722_sdca_dmic_set_gain_get()
602 const unsigned int interval_offset = 0xc0; in rt722_sdca_dmic_set_gain_get()
608 for (i = 0; i < p->count; i++) { in rt722_sdca_dmic_set_gain_get()
614 ctl = p->max - (((vol_max - regvalue) & 0xffff) / interval_offset); in rt722_sdca_dmic_set_gain_get()
619 return 0; in rt722_sdca_dmic_set_gain_get()
629 unsigned int boost_step = 0x0a00; in rt722_sdca_dmic_set_gain_put()
630 unsigned int vol_max = 0x1e00; in rt722_sdca_dmic_set_gain_put()
632 unsigned int i, adc_vol_flag = 0, changed = 0; in rt722_sdca_dmic_set_gain_put()
634 const unsigned int interval_offset = 0xc0; in rt722_sdca_dmic_set_gain_put()
641 for (i = 0; i < p->count; i++) { in rt722_sdca_dmic_set_gain_put()
652 gain_val[i] &= 0xffff; in rt722_sdca_dmic_set_gain_put()
660 return 0; in rt722_sdca_dmic_set_gain_put()
662 for (i = 0; i < p->count; i++) { in rt722_sdca_dmic_set_gain_put()
664 if (err < 0) in rt722_sdca_dmic_set_gain_put()
692 .private_value = RT722_SDCA_PR_VALUE(reg_base, xcount, xmax, 0) }
694 static const DECLARE_TLV_DB_SCALE(out_vol_tlv, -6525, 75, 0);
695 static const DECLARE_TLV_DB_SCALE(mic_vol_tlv, -1725, 75, 0);
696 static const DECLARE_TLV_DB_SCALE(boost_vol_tlv, 0, 1000, 0);
704 RT722_SDCA_CTL_FU_VOLUME, CH_R), 0, 0x57, 0,
707 SOC_DOUBLE_EXT("FU0F Capture Switch", SND_SOC_NOPM, 0, 1, 1, 0,
713 RT722_SDCA_CTL_FU_VOLUME, CH_R), 0, 0x3f, 0,
719 RT722_SDCA_CTL_FU_CH_GAIN, CH_R), 8, 3, 0,
726 RT722_SDCA_CTL_FU_VOLUME, CH_R), 0, 0x57, 0,
736 4, 0x3f, mic_vol_tlv),
765 0, adc07_10_mux_text);
782 unsigned char unmute = 0x0, mute = 0x1; in rt722_sdca_fu42_event()
802 return 0; in rt722_sdca_fu42_event()
811 unsigned char unmute = 0x0, mute = 0x1; in rt722_sdca_fu21_event()
831 return 0; in rt722_sdca_fu21_event()
851 return 0; in rt722_sdca_fu113_event()
871 return 0; in rt722_sdca_fu36_event()
880 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde47_event()
886 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde47_event()
891 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde47_event()
894 return 0; in rt722_sdca_pde47_event()
903 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde23_event()
909 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde23_event()
914 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde23_event()
917 return 0; in rt722_sdca_pde23_event()
926 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde11_event()
932 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde11_event()
937 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde11_event()
940 return 0; in rt722_sdca_pde11_event()
949 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde12_event()
955 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde12_event()
960 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde12_event()
963 return 0; in rt722_sdca_pde12_event()
975 SND_SOC_DAPM_SUPPLY("PDE 23", SND_SOC_NOPM, 0, 0,
978 SND_SOC_DAPM_SUPPLY("PDE 47", SND_SOC_NOPM, 0, 0,
981 SND_SOC_DAPM_SUPPLY("PDE 11", SND_SOC_NOPM, 0, 0,
984 SND_SOC_DAPM_SUPPLY("PDE 12", SND_SOC_NOPM, 0, 0,
988 SND_SOC_DAPM_DAC_E("FU 21", NULL, SND_SOC_NOPM, 0, 0,
991 SND_SOC_DAPM_DAC_E("FU 42", NULL, SND_SOC_NOPM, 0, 0,
994 SND_SOC_DAPM_ADC_E("FU 36", NULL, SND_SOC_NOPM, 0, 0,
997 SND_SOC_DAPM_ADC_E("FU 113", NULL, SND_SOC_NOPM, 0, 0,
1000 SND_SOC_DAPM_MUX("ADC 22 Mux", SND_SOC_NOPM, 0, 0,
1002 SND_SOC_DAPM_MUX("ADC 24 Mux", SND_SOC_NOPM, 0, 0,
1004 SND_SOC_DAPM_MUX("ADC 25 Mux", SND_SOC_NOPM, 0, 0,
1007 SND_SOC_DAPM_AIF_IN("DP1RX", "DP1 Headphone Playback", 0, SND_SOC_NOPM, 0, 0),
1008 SND_SOC_DAPM_AIF_OUT("DP2TX", "DP2 Headset Capture", 0, SND_SOC_NOPM, 0, 0),
1009 SND_SOC_DAPM_AIF_IN("DP3RX", "DP3 Speaker Playback", 0, SND_SOC_NOPM, 0, 0),
1010 SND_SOC_DAPM_AIF_OUT("DP6TX", "DP6 DMic Capture", 0, SND_SOC_NOPM, 0, 0),
1042 return 0; in rt722_sdca_parse_dt()
1054 if (ret < 0 && ret != -EACCES) in rt722_sdca_probe()
1057 return 0; in rt722_sdca_probe()
1077 return 0; in rt722_sdca_set_sdw_stream()
1137 port_config.ch_mask = GENMASK(num_channels - 1, 0); in rt722_sdca_pcm_hw_params()
1177 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1180 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1186 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1191 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1193 return 0; in rt722_sdca_pcm_hw_params()
1208 return 0; in rt722_sdca_pcm_hw_free()
1296 rt722->fu1e_mixer_mute[0] = rt722->fu1e_mixer_mute[1] = in rt722_sdca_init()
1307 RT722_ADC0A_08_PDE_FLOAT_CTL, 0x2a29); in rt722_sdca_dmic_preset()
1310 RT722_ADC10_PDE_FLOAT_CTL, 0x2a00); in rt722_sdca_dmic_preset()
1313 RT722_DMIC1_2_PDE_FLOAT_CTL, 0x2a2a); in rt722_sdca_dmic_preset()
1316 RT722_DMIC_ENT_FLOAT_CTL, 0x2626); in rt722_sdca_dmic_preset()
1319 RT722_ADC_ENT_FLOAT_CTL, 0x1e00); in rt722_sdca_dmic_preset()
1322 RT722_DMIC_GAIN_ENT_FLOAT_CTL0, 0x1515); in rt722_sdca_dmic_preset()
1325 RT722_ADC_VOL_CH_FLOAT_CTL, 0x0304); in rt722_sdca_dmic_preset()
1328 RT722_DMIC_GAIN_ENT_FLOAT_CTL2, 0x0304); in rt722_sdca_dmic_preset()
1331 RT722_HDA_LEGACY_CONFIG_CTL0, 0x0000); in rt722_sdca_dmic_preset()
1335 RT722_SDCA_CTL_VENDOR_DEF, 0), 0x01); in rt722_sdca_dmic_preset()
1337 regmap_write(rt722->regmap, 0x2f5c, 0x25); in rt722_sdca_dmic_preset()
1344 0xc215); in rt722_sdca_amp_preset()
1347 0x702c); in rt722_sdca_amp_preset()
1350 0xf02d); in rt722_sdca_amp_preset()
1353 0x2323); in rt722_sdca_amp_preset()
1356 0x0002); in rt722_sdca_amp_preset()
1360 RT722_SDCA_CTL_VENDOR_DEF, CH_08), 0x04); in rt722_sdca_amp_preset()
1366 unsigned int calib_status = 0; in rt722_sdca_jack_preset()
1370 0xa081); in rt722_sdca_jack_preset()
1373 0xa009); in rt722_sdca_jack_preset()
1376 0xcf00); in rt722_sdca_jack_preset()
1379 0x000f); in rt722_sdca_jack_preset()
1382 0x1100); in rt722_sdca_jack_preset()
1385 0x0c12); in rt722_sdca_jack_preset()
1388 0x7002); in rt722_sdca_jack_preset()
1391 0xc215); in rt722_sdca_jack_preset()
1394 0x4100); in rt722_sdca_jack_preset()
1397 0x008d); in rt722_sdca_jack_preset()
1399 for (loop_check = 0; loop_check < chk_cnt; loop_check++) { in rt722_sdca_jack_preset()
1403 if (ret < 0) in rt722_sdca_jack_preset()
1405 if ((calib_status & 0x0040) == 0x0) in rt722_sdca_jack_preset()
1414 0x2a12); in rt722_sdca_jack_preset()
1417 0x3429); in rt722_sdca_jack_preset()
1420 0x4112); in rt722_sdca_jack_preset()
1423 0x4040); in rt722_sdca_jack_preset()
1425 0x4141); in rt722_sdca_jack_preset()
1427 0x0101); in rt722_sdca_jack_preset()
1429 regmap_write(rt722->regmap, 0x2f58, 0x07); in rt722_sdca_jack_preset()
1430 regmap_write(rt722->regmap, 0x2f03, 0x06); in rt722_sdca_jack_preset()
1433 RT722_COMBO_JACK_AUTO_CTL1, 0x0200, 0x0200); in rt722_sdca_jack_preset()
1435 RT722_VREFO_GAT, 0x4000, 0x4000); in rt722_sdca_jack_preset()
1438 0x0010); in rt722_sdca_jack_preset()
1448 return 0; in rt722_sdca_io_init()
1490 return 0; in rt722_sdca_io_init()