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()
612 ctl = p->max - (((vol_max - regvalue) & 0xffff) / interval_offset); in rt722_sdca_dmic_set_gain_get()
614 ctl = p->max - (((0 - regvalue) & 0xffff) / interval_offset); in rt722_sdca_dmic_set_gain_get()
620 return 0; in rt722_sdca_dmic_set_gain_get()
630 unsigned int boost_step = 0x0a00; in rt722_sdca_dmic_set_gain_put()
631 unsigned int vol_max = 0x1e00; in rt722_sdca_dmic_set_gain_put()
633 unsigned int i, adc_vol_flag = 0, changed = 0; in rt722_sdca_dmic_set_gain_put()
635 const unsigned int interval_offset = 0xc0; in rt722_sdca_dmic_set_gain_put()
642 for (i = 0; i < p->count; i++) { in rt722_sdca_dmic_set_gain_put()
653 gain_val[i] &= 0xffff; in rt722_sdca_dmic_set_gain_put()
661 return 0; in rt722_sdca_dmic_set_gain_put()
663 for (i = 0; i < p->count; i++) { in rt722_sdca_dmic_set_gain_put()
665 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),
750 unsigned int val = 0, mask_sft; in rt722_sdca_adc_mux_get()
757 mask_sft = 0; in rt722_sdca_adc_mux_get()
764 ucontrol->value.enumerated.item[0] = (val >> mask_sft) & 0x7; in rt722_sdca_adc_mux_get()
766 return 0; in rt722_sdca_adc_mux_get()
779 unsigned int val, val2 = 0, change, mask_sft; in rt722_sdca_adc_mux_put()
781 if (item[0] >= e->items) in rt722_sdca_adc_mux_put()
789 mask_sft = 0; in rt722_sdca_adc_mux_put()
793 val = snd_soc_enum_item_to_val(e, item[0]) << e->shift_l; in rt722_sdca_adc_mux_put()
797 val2 = (0x7 << mask_sft) & val2; in rt722_sdca_adc_mux_put()
800 change = 0; in rt722_sdca_adc_mux_put()
806 RT722_HDA_LEGACY_MUX_CTL0, 0x7 << mask_sft, in rt722_sdca_adc_mux_put()
810 item[0], e, NULL); in rt722_sdca_adc_mux_put()
827 rt722_adc22_enum, SND_SOC_NOPM, 0, adc22_mux_text);
830 rt722_adc24_enum, SND_SOC_NOPM, 0, adc07_10_mux_text);
833 rt722_adc25_enum, SND_SOC_NOPM, 0, adc07_10_mux_text);
853 unsigned char unmute = 0x0, mute = 0x1; in rt722_sdca_fu42_event()
873 return 0; in rt722_sdca_fu42_event()
882 unsigned char unmute = 0x0, mute = 0x1; in rt722_sdca_fu21_event()
902 return 0; in rt722_sdca_fu21_event()
922 return 0; in rt722_sdca_fu113_event()
942 return 0; in rt722_sdca_fu36_event()
951 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde47_event()
957 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde47_event()
962 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde47_event()
965 return 0; in rt722_sdca_pde47_event()
974 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde23_event()
980 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde23_event()
985 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde23_event()
988 return 0; in rt722_sdca_pde23_event()
997 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde11_event()
1003 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde11_event()
1008 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde11_event()
1011 return 0; in rt722_sdca_pde11_event()
1020 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde12_event()
1026 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde12_event()
1031 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde12_event()
1034 return 0; in rt722_sdca_pde12_event()
1046 SND_SOC_DAPM_SUPPLY("PDE 23", SND_SOC_NOPM, 0, 0,
1049 SND_SOC_DAPM_SUPPLY("PDE 47", SND_SOC_NOPM, 0, 0,
1052 SND_SOC_DAPM_SUPPLY("PDE 11", SND_SOC_NOPM, 0, 0,
1055 SND_SOC_DAPM_SUPPLY("PDE 12", SND_SOC_NOPM, 0, 0,
1059 SND_SOC_DAPM_DAC_E("FU 21", NULL, SND_SOC_NOPM, 0, 0,
1062 SND_SOC_DAPM_DAC_E("FU 42", NULL, SND_SOC_NOPM, 0, 0,
1065 SND_SOC_DAPM_ADC_E("FU 36", NULL, SND_SOC_NOPM, 0, 0,
1068 SND_SOC_DAPM_ADC_E("FU 113", NULL, SND_SOC_NOPM, 0, 0,
1071 SND_SOC_DAPM_MUX("ADC 22 Mux", SND_SOC_NOPM, 0, 0,
1073 SND_SOC_DAPM_MUX("ADC 24 Mux", SND_SOC_NOPM, 0, 0,
1075 SND_SOC_DAPM_MUX("ADC 25 Mux", SND_SOC_NOPM, 0, 0,
1078 SND_SOC_DAPM_AIF_IN("DP1RX", "DP1 Headphone Playback", 0, SND_SOC_NOPM, 0, 0),
1079 SND_SOC_DAPM_AIF_OUT("DP2TX", "DP2 Headset Capture", 0, SND_SOC_NOPM, 0, 0),
1080 SND_SOC_DAPM_AIF_IN("DP3RX", "DP3 Speaker Playback", 0, SND_SOC_NOPM, 0, 0),
1081 SND_SOC_DAPM_AIF_OUT("DP6TX", "DP6 DMic Capture", 0, SND_SOC_NOPM, 0, 0),
1113 return 0; in rt722_sdca_parse_dt()
1125 if (ret < 0 && ret != -EACCES) in rt722_sdca_probe()
1128 return 0; in rt722_sdca_probe()
1148 return 0; in rt722_sdca_set_sdw_stream()
1208 port_config.ch_mask = GENMASK(num_channels - 1, 0); in rt722_sdca_pcm_hw_params()
1248 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1251 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1257 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1262 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1264 return 0; in rt722_sdca_pcm_hw_params()
1279 return 0; in rt722_sdca_pcm_hw_free()
1369 rt722->fu1e_mixer_mute[0] = rt722->fu1e_mixer_mute[1] = in rt722_sdca_init()
1380 RT722_ADC0A_08_PDE_FLOAT_CTL, 0x2a29); in rt722_sdca_dmic_preset()
1383 RT722_ADC10_PDE_FLOAT_CTL, 0x2a00); in rt722_sdca_dmic_preset()
1386 RT722_DMIC1_2_PDE_FLOAT_CTL, 0x2a2a); in rt722_sdca_dmic_preset()
1389 RT722_DMIC_ENT_FLOAT_CTL, 0x2626); in rt722_sdca_dmic_preset()
1392 RT722_ADC_ENT_FLOAT_CTL, 0x1e00); in rt722_sdca_dmic_preset()
1395 RT722_DMIC_GAIN_ENT_FLOAT_CTL0, 0x1515); in rt722_sdca_dmic_preset()
1398 RT722_ADC_VOL_CH_FLOAT_CTL, 0x0304); in rt722_sdca_dmic_preset()
1401 RT722_DMIC_GAIN_ENT_FLOAT_CTL2, 0x0304); in rt722_sdca_dmic_preset()
1404 RT722_HDA_LEGACY_CONFIG_CTL0, 0x0000); in rt722_sdca_dmic_preset()
1408 RT722_SDCA_CTL_VENDOR_DEF, 0), 0x01); in rt722_sdca_dmic_preset()
1410 regmap_write(rt722->regmap, 0x2f5c, 0x25); in rt722_sdca_dmic_preset()
1417 0xc215); in rt722_sdca_amp_preset()
1420 0x702c); in rt722_sdca_amp_preset()
1423 0xf02d); in rt722_sdca_amp_preset()
1426 0x2323); in rt722_sdca_amp_preset()
1429 0x0002); in rt722_sdca_amp_preset()
1433 RT722_SDCA_CTL_VENDOR_DEF, CH_08), 0x04); in rt722_sdca_amp_preset()
1439 unsigned int calib_status = 0; in rt722_sdca_jack_preset()
1443 0x4808); in rt722_sdca_jack_preset()
1446 0xcf00); in rt722_sdca_jack_preset()
1449 0x000f); in rt722_sdca_jack_preset()
1452 0x1100); in rt722_sdca_jack_preset()
1455 0x0c12); in rt722_sdca_jack_preset()
1458 0x7002); in rt722_sdca_jack_preset()
1461 0xc215); in rt722_sdca_jack_preset()
1464 0x4100); in rt722_sdca_jack_preset()
1467 0x008d); in rt722_sdca_jack_preset()
1469 for (loop_check = 0; loop_check < chk_cnt; loop_check++) { in rt722_sdca_jack_preset()
1472 if (ret < 0 || loop_check == chk_cnt) in rt722_sdca_jack_preset()
1474 if ((calib_status & 0x0040) == 0x0) in rt722_sdca_jack_preset()
1479 0x0010); in rt722_sdca_jack_preset()
1482 0x2a12); in rt722_sdca_jack_preset()
1485 0x3429); in rt722_sdca_jack_preset()
1488 0x4112); in rt722_sdca_jack_preset()
1491 0x4040); in rt722_sdca_jack_preset()
1493 regmap_write(rt722->regmap, 0x2f58, 0x07); in rt722_sdca_jack_preset()
1503 return 0; in rt722_sdca_io_init()
1549 return 0; in rt722_sdca_io_init()