Lines Matching +full:0 +full:x1e00
36 if (ret < 0) in rt722_sdca_index_write()
52 if (ret < 0) in rt722_sdca_index_read()
67 if (ret < 0) in rt722_sdca_index_update_bits()
76 if ((*buffer & 0xf0) == 0x10 || (*buffer & 0x0f) == 0x01 || (*(buffer + 1) == 0x01) || in rt722_sdca_btn_type()
77 (*(buffer + 1) == 0x10)) in rt722_sdca_btn_type()
79 else if ((*buffer & 0xf0) == 0x20 || (*buffer & 0x0f) == 0x02 || (*(buffer + 1) == 0x02) || in rt722_sdca_btn_type()
80 (*(buffer + 1) == 0x20)) in rt722_sdca_btn_type()
82 else if ((*buffer & 0xf0) == 0x40 || (*buffer & 0x0f) == 0x04 || (*(buffer + 1) == 0x04) || in rt722_sdca_btn_type()
83 (*(buffer + 1) == 0x40)) in rt722_sdca_btn_type()
85 else if ((*buffer & 0xf0) == 0x80 || (*buffer & 0x0f) == 0x08 || (*(buffer + 1) == 0x08) || in rt722_sdca_btn_type()
86 (*(buffer + 1) == 0x80)) in rt722_sdca_btn_type()
89 return 0; in rt722_sdca_btn_type()
94 unsigned int btn_type = 0, offset, idx, val, owner; in rt722_sdca_button_detect()
101 RT722_SDCA_CTL_HIDTX_CURRENT_OWNER, 0), &owner); in rt722_sdca_button_detect()
102 if (ret < 0) in rt722_sdca_button_detect()
103 return 0; in rt722_sdca_button_detect()
107 return 0; in rt722_sdca_button_detect()
112 RT722_SDCA_CTL_HIDTX_MESSAGE_OFFSET, 0), &offset); in rt722_sdca_button_detect()
113 if (ret < 0) in rt722_sdca_button_detect()
116 for (idx = 0; idx < sizeof(buf); idx++) { in rt722_sdca_button_detect()
119 if (ret < 0) in rt722_sdca_button_detect()
121 buf[idx] = val & 0xff; in rt722_sdca_button_detect()
124 if (buf[0] == 0x11) in rt722_sdca_button_detect()
129 if (owner == 0) in rt722_sdca_button_detect()
133 RT722_SDCA_CTL_HIDTX_CURRENT_OWNER, 0), 0x01); in rt722_sdca_button_detect()
146 RT722_SDCA_CTL_DETECTED_MODE, 0), &det_mode); in rt722_sdca_headset_detect()
147 if (ret < 0) in rt722_sdca_headset_detect()
151 case 0x00: in rt722_sdca_headset_detect()
152 rt722->jack_type = 0; in rt722_sdca_headset_detect()
154 case 0x03: in rt722_sdca_headset_detect()
157 case 0x05: in rt722_sdca_headset_detect()
166 RT722_SDCA_CTL_SELECTED_MODE, 0), det_mode); in rt722_sdca_headset_detect()
167 if (ret < 0) in rt722_sdca_headset_detect()
172 "%s, detected_mode=0x%x\n", __func__, det_mode); in rt722_sdca_headset_detect()
174 return 0; in rt722_sdca_headset_detect()
185 int btn_type = 0, ret; in rt722_sdca_jack_detect_handler()
196 if (ret < 0) in rt722_sdca_jack_detect_handler()
204 if (rt722->jack_type == 0) in rt722_sdca_jack_detect_handler()
205 btn_type = 0; in rt722_sdca_jack_detect_handler()
210 "in %s, btn_type=0x%x\n", __func__, btn_type); in rt722_sdca_jack_detect_handler()
212 "in %s, scp_sdca_stat1=0x%x, scp_sdca_stat2=0x%x\n", __func__, in rt722_sdca_jack_detect_handler()
236 int btn_type = 0, ret, idx; in rt722_sdca_btn_check_handler()
242 RT722_SDCA_CTL_DETECTED_MODE, 0), &det_mode); in rt722_sdca_btn_check_handler()
243 if (ret < 0) in rt722_sdca_btn_check_handler()
251 RT722_SDCA_CTL_HIDTX_MESSAGE_OFFSET, 0), &offset); in rt722_sdca_btn_check_handler()
252 if (ret < 0) in rt722_sdca_btn_check_handler()
255 for (idx = 0; idx < sizeof(buf); idx++) { in rt722_sdca_btn_check_handler()
258 if (ret < 0) in rt722_sdca_btn_check_handler()
260 buf[idx] = val & 0xff; in rt722_sdca_btn_check_handler()
263 if (buf[0] == 0x11) in rt722_sdca_btn_check_handler()
266 rt722->jack_type = 0; in rt722_sdca_btn_check_handler()
268 dev_dbg(&rt722->slave->dev, "%s, btn_type=0x%x\n", __func__, btn_type); in rt722_sdca_btn_check_handler()
295 /* set SCP_SDCA_IntMask1[0]=1 */ in rt722_sdca_jack_init()
298 /* set SCP_SDCA_IntMask2[0]=1 */ in rt722_sdca_jack_init()
303 RT722_HDA_LEGACY_UNSOL_CTL, 0x016E); in rt722_sdca_jack_init()
307 RT722_SDCA_CTL_SELECTED_MODE, 0), 0); in rt722_sdca_jack_init()
310 RT722_SDCA_CTL_SELECTED_MODE, 0), 0); in rt722_sdca_jack_init()
313 RT722_GE_RELATED_CTL2, 0x4000, 0x4000); in rt722_sdca_jack_init()
327 if (ret < 0) { in rt722_sdca_set_jack_detect()
334 return 0; in rt722_sdca_set_jack_detect()
342 return 0; in rt722_sdca_set_jack_detect()
354 unsigned int adc_vol_flag = 0, changed = 0; in rt722_sdca_set_gain_put()
356 const unsigned int interval_offset = 0xc0; in rt722_sdca_set_gain_put()
357 const unsigned int tendB = 0xa00; in rt722_sdca_set_gain_put()
367 gain_l_val = ucontrol->value.integer.value[0]; in rt722_sdca_set_gain_put()
376 gain_l_val = 0x1e00 - ((mc->max - gain_l_val) * interval_offset); in rt722_sdca_set_gain_put()
378 gain_l_val = 0 - ((mc->max - gain_l_val) * interval_offset); in rt722_sdca_set_gain_put()
379 gain_l_val &= 0xffff; in rt722_sdca_set_gain_put()
392 gain_r_val = 0x1e00 - ((mc->max - gain_r_val) * interval_offset); in rt722_sdca_set_gain_put()
394 gain_r_val = 0 - ((mc->max - gain_r_val) * interval_offset); in rt722_sdca_set_gain_put()
395 gain_r_val &= 0xffff; in rt722_sdca_set_gain_put()
401 return 0; in rt722_sdca_set_gain_put()
424 unsigned int read_l, read_r, ctl_l = 0, ctl_r = 0; in rt722_sdca_set_gain_get()
425 unsigned int adc_vol_flag = 0; in rt722_sdca_set_gain_get()
426 const unsigned int interval_offset = 0xc0; in rt722_sdca_set_gain_get()
427 const unsigned int tendB = 0xa00; in rt722_sdca_set_gain_get()
440 ctl_l = mc->max - (((0x1e00 - read_l) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
442 ctl_l = mc->max - (((0 - read_l) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
450 ctl_r = mc->max - (((0x1e00 - read_r) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
452 ctl_r = mc->max - (((0 - read_r) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
458 ucontrol->value.integer.value[0] = ctl_l; in rt722_sdca_set_gain_get()
461 return 0; in rt722_sdca_set_gain_get()
469 for (i = 0; i < ARRAY_SIZE(rt722->fu1e_mixer_mute); i++) { in rt722_sdca_set_fu1e_capture_ctl()
474 if (err < 0) in rt722_sdca_set_fu1e_capture_ctl()
478 return 0; in rt722_sdca_set_fu1e_capture_ctl()
490 for (i = 0; i < p->count; i++) in rt722_sdca_fu1e_capture_get()
493 return 0; in rt722_sdca_fu1e_capture_get()
503 int err, changed = 0, i; in rt722_sdca_fu1e_capture_put()
505 for (i = 0; i < p->count; i++) { in rt722_sdca_fu1e_capture_put()
512 if (err < 0) in rt722_sdca_fu1e_capture_put()
523 ch_l = (rt722->fu0f_dapm_mute || rt722->fu0f_mixer_l_mute) ? 0x01 : 0x00; in rt722_sdca_set_fu0f_capture_ctl()
524 ch_r = (rt722->fu0f_dapm_mute || rt722->fu0f_mixer_r_mute) ? 0x01 : 0x00; in rt722_sdca_set_fu0f_capture_ctl()
529 if (err < 0) in rt722_sdca_set_fu0f_capture_ctl()
535 if (err < 0) in rt722_sdca_set_fu0f_capture_ctl()
538 return 0; in rt722_sdca_set_fu0f_capture_ctl()
547 ucontrol->value.integer.value[0] = !rt722->fu0f_mixer_l_mute; in rt722_sdca_fu0f_capture_get()
549 return 0; in rt722_sdca_fu0f_capture_get()
557 int err, changed = 0; in rt722_sdca_fu0f_capture_put()
559 if (rt722->fu0f_mixer_l_mute != !ucontrol->value.integer.value[0] || in rt722_sdca_fu0f_capture_put()
563 rt722->fu0f_mixer_l_mute = !ucontrol->value.integer.value[0]; in rt722_sdca_fu0f_capture_put()
566 if (err < 0) in rt722_sdca_fu0f_capture_put()
583 uinfo->value.integer.min = 0; in rt722_sdca_fu_info()
585 return 0; in rt722_sdca_fu_info()
595 unsigned int boost_step = 0x0a00; in rt722_sdca_dmic_set_gain_get()
596 unsigned int vol_max = 0x1e00; in rt722_sdca_dmic_set_gain_get()
598 unsigned int adc_vol_flag = 0; in rt722_sdca_dmic_set_gain_get()
599 const unsigned int interval_offset = 0xc0; in rt722_sdca_dmic_set_gain_get()
605 for (i = 0; i < p->count; i++) { in rt722_sdca_dmic_set_gain_get()
611 ctl = p->max - (((vol_max - regvalue) & 0xffff) / interval_offset); in rt722_sdca_dmic_set_gain_get()
616 return 0; in rt722_sdca_dmic_set_gain_get()
626 unsigned int boost_step = 0x0a00; in rt722_sdca_dmic_set_gain_put()
627 unsigned int vol_max = 0x1e00; in rt722_sdca_dmic_set_gain_put()
629 unsigned int i, adc_vol_flag = 0, changed = 0; in rt722_sdca_dmic_set_gain_put()
631 const unsigned int interval_offset = 0xc0; in rt722_sdca_dmic_set_gain_put()
638 for (i = 0; i < p->count; i++) { in rt722_sdca_dmic_set_gain_put()
649 gain_val[i] &= 0xffff; in rt722_sdca_dmic_set_gain_put()
657 return 0; in rt722_sdca_dmic_set_gain_put()
659 for (i = 0; i < p->count; i++) { in rt722_sdca_dmic_set_gain_put()
661 if (err < 0) in rt722_sdca_dmic_set_gain_put()
688 .private_value = RT722_SDCA_PR_VALUE(reg_base, xcount, xmax, 0) }
690 static const DECLARE_TLV_DB_SCALE(out_vol_tlv, -6525, 75, 0);
691 static const DECLARE_TLV_DB_SCALE(mic_vol_tlv, -1725, 75, 0);
692 static const DECLARE_TLV_DB_SCALE(boost_vol_tlv, 0, 1000, 0);
700 RT722_SDCA_CTL_FU_VOLUME, CH_R), 0, 0x57, 0,
703 SOC_DOUBLE_EXT("FU0F Capture Switch", SND_SOC_NOPM, 0, 1, 1, 0,
709 RT722_SDCA_CTL_FU_VOLUME, CH_R), 0, 0x3f, 0,
715 RT722_SDCA_CTL_FU_CH_GAIN, CH_R), 8, 3, 0,
722 RT722_SDCA_CTL_FU_VOLUME, CH_R), 0, 0x57, 0,
732 4, 0x3f, mic_vol_tlv),
746 unsigned int val = 0, mask_sft; in rt722_sdca_adc_mux_get()
753 mask_sft = 0; in rt722_sdca_adc_mux_get()
760 ucontrol->value.enumerated.item[0] = (val >> mask_sft) & 0x7; in rt722_sdca_adc_mux_get()
762 return 0; in rt722_sdca_adc_mux_get()
775 unsigned int val, val2 = 0, change, mask_sft; in rt722_sdca_adc_mux_put()
777 if (item[0] >= e->items) in rt722_sdca_adc_mux_put()
785 mask_sft = 0; in rt722_sdca_adc_mux_put()
789 val = snd_soc_enum_item_to_val(e, item[0]) << e->shift_l; in rt722_sdca_adc_mux_put()
793 val2 = (0x7 << mask_sft) & val2; in rt722_sdca_adc_mux_put()
796 change = 0; in rt722_sdca_adc_mux_put()
802 RT722_HDA_LEGACY_MUX_CTL0, 0x7 << mask_sft, in rt722_sdca_adc_mux_put()
806 item[0], e, NULL); in rt722_sdca_adc_mux_put()
823 rt722_adc22_enum, SND_SOC_NOPM, 0, adc22_mux_text);
826 rt722_adc24_enum, SND_SOC_NOPM, 0, adc07_10_mux_text);
829 rt722_adc25_enum, SND_SOC_NOPM, 0, adc07_10_mux_text);
849 unsigned char unmute = 0x0, mute = 0x1; in rt722_sdca_fu42_event()
869 return 0; in rt722_sdca_fu42_event()
878 unsigned char unmute = 0x0, mute = 0x1; in rt722_sdca_fu21_event()
898 return 0; in rt722_sdca_fu21_event()
918 return 0; in rt722_sdca_fu113_event()
938 return 0; in rt722_sdca_fu36_event()
947 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde47_event()
953 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde47_event()
958 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde47_event()
961 return 0; in rt722_sdca_pde47_event()
970 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde23_event()
976 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde23_event()
981 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde23_event()
984 return 0; in rt722_sdca_pde23_event()
993 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde11_event()
999 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde11_event()
1004 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde11_event()
1007 return 0; in rt722_sdca_pde11_event()
1016 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde12_event()
1022 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde12_event()
1027 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde12_event()
1030 return 0; in rt722_sdca_pde12_event()
1042 SND_SOC_DAPM_SUPPLY("PDE 23", SND_SOC_NOPM, 0, 0,
1045 SND_SOC_DAPM_SUPPLY("PDE 47", SND_SOC_NOPM, 0, 0,
1048 SND_SOC_DAPM_SUPPLY("PDE 11", SND_SOC_NOPM, 0, 0,
1051 SND_SOC_DAPM_SUPPLY("PDE 12", SND_SOC_NOPM, 0, 0,
1055 SND_SOC_DAPM_DAC_E("FU 21", NULL, SND_SOC_NOPM, 0, 0,
1058 SND_SOC_DAPM_DAC_E("FU 42", NULL, SND_SOC_NOPM, 0, 0,
1061 SND_SOC_DAPM_ADC_E("FU 36", NULL, SND_SOC_NOPM, 0, 0,
1064 SND_SOC_DAPM_ADC_E("FU 113", NULL, SND_SOC_NOPM, 0, 0,
1067 SND_SOC_DAPM_MUX("ADC 22 Mux", SND_SOC_NOPM, 0, 0,
1069 SND_SOC_DAPM_MUX("ADC 24 Mux", SND_SOC_NOPM, 0, 0,
1071 SND_SOC_DAPM_MUX("ADC 25 Mux", SND_SOC_NOPM, 0, 0,
1074 SND_SOC_DAPM_AIF_IN("DP1RX", "DP1 Headphone Playback", 0, SND_SOC_NOPM, 0, 0),
1075 SND_SOC_DAPM_AIF_OUT("DP2TX", "DP2 Headset Capture", 0, SND_SOC_NOPM, 0, 0),
1076 SND_SOC_DAPM_AIF_IN("DP3RX", "DP3 Speaker Playback", 0, SND_SOC_NOPM, 0, 0),
1077 SND_SOC_DAPM_AIF_OUT("DP6TX", "DP6 DMic Capture", 0, SND_SOC_NOPM, 0, 0),
1109 return 0; in rt722_sdca_parse_dt()
1121 if (ret < 0 && ret != -EACCES) in rt722_sdca_probe()
1124 return 0; in rt722_sdca_probe()
1144 return 0; in rt722_sdca_set_sdw_stream()
1204 port_config.ch_mask = GENMASK(num_channels - 1, 0); in rt722_sdca_pcm_hw_params()
1244 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1247 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1253 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1258 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1260 return 0; in rt722_sdca_pcm_hw_params()
1275 return 0; in rt722_sdca_pcm_hw_free()
1365 rt722->fu1e_mixer_mute[0] = rt722->fu1e_mixer_mute[1] = in rt722_sdca_init()
1376 RT722_ADC0A_08_PDE_FLOAT_CTL, 0x2a29); in rt722_sdca_dmic_preset()
1379 RT722_ADC10_PDE_FLOAT_CTL, 0x2a00); in rt722_sdca_dmic_preset()
1382 RT722_DMIC1_2_PDE_FLOAT_CTL, 0x2a2a); in rt722_sdca_dmic_preset()
1385 RT722_DMIC_ENT_FLOAT_CTL, 0x2626); in rt722_sdca_dmic_preset()
1388 RT722_ADC_ENT_FLOAT_CTL, 0x1e00); in rt722_sdca_dmic_preset()
1391 RT722_DMIC_GAIN_ENT_FLOAT_CTL0, 0x1515); in rt722_sdca_dmic_preset()
1394 RT722_ADC_VOL_CH_FLOAT_CTL, 0x0304); in rt722_sdca_dmic_preset()
1397 RT722_DMIC_GAIN_ENT_FLOAT_CTL2, 0x0304); in rt722_sdca_dmic_preset()
1400 RT722_HDA_LEGACY_CONFIG_CTL0, 0x0000); in rt722_sdca_dmic_preset()
1404 RT722_SDCA_CTL_VENDOR_DEF, 0), 0x01); in rt722_sdca_dmic_preset()
1406 regmap_write(rt722->regmap, 0x2f5c, 0x25); in rt722_sdca_dmic_preset()
1413 0xc215); in rt722_sdca_amp_preset()
1416 0x702c); in rt722_sdca_amp_preset()
1419 0xf02d); in rt722_sdca_amp_preset()
1422 0x2323); in rt722_sdca_amp_preset()
1425 0x0002); in rt722_sdca_amp_preset()
1429 RT722_SDCA_CTL_VENDOR_DEF, CH_08), 0x04); in rt722_sdca_amp_preset()
1435 unsigned int calib_status = 0; in rt722_sdca_jack_preset()
1439 0xa081); in rt722_sdca_jack_preset()
1442 0xa009); in rt722_sdca_jack_preset()
1445 0xcf00); in rt722_sdca_jack_preset()
1448 0x000f); in rt722_sdca_jack_preset()
1451 0x1100); in rt722_sdca_jack_preset()
1454 0x0c12); in rt722_sdca_jack_preset()
1457 0x7002); in rt722_sdca_jack_preset()
1460 0xc215); in rt722_sdca_jack_preset()
1463 0x4100); in rt722_sdca_jack_preset()
1466 0x008d); in rt722_sdca_jack_preset()
1468 for (loop_check = 0; loop_check < chk_cnt; loop_check++) { in rt722_sdca_jack_preset()
1472 if (ret < 0) in rt722_sdca_jack_preset()
1474 if ((calib_status & 0x0040) == 0x0) in rt722_sdca_jack_preset()
1483 0x2a12); in rt722_sdca_jack_preset()
1486 0x3429); in rt722_sdca_jack_preset()
1489 0x4112); in rt722_sdca_jack_preset()
1492 0x4040); in rt722_sdca_jack_preset()
1494 0x4141); in rt722_sdca_jack_preset()
1496 0x0101); in rt722_sdca_jack_preset()
1498 regmap_write(rt722->regmap, 0x2f58, 0x07); in rt722_sdca_jack_preset()
1499 regmap_write(rt722->regmap, 0x2f03, 0x06); in rt722_sdca_jack_preset()
1502 RT722_COMBO_JACK_AUTO_CTL1, 0x0200, 0x0200); in rt722_sdca_jack_preset()
1504 RT722_VREFO_GAT, 0x4000, 0x4000); in rt722_sdca_jack_preset()
1507 0x0010); in rt722_sdca_jack_preset()
1517 return 0; in rt722_sdca_io_init()
1563 return 0; in rt722_sdca_io_init()