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()
311 rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_GE_RELATED_CTL1, 0x0000); in rt722_sdca_jack_init()
314 RT722_GE_RELATED_CTL2, 0x4000, 0x4000); in rt722_sdca_jack_init()
328 if (ret < 0) { in rt722_sdca_set_jack_detect()
335 return 0; in rt722_sdca_set_jack_detect()
343 return 0; in rt722_sdca_set_jack_detect()
355 unsigned int adc_vol_flag = 0, changed = 0; in rt722_sdca_set_gain_put()
357 const unsigned int interval_offset = 0xc0; in rt722_sdca_set_gain_put()
358 const unsigned int tendB = 0xa00; in rt722_sdca_set_gain_put()
368 gain_l_val = ucontrol->value.integer.value[0]; in rt722_sdca_set_gain_put()
377 gain_l_val = 0x1e00 - ((mc->max - gain_l_val) * interval_offset); in rt722_sdca_set_gain_put()
379 gain_l_val = 0 - ((mc->max - gain_l_val) * interval_offset); in rt722_sdca_set_gain_put()
380 gain_l_val &= 0xffff; in rt722_sdca_set_gain_put()
393 gain_r_val = 0x1e00 - ((mc->max - gain_r_val) * interval_offset); in rt722_sdca_set_gain_put()
395 gain_r_val = 0 - ((mc->max - gain_r_val) * interval_offset); in rt722_sdca_set_gain_put()
396 gain_r_val &= 0xffff; in rt722_sdca_set_gain_put()
402 return 0; in rt722_sdca_set_gain_put()
425 unsigned int read_l, read_r, ctl_l = 0, ctl_r = 0; in rt722_sdca_set_gain_get()
426 unsigned int adc_vol_flag = 0; in rt722_sdca_set_gain_get()
427 const unsigned int interval_offset = 0xc0; in rt722_sdca_set_gain_get()
428 const unsigned int tendB = 0xa00; in rt722_sdca_set_gain_get()
441 ctl_l = mc->max - (((0x1e00 - read_l) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
443 ctl_l = mc->max - (((0 - read_l) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
451 ctl_r = mc->max - (((0x1e00 - read_r) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
453 ctl_r = mc->max - (((0 - read_r) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
459 ucontrol->value.integer.value[0] = ctl_l; in rt722_sdca_set_gain_get()
462 return 0; in rt722_sdca_set_gain_get()
470 for (i = 0; i < ARRAY_SIZE(rt722->fu1e_mixer_mute); i++) { in rt722_sdca_set_fu1e_capture_ctl()
475 if (err < 0) in rt722_sdca_set_fu1e_capture_ctl()
479 return 0; in rt722_sdca_set_fu1e_capture_ctl()
491 for (i = 0; i < p->count; i++) in rt722_sdca_fu1e_capture_get()
494 return 0; in rt722_sdca_fu1e_capture_get()
504 int err, changed = 0, i; in rt722_sdca_fu1e_capture_put()
506 for (i = 0; i < p->count; i++) { in rt722_sdca_fu1e_capture_put()
513 if (err < 0) in rt722_sdca_fu1e_capture_put()
524 ch_l = (rt722->fu0f_dapm_mute || rt722->fu0f_mixer_l_mute) ? 0x01 : 0x00; in rt722_sdca_set_fu0f_capture_ctl()
525 ch_r = (rt722->fu0f_dapm_mute || rt722->fu0f_mixer_r_mute) ? 0x01 : 0x00; in rt722_sdca_set_fu0f_capture_ctl()
530 if (err < 0) in rt722_sdca_set_fu0f_capture_ctl()
536 if (err < 0) in rt722_sdca_set_fu0f_capture_ctl()
539 return 0; in rt722_sdca_set_fu0f_capture_ctl()
548 ucontrol->value.integer.value[0] = !rt722->fu0f_mixer_l_mute; in rt722_sdca_fu0f_capture_get()
550 return 0; in rt722_sdca_fu0f_capture_get()
558 int err, changed = 0; in rt722_sdca_fu0f_capture_put()
560 if (rt722->fu0f_mixer_l_mute != !ucontrol->value.integer.value[0] || in rt722_sdca_fu0f_capture_put()
564 rt722->fu0f_mixer_l_mute = !ucontrol->value.integer.value[0]; in rt722_sdca_fu0f_capture_put()
567 if (err < 0) in rt722_sdca_fu0f_capture_put()
584 uinfo->value.integer.min = 0; in rt722_sdca_fu_info()
586 return 0; in rt722_sdca_fu_info()
596 unsigned int boost_step = 0x0a00; in rt722_sdca_dmic_set_gain_get()
597 unsigned int vol_max = 0x1e00; in rt722_sdca_dmic_set_gain_get()
599 unsigned int adc_vol_flag = 0; in rt722_sdca_dmic_set_gain_get()
600 const unsigned int interval_offset = 0xc0; in rt722_sdca_dmic_set_gain_get()
606 for (i = 0; i < p->count; i++) { in rt722_sdca_dmic_set_gain_get()
612 ctl = p->max - (((vol_max - regvalue) & 0xffff) / interval_offset); in rt722_sdca_dmic_set_gain_get()
617 return 0; in rt722_sdca_dmic_set_gain_get()
627 unsigned int boost_step = 0x0a00; in rt722_sdca_dmic_set_gain_put()
628 unsigned int vol_max = 0x1e00; in rt722_sdca_dmic_set_gain_put()
630 unsigned int i, adc_vol_flag = 0, changed = 0; in rt722_sdca_dmic_set_gain_put()
632 const unsigned int interval_offset = 0xc0; in rt722_sdca_dmic_set_gain_put()
639 for (i = 0; i < p->count; i++) { in rt722_sdca_dmic_set_gain_put()
650 gain_val[i] &= 0xffff; in rt722_sdca_dmic_set_gain_put()
658 return 0; in rt722_sdca_dmic_set_gain_put()
660 for (i = 0; i < p->count; i++) { in rt722_sdca_dmic_set_gain_put()
662 if (err < 0) in rt722_sdca_dmic_set_gain_put()
690 .private_value = RT722_SDCA_PR_VALUE(reg_base, xcount, xmax, 0) }
692 static const DECLARE_TLV_DB_SCALE(out_vol_tlv, -6525, 75, 0);
693 static const DECLARE_TLV_DB_SCALE(mic_vol_tlv, -1725, 75, 0);
694 static const DECLARE_TLV_DB_SCALE(boost_vol_tlv, 0, 1000, 0);
702 RT722_SDCA_CTL_FU_VOLUME, CH_R), 0, 0x57, 0,
705 SOC_DOUBLE_EXT("FU0F Capture Switch", SND_SOC_NOPM, 0, 1, 1, 0,
711 RT722_SDCA_CTL_FU_VOLUME, CH_R), 0, 0x3f, 0,
717 RT722_SDCA_CTL_FU_CH_GAIN, CH_R), 8, 3, 0,
724 RT722_SDCA_CTL_FU_VOLUME, CH_R), 0, 0x57, 0,
734 4, 0x3f, mic_vol_tlv),
748 unsigned int val = 0, mask_sft; in rt722_sdca_adc_mux_get()
755 mask_sft = 0; in rt722_sdca_adc_mux_get()
762 ucontrol->value.enumerated.item[0] = (val >> mask_sft) & 0x7; in rt722_sdca_adc_mux_get()
764 return 0; in rt722_sdca_adc_mux_get()
777 unsigned int val, val2 = 0, change, mask_sft; in rt722_sdca_adc_mux_put()
779 if (item[0] >= e->items) in rt722_sdca_adc_mux_put()
787 mask_sft = 0; in rt722_sdca_adc_mux_put()
791 val = snd_soc_enum_item_to_val(e, item[0]) << e->shift_l; in rt722_sdca_adc_mux_put()
795 val2 = (0x7 << mask_sft) & val2; in rt722_sdca_adc_mux_put()
798 change = 0; in rt722_sdca_adc_mux_put()
804 RT722_HDA_LEGACY_MUX_CTL0, 0x7 << mask_sft, in rt722_sdca_adc_mux_put()
808 item[0], e, NULL); in rt722_sdca_adc_mux_put()
825 rt722_adc22_enum, SND_SOC_NOPM, 0, adc22_mux_text);
828 rt722_adc24_enum, SND_SOC_NOPM, 0, adc07_10_mux_text);
831 rt722_adc25_enum, SND_SOC_NOPM, 0, adc07_10_mux_text);
851 unsigned char unmute = 0x0, mute = 0x1; in rt722_sdca_fu42_event()
871 return 0; in rt722_sdca_fu42_event()
880 unsigned char unmute = 0x0, mute = 0x1; in rt722_sdca_fu21_event()
900 return 0; in rt722_sdca_fu21_event()
920 return 0; in rt722_sdca_fu113_event()
940 return 0; in rt722_sdca_fu36_event()
949 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde47_event()
955 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde47_event()
960 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde47_event()
963 return 0; in rt722_sdca_pde47_event()
972 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde23_event()
978 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde23_event()
983 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde23_event()
986 return 0; in rt722_sdca_pde23_event()
995 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde11_event()
1001 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde11_event()
1006 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde11_event()
1009 return 0; in rt722_sdca_pde11_event()
1018 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde12_event()
1024 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde12_event()
1029 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde12_event()
1032 return 0; in rt722_sdca_pde12_event()
1044 SND_SOC_DAPM_SUPPLY("PDE 23", SND_SOC_NOPM, 0, 0,
1047 SND_SOC_DAPM_SUPPLY("PDE 47", SND_SOC_NOPM, 0, 0,
1050 SND_SOC_DAPM_SUPPLY("PDE 11", SND_SOC_NOPM, 0, 0,
1053 SND_SOC_DAPM_SUPPLY("PDE 12", SND_SOC_NOPM, 0, 0,
1057 SND_SOC_DAPM_DAC_E("FU 21", NULL, SND_SOC_NOPM, 0, 0,
1060 SND_SOC_DAPM_DAC_E("FU 42", NULL, SND_SOC_NOPM, 0, 0,
1063 SND_SOC_DAPM_ADC_E("FU 36", NULL, SND_SOC_NOPM, 0, 0,
1066 SND_SOC_DAPM_ADC_E("FU 113", NULL, SND_SOC_NOPM, 0, 0,
1069 SND_SOC_DAPM_MUX("ADC 22 Mux", SND_SOC_NOPM, 0, 0,
1071 SND_SOC_DAPM_MUX("ADC 24 Mux", SND_SOC_NOPM, 0, 0,
1073 SND_SOC_DAPM_MUX("ADC 25 Mux", SND_SOC_NOPM, 0, 0,
1076 SND_SOC_DAPM_AIF_IN("DP1RX", "DP1 Headphone Playback", 0, SND_SOC_NOPM, 0, 0),
1077 SND_SOC_DAPM_AIF_OUT("DP2TX", "DP2 Headset Capture", 0, SND_SOC_NOPM, 0, 0),
1078 SND_SOC_DAPM_AIF_IN("DP3RX", "DP3 Speaker Playback", 0, SND_SOC_NOPM, 0, 0),
1079 SND_SOC_DAPM_AIF_OUT("DP6TX", "DP6 DMic Capture", 0, SND_SOC_NOPM, 0, 0),
1111 return 0; in rt722_sdca_parse_dt()
1123 if (ret < 0 && ret != -EACCES) in rt722_sdca_probe()
1126 return 0; in rt722_sdca_probe()
1146 return 0; in rt722_sdca_set_sdw_stream()
1206 port_config.ch_mask = GENMASK(num_channels - 1, 0); in rt722_sdca_pcm_hw_params()
1246 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1249 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1255 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1260 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1262 return 0; in rt722_sdca_pcm_hw_params()
1277 return 0; in rt722_sdca_pcm_hw_free()
1367 rt722->fu1e_mixer_mute[0] = rt722->fu1e_mixer_mute[1] = in rt722_sdca_init()
1378 RT722_ADC0A_08_PDE_FLOAT_CTL, 0x2a29); in rt722_sdca_dmic_preset()
1381 RT722_ADC10_PDE_FLOAT_CTL, 0x2a00); in rt722_sdca_dmic_preset()
1384 RT722_DMIC1_2_PDE_FLOAT_CTL, 0x2a2a); in rt722_sdca_dmic_preset()
1387 RT722_DMIC_ENT_FLOAT_CTL, 0x2626); in rt722_sdca_dmic_preset()
1390 RT722_ADC_ENT_FLOAT_CTL, 0x1e00); in rt722_sdca_dmic_preset()
1393 RT722_DMIC_GAIN_ENT_FLOAT_CTL0, 0x1515); in rt722_sdca_dmic_preset()
1396 RT722_ADC_VOL_CH_FLOAT_CTL, 0x0304); in rt722_sdca_dmic_preset()
1399 RT722_DMIC_GAIN_ENT_FLOAT_CTL2, 0x0304); in rt722_sdca_dmic_preset()
1402 RT722_HDA_LEGACY_CONFIG_CTL0, 0x0000); in rt722_sdca_dmic_preset()
1406 RT722_SDCA_CTL_VENDOR_DEF, 0), 0x01); in rt722_sdca_dmic_preset()
1408 regmap_write(rt722->regmap, 0x2f5c, 0x25); in rt722_sdca_dmic_preset()
1415 0xc215); in rt722_sdca_amp_preset()
1418 0x702c); in rt722_sdca_amp_preset()
1421 0xf02d); in rt722_sdca_amp_preset()
1424 0x2323); in rt722_sdca_amp_preset()
1427 0x0002); in rt722_sdca_amp_preset()
1431 RT722_SDCA_CTL_VENDOR_DEF, CH_08), 0x04); in rt722_sdca_amp_preset()
1437 unsigned int calib_status = 0; in rt722_sdca_jack_preset()
1441 0xa081); in rt722_sdca_jack_preset()
1444 0xa009); in rt722_sdca_jack_preset()
1447 0xcf00); in rt722_sdca_jack_preset()
1450 0x000f); in rt722_sdca_jack_preset()
1453 0x1100); in rt722_sdca_jack_preset()
1456 0x0c12); in rt722_sdca_jack_preset()
1459 0x7002); in rt722_sdca_jack_preset()
1462 0xc215); in rt722_sdca_jack_preset()
1465 0x4100); in rt722_sdca_jack_preset()
1468 0x008d); in rt722_sdca_jack_preset()
1470 for (loop_check = 0; loop_check < chk_cnt; loop_check++) { in rt722_sdca_jack_preset()
1474 if (ret < 0) in rt722_sdca_jack_preset()
1476 if ((calib_status & 0x0040) == 0x0) in rt722_sdca_jack_preset()
1485 0x2a12); in rt722_sdca_jack_preset()
1488 0x3429); in rt722_sdca_jack_preset()
1491 0x4112); in rt722_sdca_jack_preset()
1494 0x4040); in rt722_sdca_jack_preset()
1496 0x4141); in rt722_sdca_jack_preset()
1498 0x0101); in rt722_sdca_jack_preset()
1500 regmap_write(rt722->regmap, 0x2f58, 0x07); in rt722_sdca_jack_preset()
1501 regmap_write(rt722->regmap, 0x2f03, 0x06); in rt722_sdca_jack_preset()
1504 RT722_COMBO_JACK_AUTO_CTL1, 0x0200, 0x0200); in rt722_sdca_jack_preset()
1506 RT722_VREFO_GAT, 0x4000, 0x4000); in rt722_sdca_jack_preset()
1509 0x0010); in rt722_sdca_jack_preset()
1519 return 0; in rt722_sdca_io_init()
1565 return 0; in rt722_sdca_io_init()