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()
344 return 0; in rt722_sdca_set_jack_detect()
356 unsigned int adc_vol_flag = 0, changed = 0; in rt722_sdca_set_gain_put()
358 const unsigned int interval_offset = 0xc0; in rt722_sdca_set_gain_put()
359 const unsigned int tendB = 0xa00; in rt722_sdca_set_gain_put()
369 gain_l_val = ucontrol->value.integer.value[0]; in rt722_sdca_set_gain_put()
378 gain_l_val = 0x1e00 - ((mc->max - gain_l_val) * interval_offset); in rt722_sdca_set_gain_put()
380 gain_l_val = 0 - ((mc->max - gain_l_val) * interval_offset); in rt722_sdca_set_gain_put()
381 gain_l_val &= 0xffff; in rt722_sdca_set_gain_put()
394 gain_r_val = 0x1e00 - ((mc->max - gain_r_val) * interval_offset); in rt722_sdca_set_gain_put()
396 gain_r_val = 0 - ((mc->max - gain_r_val) * interval_offset); in rt722_sdca_set_gain_put()
397 gain_r_val &= 0xffff; in rt722_sdca_set_gain_put()
403 return 0; in rt722_sdca_set_gain_put()
426 unsigned int read_l, read_r, ctl_l = 0, ctl_r = 0; in rt722_sdca_set_gain_get()
427 unsigned int adc_vol_flag = 0; in rt722_sdca_set_gain_get()
428 const unsigned int interval_offset = 0xc0; in rt722_sdca_set_gain_get()
429 const unsigned int tendB = 0xa00; in rt722_sdca_set_gain_get()
442 ctl_l = mc->max - (((0x1e00 - read_l) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
444 ctl_l = mc->max - (((0 - read_l) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
452 ctl_r = mc->max - (((0x1e00 - read_r) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
454 ctl_r = mc->max - (((0 - read_r) & 0xffff) / interval_offset); in rt722_sdca_set_gain_get()
460 ucontrol->value.integer.value[0] = ctl_l; in rt722_sdca_set_gain_get()
463 return 0; in rt722_sdca_set_gain_get()
471 for (i = 0; i < ARRAY_SIZE(rt722->fu1e_mixer_mute); i++) { in rt722_sdca_set_fu1e_capture_ctl()
476 if (err < 0) in rt722_sdca_set_fu1e_capture_ctl()
480 return 0; in rt722_sdca_set_fu1e_capture_ctl()
492 for (i = 0; i < p->count; i++) in rt722_sdca_fu1e_capture_get()
495 return 0; in rt722_sdca_fu1e_capture_get()
505 int err, changed = 0, i; in rt722_sdca_fu1e_capture_put()
507 for (i = 0; i < p->count; i++) { in rt722_sdca_fu1e_capture_put()
514 if (err < 0) in rt722_sdca_fu1e_capture_put()
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()
531 if (err < 0) in rt722_sdca_set_fu0f_capture_ctl()
537 if (err < 0) in rt722_sdca_set_fu0f_capture_ctl()
540 return 0; in rt722_sdca_set_fu0f_capture_ctl()
549 ucontrol->value.integer.value[0] = !rt722->fu0f_mixer_l_mute; in rt722_sdca_fu0f_capture_get()
551 return 0; in rt722_sdca_fu0f_capture_get()
559 int err, changed = 0; in rt722_sdca_fu0f_capture_put()
561 if (rt722->fu0f_mixer_l_mute != !ucontrol->value.integer.value[0] || in rt722_sdca_fu0f_capture_put()
565 rt722->fu0f_mixer_l_mute = !ucontrol->value.integer.value[0]; in rt722_sdca_fu0f_capture_put()
568 if (err < 0) in rt722_sdca_fu0f_capture_put()
585 uinfo->value.integer.min = 0; in rt722_sdca_fu_info()
587 return 0; in rt722_sdca_fu_info()
597 unsigned int boost_step = 0x0a00; in rt722_sdca_dmic_set_gain_get()
598 unsigned int vol_max = 0x1e00; in rt722_sdca_dmic_set_gain_get()
600 unsigned int adc_vol_flag = 0; in rt722_sdca_dmic_set_gain_get()
601 const unsigned int interval_offset = 0xc0; in rt722_sdca_dmic_set_gain_get()
607 for (i = 0; i < p->count; i++) { in rt722_sdca_dmic_set_gain_get()
613 ctl = p->max - (((vol_max - regvalue) & 0xffff) / interval_offset); in rt722_sdca_dmic_set_gain_get()
618 return 0; in rt722_sdca_dmic_set_gain_get()
628 unsigned int boost_step = 0x0a00; in rt722_sdca_dmic_set_gain_put()
629 unsigned int vol_max = 0x1e00; in rt722_sdca_dmic_set_gain_put()
631 unsigned int i, adc_vol_flag = 0, changed = 0; in rt722_sdca_dmic_set_gain_put()
633 const unsigned int interval_offset = 0xc0; in rt722_sdca_dmic_set_gain_put()
640 for (i = 0; i < p->count; i++) { in rt722_sdca_dmic_set_gain_put()
651 gain_val[i] &= 0xffff; in rt722_sdca_dmic_set_gain_put()
659 return 0; in rt722_sdca_dmic_set_gain_put()
661 for (i = 0; i < p->count; i++) { in rt722_sdca_dmic_set_gain_put()
663 if (err < 0) in rt722_sdca_dmic_set_gain_put()
691 .private_value = RT722_SDCA_PR_VALUE(reg_base, xcount, xmax, 0) }
693 static const DECLARE_TLV_DB_SCALE(out_vol_tlv, -6525, 75, 0);
694 static const DECLARE_TLV_DB_SCALE(mic_vol_tlv, -1725, 75, 0);
695 static const DECLARE_TLV_DB_SCALE(boost_vol_tlv, 0, 1000, 0);
703 RT722_SDCA_CTL_FU_VOLUME, CH_R), 0, 0x57, 0,
706 SOC_DOUBLE_EXT("FU0F Capture Switch", SND_SOC_NOPM, 0, 1, 1, 0,
712 RT722_SDCA_CTL_FU_VOLUME, CH_R), 0, 0x3f, 0,
718 RT722_SDCA_CTL_FU_CH_GAIN, CH_R), 8, 3, 0,
725 RT722_SDCA_CTL_FU_VOLUME, CH_R), 0, 0x57, 0,
735 4, 0x3f, mic_vol_tlv),
764 0, adc07_10_mux_text);
781 unsigned char unmute = 0x0, mute = 0x1; in rt722_sdca_fu42_event()
801 return 0; in rt722_sdca_fu42_event()
810 unsigned char unmute = 0x0, mute = 0x1; in rt722_sdca_fu21_event()
830 return 0; in rt722_sdca_fu21_event()
851 return 0; in rt722_sdca_fu113_event()
871 return 0; in rt722_sdca_fu36_event()
884 SDW_SDCA_CTL(func, entity, RT722_SDCA_CTL_ACTUAL_POWER_STATE, 0), &val); in rt722_pde_transition_delay()
902 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde47_event()
908 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde47_event()
914 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde47_event()
918 return 0; in rt722_sdca_pde47_event()
927 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde23_event()
933 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde23_event()
939 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde23_event()
943 return 0; in rt722_sdca_pde23_event()
952 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde11_event()
958 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde11_event()
964 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde11_event()
968 return 0; in rt722_sdca_pde11_event()
977 unsigned char ps0 = 0x0, ps3 = 0x3; in rt722_sdca_pde12_event()
983 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps0); in rt722_sdca_pde12_event()
989 RT722_SDCA_CTL_REQ_POWER_STATE, 0), ps3); in rt722_sdca_pde12_event()
993 return 0; in rt722_sdca_pde12_event()
1005 SND_SOC_DAPM_SUPPLY("PDE 23", SND_SOC_NOPM, 0, 0,
1008 SND_SOC_DAPM_SUPPLY("PDE 47", SND_SOC_NOPM, 0, 0,
1011 SND_SOC_DAPM_SUPPLY("PDE 11", SND_SOC_NOPM, 0, 0,
1014 SND_SOC_DAPM_SUPPLY("PDE 12", SND_SOC_NOPM, 0, 0,
1018 SND_SOC_DAPM_DAC_E("FU 21", NULL, SND_SOC_NOPM, 0, 0,
1021 SND_SOC_DAPM_DAC_E("FU 42", NULL, SND_SOC_NOPM, 0, 0,
1024 SND_SOC_DAPM_ADC_E("FU 36", NULL, SND_SOC_NOPM, 0, 0,
1027 SND_SOC_DAPM_ADC_E("FU 113", NULL, SND_SOC_NOPM, 0, 0,
1030 SND_SOC_DAPM_MUX("ADC 22 Mux", SND_SOC_NOPM, 0, 0,
1032 SND_SOC_DAPM_MUX("ADC 24 Mux", SND_SOC_NOPM, 0, 0,
1034 SND_SOC_DAPM_MUX("ADC 25 Mux", SND_SOC_NOPM, 0, 0,
1037 SND_SOC_DAPM_AIF_IN("DP1RX", "DP1 Headphone Playback", 0, SND_SOC_NOPM, 0, 0),
1038 SND_SOC_DAPM_AIF_OUT("DP2TX", "DP2 Headset Capture", 0, SND_SOC_NOPM, 0, 0),
1039 SND_SOC_DAPM_AIF_IN("DP3RX", "DP3 Speaker Playback", 0, SND_SOC_NOPM, 0, 0),
1040 SND_SOC_DAPM_AIF_OUT("DP6TX", "DP6 DMic Capture", 0, SND_SOC_NOPM, 0, 0),
1072 return 0; in rt722_sdca_parse_dt()
1084 if (ret < 0 && ret != -EACCES) in rt722_sdca_probe()
1087 return 0; in rt722_sdca_probe()
1107 return 0; in rt722_sdca_set_sdw_stream()
1167 port_config.ch_mask = GENMASK(num_channels - 1, 0); in rt722_sdca_pcm_hw_params()
1207 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1210 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1216 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1221 RT722_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), sampling_rate); in rt722_sdca_pcm_hw_params()
1223 return 0; in rt722_sdca_pcm_hw_params()
1238 return 0; in rt722_sdca_pcm_hw_free()
1328 rt722->fu1e_mixer_mute[0] = rt722->fu1e_mixer_mute[1] = in rt722_sdca_init()
1341 …SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY, RT722_SDCA_ENT0, RT722_SDCA_CTL_FUNC_STATUS, 0), &mic_func_status… in rt722_sdca_dmic_preset()
1342 dev_dbg(dev, "%s mic func_status=0x%x\n", __func__, mic_func_status); in rt722_sdca_dmic_preset()
1347 RT722_ADC0A_08_PDE_FLOAT_CTL, 0x2a29); in rt722_sdca_dmic_preset()
1350 RT722_ADC10_PDE_FLOAT_CTL, 0x2a00); in rt722_sdca_dmic_preset()
1353 RT722_DMIC1_2_PDE_FLOAT_CTL, 0x2a2a); in rt722_sdca_dmic_preset()
1356 RT722_DMIC_ENT_FLOAT_CTL, 0x2626); in rt722_sdca_dmic_preset()
1359 RT722_ADC_ENT_FLOAT_CTL, 0x1e00); in rt722_sdca_dmic_preset()
1362 RT722_DMIC_GAIN_ENT_FLOAT_CTL0, 0x1515); in rt722_sdca_dmic_preset()
1365 RT722_ADC_VOL_CH_FLOAT_CTL, 0x0304); in rt722_sdca_dmic_preset()
1368 RT722_DMIC_GAIN_ENT_FLOAT_CTL2, 0x0304); in rt722_sdca_dmic_preset()
1371 RT722_HDA_LEGACY_CONFIG_CTL0, 0x0000); in rt722_sdca_dmic_preset()
1375 RT722_SDCA_CTL_VENDOR_DEF, 0), 0x01); 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()
1382 regmap_write(rt722->regmap, 0x2f52, 0x00); in rt722_sdca_dmic_preset()
1386 SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY, RT722_SDCA_ENT0, RT722_SDCA_CTL_FUNC_STATUS, 0), in rt722_sdca_dmic_preset()
1397 SDW_SDCA_CTL(FUNC_NUM_AMP, RT722_SDCA_ENT0, RT722_SDCA_CTL_FUNC_STATUS, 0), &_func_status); in rt722_sdca_amp_preset()
1398 dev_dbg(dev, "%s amp func_status=0x%x\n", __func__, amp_func_status); in rt722_sdca_amp_preset()
1403 0xc215); in rt722_sdca_amp_preset()
1406 0x702c); in rt722_sdca_amp_preset()
1409 0xf02d); in rt722_sdca_amp_preset()
1412 0x2323); in rt722_sdca_amp_preset()
1415 0x0002); in rt722_sdca_amp_preset()
1419 RT722_SDCA_CTL_VENDOR_DEF, CH_08), 0x04); in rt722_sdca_amp_preset()
1422 regmap_write(rt722->regmap, 0x2f54, 0x00); in rt722_sdca_amp_preset()
1426 SDW_SDCA_CTL(FUNC_NUM_AMP, RT722_SDCA_ENT0, RT722_SDCA_CTL_FUNC_STATUS, 0), in rt722_sdca_amp_preset()
1434 unsigned int calib_status = 0; in rt722_sdca_jack_preset()
1439 …SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT722_SDCA_ENT0, RT722_SDCA_CTL_FUNC_STATUS, 0), &jack_func_stat… in rt722_sdca_jack_preset()
1440 dev_dbg(dev, "%s jack func_status=0x%x\n", __func__, jack_func_status); in rt722_sdca_jack_preset()
1445 0xa081); in rt722_sdca_jack_preset()
1448 0xa009); in rt722_sdca_jack_preset()
1451 0xcf00); in rt722_sdca_jack_preset()
1454 0x000f); in rt722_sdca_jack_preset()
1457 0x1100); in rt722_sdca_jack_preset()
1460 0x0c12); in rt722_sdca_jack_preset()
1463 0x7002); in rt722_sdca_jack_preset()
1466 0xc215); in rt722_sdca_jack_preset()
1469 0x4100); in rt722_sdca_jack_preset()
1472 0x008d); in rt722_sdca_jack_preset()
1474 for (loop_check = 0; loop_check < chk_cnt; loop_check++) { in rt722_sdca_jack_preset()
1478 if (ret < 0) in rt722_sdca_jack_preset()
1480 if ((calib_status & 0x0040) == 0x0) in rt722_sdca_jack_preset()
1489 0x2a12); in rt722_sdca_jack_preset()
1492 0x3429); in rt722_sdca_jack_preset()
1495 0x4112); in rt722_sdca_jack_preset()
1498 0x4040); in rt722_sdca_jack_preset()
1500 0x4141); in rt722_sdca_jack_preset()
1502 0x0101); 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()
1508 RT722_COMBO_JACK_AUTO_CTL1, 0x0200, 0x0200); in rt722_sdca_jack_preset()
1510 RT722_VREFO_GAT, 0x4000, 0x4000); in rt722_sdca_jack_preset()
1513 0x0010); in rt722_sdca_jack_preset()
1516 regmap_write(rt722->regmap, 0x2f51, 0x00); in rt722_sdca_jack_preset()
1520 SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT722_SDCA_ENT0, RT722_SDCA_CTL_FUNC_STATUS, 0), in rt722_sdca_jack_preset()
1533 return 0; 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()
1578 return 0; in rt722_sdca_io_init()