Lines Matching +full:0 +full:x1e00
36 if (ret < 0) in rt712_sdca_index_write()
52 if (ret < 0) in rt712_sdca_index_read()
67 if (ret < 0) in rt712_sdca_index_update_bits()
76 unsigned int val, loop_rc = 0, loop_dc = 0; in rt712_sdca_calibration()
80 int ret = 0; in rt712_sdca_calibration()
87 rt712_sdca_index_write(rt712, RT712_VENDOR_REG, RT712_CC_DET1, 0x043a); in rt712_sdca_calibration()
90 rt712_sdca_index_write(rt712, RT712_VENDOR_REG, RT712_FSM_CTL, 0x4100); in rt712_sdca_calibration()
93 rt712_sdca_index_write(rt712, RT712_VENDOR_CALI, RT712_DAC_DC_CALI_CTL1, 0x7883); in rt712_sdca_calibration()
96 rt712_sdca_index_write(rt712, RT712_VENDOR_CALI, RT712_DAC_DC_CALI_CTL1, 0xf893); in rt712_sdca_calibration()
102 for (loop_dc = 0; loop_dc < chk_cnt && in rt712_sdca_calibration()
107 if (ret < 0) in rt712_sdca_calibration()
118 rt712_sdca_index_write(rt712, RT712_VENDOR_REG, RT712_FSM_CTL, 0x4500); in rt712_sdca_calibration()
121 rt712_sdca_index_write(rt712, RT712_VENDOR_IMS_DRE, RT712_IMS_DIGITAL_CTL1, 0x040f); in rt712_sdca_calibration()
124 rt712_sdca_index_write(rt712, RT712_VENDOR_IMS_DRE, RT712_IMS_DIGITAL_CTL5, 0x0000); in rt712_sdca_calibration()
127 rt712_sdca_index_write(rt712, RT712_VENDOR_REG, RT712_DIGITAL_MISC_CTRL4, 0x0010); in rt712_sdca_calibration()
136 unsigned int btn_type = 0, offset, idx, val, owner; in rt712_sdca_button_detect()
142 SDW_SDCA_CTL(FUNC_NUM_HID, RT712_SDCA_ENT_HID01, RT712_SDCA_CTL_HIDTX_CURRENT_OWNER, 0), in rt712_sdca_button_detect()
144 if (ret < 0) in rt712_sdca_button_detect()
145 return 0; in rt712_sdca_button_detect()
149 return 0; in rt712_sdca_button_detect()
153 SDW_SDCA_CTL(FUNC_NUM_HID, RT712_SDCA_ENT_HID01, RT712_SDCA_CTL_HIDTX_MESSAGE_OFFSET, 0), in rt712_sdca_button_detect()
155 if (ret < 0) in rt712_sdca_button_detect()
158 for (idx = 0; idx < sizeof(buf); idx++) { in rt712_sdca_button_detect()
161 if (ret < 0) in rt712_sdca_button_detect()
163 buf[idx] = val & 0xff; in rt712_sdca_button_detect()
166 if (buf[0] == 0x11) { in rt712_sdca_button_detect()
167 switch (buf[1] & 0xf0) { in rt712_sdca_button_detect()
168 case 0x10: in rt712_sdca_button_detect()
171 case 0x20: in rt712_sdca_button_detect()
174 case 0x40: in rt712_sdca_button_detect()
177 case 0x80: in rt712_sdca_button_detect()
182 case 0x01: in rt712_sdca_button_detect()
183 case 0x10: in rt712_sdca_button_detect()
186 case 0x02: in rt712_sdca_button_detect()
187 case 0x20: in rt712_sdca_button_detect()
190 case 0x04: in rt712_sdca_button_detect()
191 case 0x40: in rt712_sdca_button_detect()
194 case 0x08: in rt712_sdca_button_detect()
195 case 0x80: in rt712_sdca_button_detect()
203 if (owner == 0) { in rt712_sdca_button_detect()
208 RT712_SDCA_CTL_HIDTX_SET_OWNER_TO_DEVICE, 0), 0x01); in rt712_sdca_button_detect()
212 RT712_SDCA_CTL_HIDTX_CURRENT_OWNER, 0), 0x01); in rt712_sdca_button_detect()
225 SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_GE49, RT712_SDCA_CTL_DETECTED_MODE, 0), in rt712_sdca_headset_detect()
227 if (ret < 0) in rt712_sdca_headset_detect()
231 case 0x00: in rt712_sdca_headset_detect()
232 rt712->jack_type = 0; in rt712_sdca_headset_detect()
234 case 0x03: in rt712_sdca_headset_detect()
237 case 0x05: in rt712_sdca_headset_detect()
245 SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_GE49, RT712_SDCA_CTL_SELECTED_MODE, 0), in rt712_sdca_headset_detect()
247 if (ret < 0) in rt712_sdca_headset_detect()
252 "%s, detected_mode=0x%x\n", __func__, det_mode); in rt712_sdca_headset_detect()
254 return 0; in rt712_sdca_headset_detect()
265 int btn_type = 0, ret; in rt712_sdca_jack_detect_handler()
276 if (ret < 0) in rt712_sdca_jack_detect_handler()
284 if (rt712->jack_type == 0) in rt712_sdca_jack_detect_handler()
285 btn_type = 0; in rt712_sdca_jack_detect_handler()
288 "in %s, jack_type=0x%x\n", __func__, rt712->jack_type); in rt712_sdca_jack_detect_handler()
290 "in %s, btn_type=0x%x\n", __func__, btn_type); in rt712_sdca_jack_detect_handler()
292 "in %s, scp_sdca_stat1=0x%x, scp_sdca_stat2=0x%x\n", __func__, in rt712_sdca_jack_detect_handler()
316 int btn_type = 0, ret, idx; in rt712_sdca_btn_check_handler()
321 SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_GE49, RT712_SDCA_CTL_DETECTED_MODE, 0), in rt712_sdca_btn_check_handler()
323 if (ret < 0) in rt712_sdca_btn_check_handler()
330 SDW_SDCA_CTL(FUNC_NUM_HID, RT712_SDCA_ENT_HID01, RT712_SDCA_CTL_HIDTX_MESSAGE_OFFSET, 0), in rt712_sdca_btn_check_handler()
332 if (ret < 0) in rt712_sdca_btn_check_handler()
335 for (idx = 0; idx < sizeof(buf); idx++) { in rt712_sdca_btn_check_handler()
338 if (ret < 0) in rt712_sdca_btn_check_handler()
340 buf[idx] = val & 0xff; in rt712_sdca_btn_check_handler()
343 if (buf[0] == 0x11) { in rt712_sdca_btn_check_handler()
344 switch (buf[1] & 0xf0) { in rt712_sdca_btn_check_handler()
345 case 0x10: in rt712_sdca_btn_check_handler()
348 case 0x20: in rt712_sdca_btn_check_handler()
351 case 0x40: in rt712_sdca_btn_check_handler()
354 case 0x80: in rt712_sdca_btn_check_handler()
359 case 0x01: in rt712_sdca_btn_check_handler()
360 case 0x10: in rt712_sdca_btn_check_handler()
363 case 0x02: in rt712_sdca_btn_check_handler()
364 case 0x20: in rt712_sdca_btn_check_handler()
367 case 0x04: in rt712_sdca_btn_check_handler()
368 case 0x40: in rt712_sdca_btn_check_handler()
371 case 0x08: in rt712_sdca_btn_check_handler()
372 case 0x80: in rt712_sdca_btn_check_handler()
378 rt712->jack_type = 0; in rt712_sdca_btn_check_handler()
381 dev_dbg(&rt712->slave->dev, "%s, btn_type=0x%x\n", __func__, btn_type); in rt712_sdca_btn_check_handler()
411 RT712_UMP_HID_CTL5, 0xfff0); in rt712_sdca_jack_init()
413 RT712_UMP_HID_CTL0, 0x1100, 0x1100); in rt712_sdca_jack_init()
415 RT712_UMP_HID_CTL7, 0xf000, 0x0000); in rt712_sdca_jack_init()
419 RT712_GE_RELATED_CTL1, 0x0c00, 0x0c00); in rt712_sdca_jack_init()
422 RT712_GE_RELATED_CTL2, 0x0020, 0x0000); in rt712_sdca_jack_init()
428 rt712_sdca_index_write(rt712, RT712_VENDOR_REG, RT712_CC_DET1, 0x043a); in rt712_sdca_jack_init()
435 /* set SCP_SDCA_IntMask1[0]=1 */ in rt712_sdca_jack_init()
437 /* set SCP_SDCA_IntMask2[0]=1 */ in rt712_sdca_jack_init()
443 RT712_GE_RELATED_CTL1, 0x0080, 0x0080); in rt712_sdca_jack_init()
445 RT712_GE_RELATED_CTL1, 0x0080, 0x0000); in rt712_sdca_jack_init()
449 RT712_GE_RELATED_CTL1, 0x0c00, 0x0000); in rt712_sdca_jack_init()
466 return 0; in rt712_sdca_set_jack_detect()
469 if (ret < 0) { in rt712_sdca_set_jack_detect()
477 return 0; in rt712_sdca_set_jack_detect()
485 return 0; in rt712_sdca_set_jack_detect()
497 unsigned int adc_vol_flag = 0; in rt712_sdca_set_gain_put()
499 const unsigned int interval_offset = 0xc0; in rt712_sdca_set_gain_put()
500 const unsigned int tendB = 0xa00; in rt712_sdca_set_gain_put()
509 gain_l_val = ucontrol->value.integer.value[0]; in rt712_sdca_set_gain_put()
518 gain_l_val = 0x1e00 - ((mc->max - gain_l_val) * interval_offset); in rt712_sdca_set_gain_put()
520 gain_l_val = 0 - ((mc->max - gain_l_val) * interval_offset); in rt712_sdca_set_gain_put()
521 gain_l_val &= 0xffff; in rt712_sdca_set_gain_put()
534 gain_r_val = 0x1e00 - ((mc->max - gain_r_val) * interval_offset); in rt712_sdca_set_gain_put()
536 gain_r_val = 0 - ((mc->max - gain_r_val) * interval_offset); in rt712_sdca_set_gain_put()
537 gain_r_val &= 0xffff; in rt712_sdca_set_gain_put()
541 return 0; in rt712_sdca_set_gain_put()
563 unsigned int read_l, read_r, ctl_l = 0, ctl_r = 0; in rt712_sdca_set_gain_get()
564 unsigned int adc_vol_flag = 0; in rt712_sdca_set_gain_get()
565 const unsigned int interval_offset = 0xc0; in rt712_sdca_set_gain_get()
566 const unsigned int tendB = 0xa00; in rt712_sdca_set_gain_get()
578 ctl_l = mc->max - (((0x1e00 - read_l) & 0xffff) / interval_offset); in rt712_sdca_set_gain_get()
580 ctl_l = mc->max - (((0 - read_l) & 0xffff) / interval_offset); in rt712_sdca_set_gain_get()
588 ctl_r = mc->max - (((0x1e00 - read_r) & 0xffff) / interval_offset); in rt712_sdca_set_gain_get()
590 ctl_r = mc->max - (((0 - read_r) & 0xffff) / interval_offset); in rt712_sdca_set_gain_get()
595 ucontrol->value.integer.value[0] = ctl_l; in rt712_sdca_set_gain_get()
598 return 0; in rt712_sdca_set_gain_get()
606 ch_01 = (rt712->fu0f_dapm_mute || rt712->fu0f_mixer_l_mute) ? 0x01 : 0x00; in rt712_sdca_set_fu0f_capture_ctl()
607 ch_02 = (rt712->fu0f_dapm_mute || rt712->fu0f_mixer_r_mute) ? 0x01 : 0x00; in rt712_sdca_set_fu0f_capture_ctl()
612 if (err < 0) in rt712_sdca_set_fu0f_capture_ctl()
618 if (err < 0) in rt712_sdca_set_fu0f_capture_ctl()
621 return 0; in rt712_sdca_set_fu0f_capture_ctl()
630 ucontrol->value.integer.value[0] = !rt712->fu0f_mixer_l_mute; in rt712_sdca_fu0f_capture_get()
632 return 0; in rt712_sdca_fu0f_capture_get()
642 if (rt712->fu0f_mixer_l_mute == !ucontrol->value.integer.value[0] && in rt712_sdca_fu0f_capture_put()
644 return 0; in rt712_sdca_fu0f_capture_put()
646 rt712->fu0f_mixer_l_mute = !ucontrol->value.integer.value[0]; in rt712_sdca_fu0f_capture_put()
649 if (err < 0) in rt712_sdca_fu0f_capture_put()
660 ch_01 = (rt712->fu05_dapm_mute || rt712->fu05_mixer_l_mute) ? 0x01 : 0x00; in rt712_sdca_set_fu05_playback_ctl()
661 ch_02 = (rt712->fu05_dapm_mute || rt712->fu05_mixer_r_mute) ? 0x01 : 0x00; in rt712_sdca_set_fu05_playback_ctl()
666 if (err < 0) in rt712_sdca_set_fu05_playback_ctl()
672 if (err < 0) in rt712_sdca_set_fu05_playback_ctl()
675 return 0; in rt712_sdca_set_fu05_playback_ctl()
684 ucontrol->value.integer.value[0] = !rt712->fu05_mixer_l_mute; in rt712_sdca_fu05_playback_get()
686 return 0; in rt712_sdca_fu05_playback_get()
696 if (rt712->fu05_mixer_l_mute == !ucontrol->value.integer.value[0] && in rt712_sdca_fu05_playback_put()
698 return 0; in rt712_sdca_fu05_playback_put()
700 rt712->fu05_mixer_l_mute = !ucontrol->value.integer.value[0]; in rt712_sdca_fu05_playback_put()
704 if (err < 0) in rt712_sdca_fu05_playback_put()
710 static const DECLARE_TLV_DB_SCALE(out_vol_tlv, -6525, 75, 0);
711 static const DECLARE_TLV_DB_SCALE(mic_vol_tlv, -1725, 75, 0);
712 static const DECLARE_TLV_DB_SCALE(boost_vol_tlv, 0, 1000, 0);
718 0, 0x57, 0,
720 SOC_DOUBLE_EXT("FU0F Capture Switch", SND_SOC_NOPM, 0, 1, 1, 0,
725 0, 0x3f, 0,
730 8, 3, 0,
732 SOC_DOUBLE_EXT("FU05 Playback Switch", SND_SOC_NOPM, 0, 1, 1, 0,
740 0, 0x57, 0,
750 unsigned int val = 0, mask = 0x3300; in rt712_sdca_mux_get()
756 case 0x3000: in rt712_sdca_mux_get()
759 case 0x0300: in rt712_sdca_mux_get()
760 val = 0; in rt712_sdca_mux_get()
764 ucontrol->value.enumerated.item[0] = val; in rt712_sdca_mux_get()
766 return 0; in rt712_sdca_mux_get()
782 if (item[0] >= e->items) in rt712_sdca_mux_put()
785 if (ucontrol->value.enumerated.item[0] == 0) in rt712_sdca_mux_put()
787 else if (ucontrol->value.enumerated.item[0] == 1) in rt712_sdca_mux_put()
793 val = (val >> mask_sft) & 0x3; in rt712_sdca_mux_put()
795 return 0; in rt712_sdca_mux_put()
798 RT712_MIXER_CTL1, 0x3fff); in rt712_sdca_mux_put()
800 RT712_MIXER_CTL1, 0x3 << mask_sft, 0); in rt712_sdca_mux_put()
803 item[0], e, NULL); in rt712_sdca_mux_put()
814 rt712_adc23_enum, SND_SOC_NOPM, 0, adc_mux_text);
837 return 0; in rt712_sdca_fu05_event()
857 return 0; in rt712_sdca_fu0f_event()
866 unsigned char ps0 = 0x0, ps3 = 0x3; in rt712_sdca_pde40_event()
872 RT712_SDCA_CTL_REQ_POWER_STATE, 0), in rt712_sdca_pde40_event()
878 RT712_SDCA_CTL_REQ_POWER_STATE, 0), in rt712_sdca_pde40_event()
882 return 0; in rt712_sdca_pde40_event()
891 unsigned char ps0 = 0x0, ps3 = 0x3; in rt712_sdca_pde12_event()
897 RT712_SDCA_CTL_REQ_POWER_STATE, 0), in rt712_sdca_pde12_event()
903 RT712_SDCA_CTL_REQ_POWER_STATE, 0), in rt712_sdca_pde12_event()
907 return 0; in rt712_sdca_pde12_event()
916 unsigned char ps0 = 0x0, ps3 = 0x3; in rt712_sdca_pde23_event()
922 RT712_SDCA_CTL_REQ_POWER_STATE, 0), in rt712_sdca_pde23_event()
928 RT712_SDCA_CTL_REQ_POWER_STATE, 0), in rt712_sdca_pde23_event()
936 return 0; in rt712_sdca_pde23_event()
942 0, 1, 1);
946 0, 1, 1);
953 SND_SOC_DAPM_SUPPLY("PDE 40", SND_SOC_NOPM, 0, 0,
956 SND_SOC_DAPM_SUPPLY("PDE 12", SND_SOC_NOPM, 0, 0,
960 SND_SOC_DAPM_DAC_E("FU 05", NULL, SND_SOC_NOPM, 0, 0,
963 SND_SOC_DAPM_ADC_E("FU 0F", NULL, SND_SOC_NOPM, 0, 0,
966 SND_SOC_DAPM_MUX("ADC 23 Mux", SND_SOC_NOPM, 0, 0,
969 SND_SOC_DAPM_AIF_IN("DP1RX", "DP1 Playback", 0, SND_SOC_NOPM, 0, 0),
970 SND_SOC_DAPM_AIF_OUT("DP4TX", "DP4 Capture", 0, SND_SOC_NOPM, 0, 0),
975 { "DP4TX", NULL, "FU 0F" },
977 { "FU 0F", NULL, "PDE 12" },
978 { "FU 0F", NULL, "ADC 23 Mux" },
987 SND_SOC_DAPM_AIF_IN("DP3RX", "DP3 Playback", 0, SND_SOC_NOPM, 0, 0),
990 SND_SOC_DAPM_PGA("FU06", SND_SOC_NOPM, 0, 0, NULL, 0),
992 SND_SOC_DAPM_SUPPLY("PDE 23", SND_SOC_NOPM, 0, 0,
997 SND_SOC_DAPM_SWITCH("OT23 L", SND_SOC_NOPM, 0, 0, &rt712_spk_l_dac),
998 SND_SOC_DAPM_SWITCH("OT23 R", SND_SOC_NOPM, 0, 0, &rt712_spk_r_dac),
1016 return 0; in rt712_sdca_parse_dt()
1039 return 0; in rt712_sdca_probe()
1042 if (ret < 0 && ret != -EACCES) in rt712_sdca_probe()
1045 return 0; in rt712_sdca_probe()
1056 unsigned int adc_vol_flag = 0; in rt712_sdca_dmic_set_gain_get()
1057 const unsigned int interval_offset = 0xc0; in rt712_sdca_dmic_set_gain_get()
1063 for (i = 0; i < p->count; i++) { in rt712_sdca_dmic_set_gain_get()
1067 ctl = regvalue / 0x0a00; in rt712_sdca_dmic_set_gain_get()
1070 ctl = p->max - (((0x1e00 - regvalue) & 0xffff) / interval_offset); in rt712_sdca_dmic_set_gain_get()
1072 ctl = p->max - (((0 - regvalue) & 0xffff) / interval_offset); in rt712_sdca_dmic_set_gain_get()
1078 return 0; in rt712_sdca_dmic_set_gain_get()
1089 unsigned int i, adc_vol_flag = 0, changed = 0; in rt712_sdca_dmic_set_gain_put()
1091 const unsigned int interval_offset = 0xc0; in rt712_sdca_dmic_set_gain_put()
1098 for (i = 0; i < p->count; i++) { in rt712_sdca_dmic_set_gain_put()
1106 gain_val[i] = gain_val[i] * 0x0a00; in rt712_sdca_dmic_set_gain_put()
1108 gain_val[i] = 0x1e00 - ((p->max - gain_val[i]) * interval_offset); in rt712_sdca_dmic_set_gain_put()
1109 gain_val[i] &= 0xffff; in rt712_sdca_dmic_set_gain_put()
1117 return 0; in rt712_sdca_dmic_set_gain_put()
1119 for (i = 0; i < p->count; i++) { in rt712_sdca_dmic_set_gain_put()
1121 if (err < 0) in rt712_sdca_dmic_set_gain_put()
1122 dev_err(&rt712->slave->dev, "0x%08x can't be set\n", p->reg_base + i); in rt712_sdca_dmic_set_gain_put()
1133 for (i = 0; i < ARRAY_SIZE(rt712->fu1e_mixer_mute); i++) { in rt712_sdca_set_fu1e_capture_ctl()
1134 ch_mute = (rt712->fu1e_dapm_mute || rt712->fu1e_mixer_mute[i]) ? 0x01 : 0x00; in rt712_sdca_set_fu1e_capture_ctl()
1138 if (err < 0) in rt712_sdca_set_fu1e_capture_ctl()
1142 return 0; in rt712_sdca_set_fu1e_capture_ctl()
1154 for (i = 0; i < p->count; i++) in rt712_sdca_dmic_fu1e_capture_get()
1157 return 0; in rt712_sdca_dmic_fu1e_capture_get()
1167 int err, changed = 0, i; in rt712_sdca_dmic_fu1e_capture_put()
1169 for (i = 0; i < p->count; i++) { in rt712_sdca_dmic_fu1e_capture_put()
1176 if (err < 0) in rt712_sdca_dmic_fu1e_capture_put()
1193 uinfo->value.integer.min = 0; in rt712_sdca_fu_info()
1195 return 0; in rt712_sdca_fu_info()
1218 .private_value = RT712_SDCA_PR_VALUE(reg_base, xcount, xmax, 0) }
1220 static const DECLARE_TLV_DB_SCALE(in_vol_tlv, -1725, 75, 0);
1221 static const DECLARE_TLV_DB_SCALE(dmic_vol_tlv, 0, 1000, 0);
1229 rt712_sdca_dmic_set_gain_get, rt712_sdca_dmic_set_gain_put, 4, 0x3f, in_vol_tlv),
1241 unsigned int val = 0, mask_sft; in rt712_sdca_dmic_mux_get()
1243 if (strstr(ucontrol->id.name, "ADC 0A Mux")) in rt712_sdca_dmic_mux_get()
1244 mask_sft = 0; in rt712_sdca_dmic_mux_get()
1245 else if (strstr(ucontrol->id.name, "ADC 0B Mux")) in rt712_sdca_dmic_mux_get()
1253 ucontrol->value.enumerated.item[0] = (((val >> mask_sft) & 0xf) == 0x4) ? 0 : 1; in rt712_sdca_dmic_mux_get()
1255 return 0; in rt712_sdca_dmic_mux_get()
1268 unsigned int val, val2 = 0, change, mask_sft; in rt712_sdca_dmic_mux_put()
1270 if (item[0] >= e->items) in rt712_sdca_dmic_mux_put()
1273 if (strstr(ucontrol->id.name, "ADC 0A Mux")) in rt712_sdca_dmic_mux_put()
1274 mask_sft = 0; in rt712_sdca_dmic_mux_put()
1275 else if (strstr(ucontrol->id.name, "ADC 0B Mux")) in rt712_sdca_dmic_mux_put()
1280 val = snd_soc_enum_item_to_val(e, item[0]) << e->shift_l; in rt712_sdca_dmic_mux_put()
1284 val2 = ((0xf << mask_sft) & val2) >> mask_sft; in rt712_sdca_dmic_mux_put()
1286 if (val == 0) in rt712_sdca_dmic_mux_put()
1287 val = 0x4; in rt712_sdca_dmic_mux_put()
1289 val = 0xe; in rt712_sdca_dmic_mux_put()
1292 change = 0; in rt712_sdca_dmic_mux_put()
1298 RT712_HDA_LEGACY_MUX_CTL0, 0xf << mask_sft, in rt712_sdca_dmic_mux_put()
1301 snd_soc_dapm_mux_update_power(dapm, kcontrol, item[0], e, NULL); in rt712_sdca_dmic_mux_put()
1312 rt712_adc0a_enum, SND_SOC_NOPM, 0, adc_dmic_mux_text);
1315 rt712_adc0b_enum, SND_SOC_NOPM, 0, adc_dmic_mux_text);
1318 SOC_DAPM_ENUM_EXT("ADC 0A Mux", rt712_adc0a_enum,
1322 SOC_DAPM_ENUM_EXT("ADC 0B Mux", rt712_adc0b_enum,
1342 return 0; in rt712_sdca_dmic_fu1e_event()
1351 unsigned char ps0 = 0x0, ps3 = 0x3; in rt712_sdca_dmic_pde11_event()
1357 RT712_SDCA_CTL_REQ_POWER_STATE, 0), in rt712_sdca_dmic_pde11_event()
1363 RT712_SDCA_CTL_REQ_POWER_STATE, 0), in rt712_sdca_dmic_pde11_event()
1367 return 0; in rt712_sdca_dmic_pde11_event()
1374 SND_SOC_DAPM_SUPPLY("PDE 11", SND_SOC_NOPM, 0, 0,
1378 SND_SOC_DAPM_ADC_E("FU 1E", NULL, SND_SOC_NOPM, 0, 0,
1381 SND_SOC_DAPM_MUX("ADC 0A Mux", SND_SOC_NOPM, 0, 0,
1383 SND_SOC_DAPM_MUX("ADC 0B Mux", SND_SOC_NOPM, 0, 0,
1386 SND_SOC_DAPM_AIF_OUT("DP8TX", "DP8 Capture", 0, SND_SOC_NOPM, 0, 0),
1393 {"FU 1E", NULL, "ADC 0A Mux"},
1394 {"FU 1E", NULL, "ADC 0B Mux"},
1395 {"ADC 0A Mux", "DMIC1", "DMIC1"},
1396 {"ADC 0A Mux", "DMIC2", "DMIC2"},
1397 {"ADC 0B Mux", "DMIC1", "DMIC1"},
1398 {"ADC 0B Mux", "DMIC2", "DMIC2"},
1409 return 0; in rt712_sdca_dmic_probe()
1412 if (ret < 0 && ret != -EACCES) in rt712_sdca_dmic_probe()
1415 return 0; in rt712_sdca_dmic_probe()
1449 return 0; in rt712_sdca_set_sdw_stream()
1509 port_config.ch_mask = GENMASK(num_channels - 1, 0); in rt712_sdca_pcm_hw_params()
1549 SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_CS01, RT712_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), in rt712_sdca_pcm_hw_params()
1552 SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_CS11, RT712_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), in rt712_sdca_pcm_hw_params()
1557 SDW_SDCA_CTL(FUNC_NUM_AMP, RT712_SDCA_ENT_CS31, RT712_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), in rt712_sdca_pcm_hw_params()
1562 SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY, RT712_SDCA_ENT_CS1F, RT712_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), in rt712_sdca_pcm_hw_params()
1565 SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY, RT712_SDCA_ENT_CS1C, RT712_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), in rt712_sdca_pcm_hw_params()
1573 return 0; in rt712_sdca_pcm_hw_params()
1588 return 0; in rt712_sdca_pcm_hw_free()
1685 rt712->fu1e_mixer_mute[0] = rt712->fu1e_mixer_mute[1] = in rt712_sdca_init()
1699 if (ret < 0) in rt712_sdca_init()
1708 if (ret < 0) in rt712_sdca_init()
1730 return 0; in rt712_sdca_init()
1735 int ret = 0; in rt712_sdca_va_io_init()
1739 rt712_sdca_index_write(rt712, RT712_VENDOR_REG, RT712_ANALOG_BIAS_CTL3, 0xaa81); in rt712_sdca_va_io_init()
1740 rt712_sdca_index_write(rt712, RT712_VENDOR_REG, RT712_LDO2_3_CTL1, 0xa1e0); in rt712_sdca_va_io_init()
1741 rt712_sdca_index_write(rt712, RT712_VENDOR_IMS_DRE, RT712_HP_DETECT_RLDET_CTL1, 0x0000); in rt712_sdca_va_io_init()
1742 rt712_sdca_index_write(rt712, RT712_VENDOR_IMS_DRE, RT712_HP_DETECT_RLDET_CTL2, 0x0000); in rt712_sdca_va_io_init()
1743 rt712_sdca_index_write(rt712, RT712_VENDOR_ANALOG_CTL, RT712_MISC_POWER_CTL7, 0x0000); in rt712_sdca_va_io_init()
1744 regmap_write(rt712->regmap, RT712_RC_CAL, 0x23); in rt712_sdca_va_io_init()
1750 if (ret < 0) in rt712_sdca_va_io_init()
1755 RT712_MIXER_CTL1, 0x3000, 0x0000); in rt712_sdca_va_io_init()
1757 RT712_ADC0A_08_PDE_FLOAT_CTL, 0x1112); in rt712_sdca_va_io_init()
1759 RT712_MIC2_LINE2_PDE_FLOAT_CTL, 0x3412); in rt712_sdca_va_io_init()
1761 RT712_DAC03_HP_PDE_FLOAT_CTL, 0x4040); in rt712_sdca_va_io_init()
1764 RT712_HDA_LEGACY_GPIO_WAKE_EN_CTL, 0x0001, 0x0000); in rt712_sdca_va_io_init()
1765 regmap_write(rt712->regmap, 0x2f50, 0x00); in rt712_sdca_va_io_init()
1766 regmap_write(rt712->regmap, 0x2f54, 0x00); in rt712_sdca_va_io_init()
1768 SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_IT09, RT712_SDCA_CTL_VENDOR_DEF, 0), 0x01); in rt712_sdca_va_io_init()
1772 rt712_sdca_index_write(rt712, RT712_VENDOR_HDA_CTL, RT712_AMP_PDE_FLOAT_CTL, 0x2323); in rt712_sdca_va_io_init()
1773 rt712_sdca_index_write(rt712, RT712_VENDOR_HDA_CTL, RT712_EAPD_CTL, 0x0002); in rt712_sdca_va_io_init()
1775 SDW_SDCA_CTL(FUNC_NUM_AMP, RT712_SDCA_ENT_OT23, RT712_SDCA_CTL_VENDOR_DEF, 0), 0x04); in rt712_sdca_va_io_init()
1781 int ret = 0; in rt712_sdca_vb_io_init()
1786 …SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT0, RT712_SDCA_CTL_FUNC_STATUS, 0), &jack_func_stat… in rt712_sdca_vb_io_init()
1788 …SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY, RT712_SDCA_ENT0, RT712_SDCA_CTL_FUNC_STATUS, 0), &mic_func_status… in rt712_sdca_vb_io_init()
1790 SDW_SDCA_CTL(FUNC_NUM_AMP, RT712_SDCA_ENT0, RT712_SDCA_CTL_FUNC_STATUS, 0), &_func_status); in rt712_sdca_vb_io_init()
1791 dev_dbg(dev, "%s jack/mic/amp func_status=0x%x, 0x%x, 0x%x\n", in rt712_sdca_vb_io_init()
1796 rt712_sdca_index_write(rt712, RT712_VENDOR_HDA_CTL, RT712_DMIC2_FU_IT_FLOAT_CTL, 0x1526); in rt712_sdca_vb_io_init()
1797 rt712_sdca_index_write(rt712, RT712_VENDOR_HDA_CTL, RT712_DMIC2_FU_CH12_FLOAT_CTL, 0x0304); in rt712_sdca_vb_io_init()
1798 rt712_sdca_index_write(rt712, RT712_VENDOR_HDA_CTL, RT712_ADC0A_CS_ADC0B_FU_FLOAT_CTL, 0x1f1e); in rt712_sdca_vb_io_init()
1799 rt712_sdca_index_write(rt712, RT712_VENDOR_HDA_CTL, RT712_ADC0B_FU_CH12_FLOAT_CTL, 0x0304); in rt712_sdca_vb_io_init()
1800 rt712_sdca_index_write(rt712, RT712_VENDOR_HDA_CTL, RT712_HDA_LEGACY_CONFIG_CTL0, 0x8010); in rt712_sdca_vb_io_init()
1802 SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY, RT712_SDCA_ENT_IT11, RT712_SDCA_CTL_VENDOR_DEF, 0), 0x01); in rt712_sdca_vb_io_init()
1803 rt712_sdca_index_write(rt712, RT712_ULTRA_SOUND_DET, RT712_ULTRA_SOUND_DETECTOR6, 0x3200); in rt712_sdca_vb_io_init()
1804 regmap_write(rt712->regmap, RT712_RC_CAL, 0x23); in rt712_sdca_vb_io_init()
1808 SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY, RT712_SDCA_ENT0, RT712_SDCA_CTL_FUNC_STATUS, 0), in rt712_sdca_vb_io_init()
1814 rt712_sdca_index_write(rt712, RT712_VENDOR_IMS_DRE, RT712_SEL_VEE2_HP_CTL1, 0x042a); in rt712_sdca_vb_io_init()
1815 rt712_sdca_index_write(rt712, RT712_CHARGE_PUMP, RT712_HP_DET_CTL3, 0x1fff); in rt712_sdca_vb_io_init()
1816 rt712_sdca_index_write(rt712, RT712_VENDOR_REG, RT712_IO_CTL, 0xec67); in rt712_sdca_vb_io_init()
1817 rt712_sdca_index_write(rt712, RT712_VENDOR_REG, RT712_ANALOG_BIAS_CTL3, 0xaa81); in rt712_sdca_vb_io_init()
1818 rt712_sdca_index_write(rt712, RT712_VENDOR_REG, RT712_LDO2_3_CTL1, 0xa1e0); in rt712_sdca_vb_io_init()
1819 rt712_sdca_index_write(rt712, RT712_VENDOR_IMS_DRE, RT712_HP_DETECT_RLDET_CTL1, 0x0000); in rt712_sdca_vb_io_init()
1820 rt712_sdca_index_write(rt712, RT712_VENDOR_IMS_DRE, RT712_HP_DETECT_RLDET_CTL2, 0x0000); in rt712_sdca_vb_io_init()
1821 regmap_write(rt712->regmap, RT712_RC_CAL, 0x23); in rt712_sdca_vb_io_init()
1822 rt712_sdca_index_write(rt712, RT712_VENDOR_REG, RT712_JD_CTL1, 0x2802); in rt712_sdca_vb_io_init()
1823 rt712_sdca_index_write(rt712, RT712_VENDOR_REG, RT712_CLASSD_AMP_CTL6, 0xf215); in rt712_sdca_vb_io_init()
1827 if (ret < 0) in rt712_sdca_vb_io_init()
1830 rt712_sdca_index_update_bits(rt712, RT712_VENDOR_HDA_CTL, RT712_MIXER_CTL1, 0x3000, 0x0000); in rt712_sdca_vb_io_init()
1832 SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT_IT09, RT712_SDCA_CTL_VENDOR_DEF, 0), 0x01); in rt712_sdca_vb_io_init()
1833 rt712_sdca_index_write(rt712, RT712_VENDOR_HDA_CTL, RT712_MISC_CTL_FOR_UAJ, 0x0003); in rt712_sdca_vb_io_init()
1837 SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT712_SDCA_ENT0, RT712_SDCA_CTL_FUNC_STATUS, 0), in rt712_sdca_vb_io_init()
1844 rt712_sdca_index_write(rt712, RT712_VENDOR_REG, RT712_IO_CTL, 0xec63); in rt712_sdca_vb_io_init()
1845 rt712_sdca_index_write(rt712, RT712_VENDOR_REG, RT712_CLASSD_AMP_CTL1, 0xfff5); in rt712_sdca_vb_io_init()
1846 rt712_sdca_index_write(rt712, RT712_VENDOR_HDA_CTL, RT712_EAPD_CTL, 0x0002); in rt712_sdca_vb_io_init()
1848 SDW_SDCA_CTL(FUNC_NUM_AMP, RT712_SDCA_ENT_OT23, RT712_SDCA_CTL_VENDOR_DEF, 0), 0x04); in rt712_sdca_vb_io_init()
1852 SDW_SDCA_CTL(FUNC_NUM_AMP, RT712_SDCA_ENT0, RT712_SDCA_CTL_FUNC_STATUS, 0), in rt712_sdca_vb_io_init()
1866 return 0; in rt712_sdca_io_init()
1885 rt712->hw_id = (val & 0xf000) >> 12; in rt712_sdca_io_init()
1886 rt712->version_id = (val & 0x0f00) >> 8; in rt712_sdca_io_init()
1887 …dev_dbg(&slave->dev, "%s hw_id=0x%x, version_id=0x%x\n", __func__, rt712->hw_id, rt712->version_id… in rt712_sdca_io_init()
1916 rt712_sdca_index_write(rt712, RT712_VENDOR_REG, RT712_SW_CONFIG1, 0x0001); in rt712_sdca_io_init()
1935 return 0; in rt712_sdca_io_init()