Lines Matching +full:0 +full:xaa00
38 #define RT5640_DEVICE_ID 0x6231
40 #define RT5640_PR_RANGE_BASE (0xff + 1)
41 #define RT5640_PR_SPACING 0x100
43 #define RT5640_PR_BASE (RT5640_PR_RANGE_BASE + (0 * RT5640_PR_SPACING))
47 .range_max = RT5640_PR_BASE + 0xb4,
49 .selector_mask = 0xff,
50 .selector_shift = 0x0,
52 .window_len = 0x1, },
56 {RT5640_PR_BASE + 0x3d, 0x3600},
57 {RT5640_PR_BASE + 0x12, 0x0aa8},
58 {RT5640_PR_BASE + 0x14, 0x0aaa},
59 {RT5640_PR_BASE + 0x20, 0x6110},
60 {RT5640_PR_BASE + 0x21, 0xe0e0},
61 {RT5640_PR_BASE + 0x23, 0x1804},
65 { 0x00, 0x000e },
66 { 0x01, 0xc8c8 },
67 { 0x02, 0xc8c8 },
68 { 0x03, 0xc8c8 },
69 { 0x04, 0x8000 },
70 { 0x0d, 0x0000 },
71 { 0x0e, 0x0000 },
72 { 0x0f, 0x0808 },
73 { 0x19, 0xafaf },
74 { 0x1a, 0xafaf },
75 { 0x1b, 0x0000 },
76 { 0x1c, 0x2f2f },
77 { 0x1d, 0x2f2f },
78 { 0x1e, 0x0000 },
79 { 0x27, 0x7060 },
80 { 0x28, 0x7070 },
81 { 0x29, 0x8080 },
82 { 0x2a, 0x5454 },
83 { 0x2b, 0x5454 },
84 { 0x2c, 0xaa00 },
85 { 0x2d, 0x0000 },
86 { 0x2e, 0xa000 },
87 { 0x2f, 0x0000 },
88 { 0x3b, 0x0000 },
89 { 0x3c, 0x007f },
90 { 0x3d, 0x0000 },
91 { 0x3e, 0x007f },
92 { 0x45, 0xe000 },
93 { 0x46, 0x003e },
94 { 0x47, 0x003e },
95 { 0x48, 0xf800 },
96 { 0x49, 0x3800 },
97 { 0x4a, 0x0004 },
98 { 0x4c, 0xfc00 },
99 { 0x4d, 0x0000 },
100 { 0x4f, 0x01ff },
101 { 0x50, 0x0000 },
102 { 0x51, 0x0000 },
103 { 0x52, 0x01ff },
104 { 0x53, 0xf000 },
105 { 0x61, 0x0000 },
106 { 0x62, 0x0000 },
107 { 0x63, 0x00c0 },
108 { 0x64, 0x0000 },
109 { 0x65, 0x0000 },
110 { 0x66, 0x0000 },
111 { 0x6a, 0x0000 },
112 { 0x6c, 0x0000 },
113 { 0x70, 0x8000 },
114 { 0x71, 0x8000 },
115 { 0x72, 0x8000 },
116 { 0x73, 0x1114 },
117 { 0x74, 0x0c00 },
118 { 0x75, 0x1d00 },
119 { 0x80, 0x0000 },
120 { 0x81, 0x0000 },
121 { 0x82, 0x0000 },
122 { 0x83, 0x0000 },
123 { 0x84, 0x0000 },
124 { 0x85, 0x0008 },
125 { 0x89, 0x0000 },
126 { 0x8a, 0x0000 },
127 { 0x8b, 0x0600 },
128 { 0x8c, 0x0228 },
129 { 0x8d, 0xa000 },
130 { 0x8e, 0x0004 },
131 { 0x8f, 0x1100 },
132 { 0x90, 0x0646 },
133 { 0x91, 0x0c00 },
134 { 0x92, 0x0000 },
135 { 0x93, 0x3000 },
136 { 0xb0, 0x2080 },
137 { 0xb1, 0x0000 },
138 { 0xb4, 0x2206 },
139 { 0xb5, 0x1f00 },
140 { 0xb6, 0x0000 },
141 { 0xb8, 0x034b },
142 { 0xb9, 0x0066 },
143 { 0xba, 0x000b },
144 { 0xbb, 0x0000 },
145 { 0xbc, 0x0000 },
146 { 0xbd, 0x0000 },
147 { 0xbe, 0x0000 },
148 { 0xbf, 0x0000 },
149 { 0xc0, 0x0400 },
150 { 0xc2, 0x0000 },
151 { 0xc4, 0x0000 },
152 { 0xc5, 0x0000 },
153 { 0xc6, 0x2000 },
154 { 0xc8, 0x0000 },
155 { 0xc9, 0x0000 },
156 { 0xca, 0x0000 },
157 { 0xcb, 0x0000 },
158 { 0xcc, 0x0000 },
159 { 0xcf, 0x0013 },
160 { 0xd0, 0x0680 },
161 { 0xd1, 0x1c17 },
162 { 0xd2, 0x8c00 },
163 { 0xd3, 0xaa20 },
164 { 0xd6, 0x0400 },
165 { 0xd9, 0x0809 },
166 { 0xfe, 0x10ec },
167 { 0xff, 0x6231 },
172 return snd_soc_component_write(component, RT5640_RESET, 0); in rt5640_reset()
179 for (i = 0; i < ARRAY_SIZE(rt5640_ranges); i++) in rt5640_volatile_register()
214 for (i = 0; i < ARRAY_SIZE(rt5640_ranges); i++) in rt5640_readable_register()
344 static const DECLARE_TLV_DB_SCALE(out_vol_tlv, -4650, 150, 0);
345 static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -65625, 375, 0);
346 static const DECLARE_TLV_DB_SCALE(in_vol_tlv, -3450, 150, 0);
347 static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -17625, 375, 0);
348 static const DECLARE_TLV_DB_SCALE(adc_bst_tlv, 0, 1200, 0);
350 /* {0, +20, +24, +30, +35, +40, +44, +50, +52} dB */
352 0, 0, TLV_DB_SCALE_ITEM(0, 0, 0),
353 1, 1, TLV_DB_SCALE_ITEM(2000, 0, 0),
354 2, 2, TLV_DB_SCALE_ITEM(2400, 0, 0),
355 3, 5, TLV_DB_SCALE_ITEM(3000, 500, 0),
356 6, 6, TLV_DB_SCALE_ITEM(4400, 0, 0),
357 7, 7, TLV_DB_SCALE_ITEM(5000, 0, 0),
358 8, 8, TLV_DB_SCALE_ITEM(5200, 0, 0)
408 175, 0, dac_vol_tlv),
411 RT5640_BST_SFT1, 8, 0, bst_tlv),
413 RT5640_BST_SFT2, 8, 0, bst_tlv),
415 RT5640_BST_SFT2, 8, 0, bst_tlv),
426 127, 0, adc_vol_tlv),
431 127, 0, adc_vol_tlv),
435 3, 0, adc_bst_tlv),
451 RT5640_L_VOL_SFT, RT5640_R_VOL_SFT, 175, 0, dac_vol_tlv),
472 if (idx < 0) in set_dmic_clk()
487 return 0; in is_using_asrc()
863 0,
869 0x3, rt5640_dac_l2_src, rt5640_dac_l2_values);
879 0,
884 0x3, rt5640_dac_r2_src, rt5640_dac_r2_values);
895 0,
903 0x7, rt5640_dai_iis_map,
926 RT5640_CHPUMP_INT_REG1, 0x0700, 0x0200); in hp_amp_power_on()
933 0x9f00); in hp_amp_power_on()
936 RT5640_PWR_FV1 | RT5640_PWR_FV2, 0); in hp_amp_power_on()
963 RT5640_MAMP_INT_REG2, 0x1c00); in rt5640_pmu_depop()
968 RT5640_CHPUMP_INT_REG1, 0x0700, 0x0400); in rt5640_pmu_depop()
980 rt5640->hp_mute = 0; in rt5640_hp_event()
989 return 0; in rt5640_hp_event()
992 return 0; in rt5640_hp_event()
1006 RT5640_L_MUTE | RT5640_R_MUTE, 0); in rt5640_lout_event()
1014 RT5640_PWR_LM, 0); in rt5640_lout_event()
1018 return 0; in rt5640_lout_event()
1021 return 0; in rt5640_lout_event()
1034 return 0; in rt5640_hp_power_event()
1037 return 0; in rt5640_hp_power_event()
1054 return 0; in rt5640_hp_post_event()
1057 return 0; in rt5640_hp_post_event()
1063 15, 0, NULL, 0),
1065 12, 0, NULL, 0),
1067 11, 0, NULL, 0),
1069 9, 0, NULL, 0),
1071 8, 0, NULL, 0),
1077 RT5640_PWR_LDO2_BIT, 0, NULL, 0),
1079 RT5640_PWR_MB1_BIT, 0, NULL, 0),
1089 SND_SOC_DAPM_PGA("DMIC L1", SND_SOC_NOPM, 0, 0, NULL, 0),
1090 SND_SOC_DAPM_PGA("DMIC R1", SND_SOC_NOPM, 0, 0, NULL, 0),
1091 SND_SOC_DAPM_PGA("DMIC L2", SND_SOC_NOPM, 0, 0, NULL, 0),
1092 SND_SOC_DAPM_PGA("DMIC R2", SND_SOC_NOPM, 0, 0, NULL, 0),
1094 SND_SOC_DAPM_SUPPLY("DMIC CLK", SND_SOC_NOPM, 0, 0,
1096 SND_SOC_DAPM_SUPPLY("DMIC1 Power", RT5640_DMIC, RT5640_DMIC_1_EN_SFT, 0,
1097 NULL, 0),
1098 SND_SOC_DAPM_SUPPLY("DMIC2 Power", RT5640_DMIC, RT5640_DMIC_2_EN_SFT, 0,
1099 NULL, 0),
1102 RT5640_PWR_BST1_BIT, 0, NULL, 0),
1104 RT5640_PWR_BST4_BIT, 0, NULL, 0),
1106 RT5640_PWR_BST2_BIT, 0, NULL, 0),
1109 RT5640_PWR_IN_L_BIT, 0, NULL, 0),
1111 RT5640_PWR_IN_R_BIT, 0, NULL, 0),
1113 SND_SOC_DAPM_MIXER("RECMIXL", RT5640_PWR_MIXER, RT5640_PWR_RM_L_BIT, 0,
1115 SND_SOC_DAPM_MIXER("RECMIXR", RT5640_PWR_MIXER, RT5640_PWR_RM_R_BIT, 0,
1119 RT5640_PWR_ADC_L_BIT, 0),
1121 RT5640_PWR_ADC_R_BIT, 0),
1123 SND_SOC_DAPM_MUX("Stereo ADC L2 Mux", SND_SOC_NOPM, 0, 0,
1125 SND_SOC_DAPM_MUX("Stereo ADC R2 Mux", SND_SOC_NOPM, 0, 0,
1127 SND_SOC_DAPM_MUX("Stereo ADC L1 Mux", SND_SOC_NOPM, 0, 0,
1129 SND_SOC_DAPM_MUX("Stereo ADC R1 Mux", SND_SOC_NOPM, 0, 0,
1131 SND_SOC_DAPM_MUX("Mono ADC L2 Mux", SND_SOC_NOPM, 0, 0,
1133 SND_SOC_DAPM_MUX("Mono ADC L1 Mux", SND_SOC_NOPM, 0, 0,
1135 SND_SOC_DAPM_MUX("Mono ADC R1 Mux", SND_SOC_NOPM, 0, 0,
1137 SND_SOC_DAPM_MUX("Mono ADC R2 Mux", SND_SOC_NOPM, 0, 0,
1141 RT5640_PWR_ADC_SF_BIT, 0, NULL, 0),
1142 SND_SOC_DAPM_MIXER("Stereo ADC MIXL", SND_SOC_NOPM, 0, 0,
1144 SND_SOC_DAPM_MIXER("Stereo ADC MIXR", SND_SOC_NOPM, 0, 0,
1147 RT5640_PWR_ADC_MF_L_BIT, 0, NULL, 0),
1148 SND_SOC_DAPM_MIXER("Mono ADC MIXL", SND_SOC_NOPM, 0, 0,
1151 RT5640_PWR_ADC_MF_R_BIT, 0, NULL, 0),
1152 SND_SOC_DAPM_MIXER("Mono ADC MIXR", SND_SOC_NOPM, 0, 0,
1157 RT5640_PWR_I2S1_BIT, 0, NULL, 0),
1158 SND_SOC_DAPM_PGA("IF1 DAC", SND_SOC_NOPM, 0, 0, NULL, 0),
1159 SND_SOC_DAPM_PGA("IF1 DAC L", SND_SOC_NOPM, 0, 0, NULL, 0),
1160 SND_SOC_DAPM_PGA("IF1 DAC R", SND_SOC_NOPM, 0, 0, NULL, 0),
1161 SND_SOC_DAPM_PGA("IF1 ADC", SND_SOC_NOPM, 0, 0, NULL, 0),
1162 SND_SOC_DAPM_PGA("IF1 ADC L", SND_SOC_NOPM, 0, 0, NULL, 0),
1163 SND_SOC_DAPM_PGA("IF1 ADC R", SND_SOC_NOPM, 0, 0, NULL, 0),
1165 RT5640_PWR_I2S2_BIT, 0, NULL, 0),
1166 SND_SOC_DAPM_PGA("IF2 DAC", SND_SOC_NOPM, 0, 0, NULL, 0),
1167 SND_SOC_DAPM_PGA("IF2 DAC L", SND_SOC_NOPM, 0, 0, NULL, 0),
1168 SND_SOC_DAPM_PGA("IF2 DAC R", SND_SOC_NOPM, 0, 0, NULL, 0),
1169 SND_SOC_DAPM_PGA("IF2 ADC", SND_SOC_NOPM, 0, 0, NULL, 0),
1170 SND_SOC_DAPM_PGA("IF2 ADC L", SND_SOC_NOPM, 0, 0, NULL, 0),
1171 SND_SOC_DAPM_PGA("IF2 ADC R", SND_SOC_NOPM, 0, 0, NULL, 0),
1173 SND_SOC_DAPM_MUX("DAI1 RX Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1174 SND_SOC_DAPM_MUX("DAI1 TX Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1175 SND_SOC_DAPM_MUX("DAI1 IF1 Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1176 SND_SOC_DAPM_MUX("DAI1 IF2 Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1177 SND_SOC_DAPM_MUX("SDI1 TX Mux", SND_SOC_NOPM, 0, 0, &rt5640_sdi_mux),
1178 SND_SOC_DAPM_MUX("DAI2 RX Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1179 SND_SOC_DAPM_MUX("DAI2 TX Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1180 SND_SOC_DAPM_MUX("DAI2 IF1 Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1181 SND_SOC_DAPM_MUX("DAI2 IF2 Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1182 SND_SOC_DAPM_MUX("SDI2 TX Mux", SND_SOC_NOPM, 0, 0, &rt5640_sdi_mux),
1184 SND_SOC_DAPM_AIF_IN("AIF1RX", "AIF1 Playback", 0, SND_SOC_NOPM, 0, 0),
1185 SND_SOC_DAPM_AIF_OUT("AIF1TX", "AIF1 Capture", 0, SND_SOC_NOPM, 0, 0),
1186 SND_SOC_DAPM_AIF_IN("AIF2RX", "AIF2 Playback", 0, SND_SOC_NOPM, 0, 0),
1187 SND_SOC_DAPM_AIF_OUT("AIF2TX", "AIF2 Capture", 0, SND_SOC_NOPM, 0, 0),
1191 SND_SOC_DAPM_MIXER("DAC MIXL", SND_SOC_NOPM, 0, 0,
1193 SND_SOC_DAPM_MIXER("DAC MIXR", SND_SOC_NOPM, 0, 0,
1197 SND_SOC_DAPM_MIXER("Mono DAC MIXL", SND_SOC_NOPM, 0, 0,
1199 SND_SOC_DAPM_MIXER("Mono DAC MIXR", SND_SOC_NOPM, 0, 0,
1201 SND_SOC_DAPM_MIXER("DIG MIXL", SND_SOC_NOPM, 0, 0,
1203 SND_SOC_DAPM_MIXER("DIG MIXR", SND_SOC_NOPM, 0, 0,
1207 0, 0),
1209 0, 0),
1211 RT5640_PWR_DAC_L1_BIT, 0, NULL, 0),
1213 RT5640_PWR_DAC_R1_BIT, 0, NULL, 0),
1215 RT5640_PWR_DAC_L2_BIT, 0, NULL, 0),
1217 RT5640_PWR_DAC_R2_BIT, 0, NULL, 0),
1220 0, rt5640_spk_l_mix, ARRAY_SIZE(rt5640_spk_l_mix)),
1222 0, rt5640_spk_r_mix, ARRAY_SIZE(rt5640_spk_r_mix)),
1225 RT5640_PWR_SV_L_BIT, 0, NULL, 0),
1227 RT5640_PWR_SV_R_BIT, 0, NULL, 0),
1229 RT5640_PWR_OV_L_BIT, 0, NULL, 0),
1231 RT5640_PWR_OV_R_BIT, 0, NULL, 0),
1233 RT5640_PWR_HV_L_BIT, 0, NULL, 0),
1235 RT5640_PWR_HV_R_BIT, 0, NULL, 0),
1237 SND_SOC_DAPM_MIXER("SPOL MIX", SND_SOC_NOPM, 0,
1238 0, rt5640_spo_l_mix, ARRAY_SIZE(rt5640_spo_l_mix)),
1239 SND_SOC_DAPM_MIXER("SPOR MIX", SND_SOC_NOPM, 0,
1240 0, rt5640_spo_r_mix, ARRAY_SIZE(rt5640_spo_r_mix)),
1241 SND_SOC_DAPM_MIXER("LOUT MIX", SND_SOC_NOPM, 0, 0,
1244 0, 0, rt5640_hp_power_event, SND_SOC_DAPM_POST_PMU),
1245 SND_SOC_DAPM_PGA_S("HP Amp", 1, SND_SOC_NOPM, 0, 0,
1248 SND_SOC_DAPM_PGA_S("LOUT amp", 1, SND_SOC_NOPM, 0, 0,
1252 RT5640_PWR_HP_L_BIT, 0, NULL, 0),
1254 RT5640_PWR_HP_R_BIT, 0, NULL, 0),
1256 RT5640_PWR_CLS_D_BIT, 0, NULL, 0),
1259 SND_SOC_DAPM_SWITCH("Speaker L Playback", SND_SOC_NOPM, 0, 0,
1261 SND_SOC_DAPM_SWITCH("Speaker R Playback", SND_SOC_NOPM, 0, 0,
1263 SND_SOC_DAPM_SWITCH("HP L Playback", SND_SOC_NOPM, 0, 0,
1265 SND_SOC_DAPM_SWITCH("HP R Playback", SND_SOC_NOPM, 0, 0,
1281 SND_SOC_DAPM_PGA("Audio DSP", SND_SOC_NOPM, 0, 0, NULL, 0),
1283 SND_SOC_DAPM_PGA("ANC", SND_SOC_NOPM, 0, 0, NULL, 0),
1286 SND_SOC_DAPM_MUX("DAC L2 Mux", SND_SOC_NOPM, 0, 0, &rt5640_dac_l2_mux),
1287 SND_SOC_DAPM_MUX("DAC R2 Mux", SND_SOC_NOPM, 0, 0, &rt5640_dac_r2_mux),
1289 SND_SOC_DAPM_MIXER("Stereo DAC MIXL", SND_SOC_NOPM, 0, 0,
1291 SND_SOC_DAPM_MIXER("Stereo DAC MIXR", SND_SOC_NOPM, 0, 0,
1294 SND_SOC_DAPM_DAC("DAC R2", NULL, SND_SOC_NOPM, 0,
1295 0),
1296 SND_SOC_DAPM_DAC("DAC L2", NULL, SND_SOC_NOPM, 0,
1297 0),
1300 0, rt5640_out_l_mix, ARRAY_SIZE(rt5640_out_l_mix)),
1302 0, rt5640_out_r_mix, ARRAY_SIZE(rt5640_out_r_mix)),
1304 SND_SOC_DAPM_MIXER("HPO MIX L", SND_SOC_NOPM, 0, 0,
1306 SND_SOC_DAPM_MIXER("HPO MIX R", SND_SOC_NOPM, 0, 0,
1309 SND_SOC_DAPM_MIXER("Mono MIX", RT5640_PWR_ANLG1, RT5640_PWR_MM_BIT, 0,
1312 RT5640_PWR_MA_BIT, 0, NULL, 0),
1319 SND_SOC_DAPM_MIXER("Stereo DAC MIXL", SND_SOC_NOPM, 0, 0,
1321 SND_SOC_DAPM_MIXER("Stereo DAC MIXR", SND_SOC_NOPM, 0, 0,
1325 0, rt5639_out_l_mix, ARRAY_SIZE(rt5639_out_l_mix)),
1327 0, rt5639_out_r_mix, ARRAY_SIZE(rt5639_out_r_mix)),
1329 SND_SOC_DAPM_MIXER("HPO MIX L", SND_SOC_NOPM, 0, 0,
1331 SND_SOC_DAPM_MIXER("HPO MIX R", SND_SOC_NOPM, 0, 0,
1652 int ret = 0, val; in get_sdp_info()
1705 unsigned int val_len = 0, val_clk, mask_clk; in rt5640_hw_params()
1710 if (pre_div < 0) { in rt5640_hw_params()
1716 if (frame_size < 0) { in rt5640_hw_params()
1723 bclk_ms = 0; in rt5640_hw_params()
1748 if (dai_sel < 0) { in rt5640_hw_params()
1769 return 0; in rt5640_hw_params()
1776 unsigned int reg_val = 0; in rt5640_set_dai_fmt()
1785 rt5640->master[dai->id] = 0; in rt5640_set_dai_fmt()
1818 if (dai_sel < 0) { in rt5640_set_dai_fmt()
1833 return 0; in rt5640_set_dai_fmt()
1841 unsigned int reg_val = 0; in rt5640_set_dai_sysclk()
1842 unsigned int pll_bit = 0; in rt5640_set_dai_sysclk()
1845 return 0; in rt5640_set_dai_sysclk()
1870 return 0; in rt5640_set_dai_sysclk()
1883 return 0; in rt5640_set_dai_pll()
1888 rt5640->pll_in = 0; in rt5640_set_dai_pll()
1889 rt5640->pll_out = 0; in rt5640_set_dai_pll()
1892 return 0; in rt5640_set_dai_pll()
1914 if (ret < 0) { in rt5640_set_dai_pll()
1920 pll_code.m_bp, (pll_code.m_bp ? 0 : pll_code.m_code), in rt5640_set_dai_pll()
1926 (pll_code.m_bp ? 0 : pll_code.m_code) << RT5640_PLL_M_SFT | in rt5640_set_dai_pll()
1933 return 0; in rt5640_set_dai_pll()
1978 0x0301, 0x0301); in rt5640_set_bias_level()
1980 0x0030, 0x0030); in rt5640_set_bias_level()
1985 snd_soc_component_write(component, RT5640_DEPOP_M1, 0x0004); in rt5640_set_bias_level()
1986 snd_soc_component_write(component, RT5640_DEPOP_M2, 0x1100); in rt5640_set_bias_level()
1987 snd_soc_component_update_bits(component, RT5640_DUMMY1, 0x1, 0); in rt5640_set_bias_level()
1988 snd_soc_component_write(component, RT5640_PWR_DIG1, 0x0000); in rt5640_set_bias_level()
1989 snd_soc_component_write(component, RT5640_PWR_DIG2, 0x0000); in rt5640_set_bias_level()
1990 snd_soc_component_write(component, RT5640_PWR_VOL, 0x0000); in rt5640_set_bias_level()
1991 snd_soc_component_write(component, RT5640_PWR_MIXER, 0x0000); in rt5640_set_bias_level()
1992 snd_soc_component_write(component, RT5640_PWR_ANLG1, 0x0000); in rt5640_set_bias_level()
1993 snd_soc_component_write(component, RT5640_PWR_ANLG2, 0x0000); in rt5640_set_bias_level()
2000 return 0; in rt5640_set_bias_level()
2025 return 0; in rt5640_dmic_enable()
2033 unsigned int asrc2_mask = 0; in rt5640_sel_asrc_clk_src()
2034 unsigned int asrc2_value = 0; in rt5640_sel_asrc_clk_src()
2089 snd_soc_component_update_bits(component, RT5640_JD_CTRL, 0x3, 0x3); in rt5640_sel_asrc_clk_src()
2092 snd_soc_component_update_bits(component, RT5640_JD_CTRL, 0x3, 0x0); in rt5640_sel_asrc_clk_src()
2095 return 0; in rt5640_sel_asrc_clk_src()
2145 RT5640_MB1_OC_STATUS, 0); in rt5640_clear_micbias1_ovcd()
2185 rt5640->poll_count = 0; in rt5640_start_button_press_work()
2186 rt5640->press_count = 0; in rt5640_start_button_press_work()
2187 rt5640->release_count = 0; in rt5640_start_button_press_work()
2205 rt5640->release_count = 0; in rt5640_button_press_work()
2212 rt5640->press_count = 0; in rt5640_button_press_work()
2237 snd_soc_jack_report(rt5640->jack, 0, SND_JACK_BTN_0); in rt5640_button_press_work()
2249 int i, headset_count = 0, headphone_count = 0; in rt5640_detect_headset()
2258 for (i = 0; i < JACK_DETECT_MAXCOUNT; i++) { in rt5640_detect_headset()
2266 return 0; in rt5640_detect_headset()
2275 headset_count = 0; in rt5640_detect_headset()
2281 headphone_count = 0; in rt5640_detect_headset()
2307 snd_soc_jack_report(rt5640->jack, 0, in rt5640_jack_work()
2332 * The disable will make the IRQ pin 0 again and since we get in rt5640_jack_work()
2386 snd_soc_component_write(component, RT5640_DUMMY1, 0x3f41); in rt5640_enable_jack_detect()
2389 snd_soc_component_write(component, RT5640_DUMMY2, 0x4001); in rt5640_enable_jack_detect()
2392 0xa800 | rt5640->ovcd_sf); in rt5640_enable_jack_detect()
2402 * leading to the ovcd status flip-flopping 1-0-1 with it being 0 about in rt5640_enable_jack_detect()
2411 * All IRQs get or-ed together, so we need the jack IRQ to report 0 in rt5640_enable_jack_detect()
2413 * pin 0/1 instead of it being stuck to 1. So we invert the JD polarity in rt5640_enable_jack_detect()
2451 snd_soc_jack_report(rt5640->jack, 0, SND_JACK_BTN_0); in rt5640_disable_jack_detect()
2465 return 0; in rt5640_set_jack()
2472 u32 dmic1_data_pin = 0; in rt5640_probe()
2473 u32 dmic2_data_pin = 0; in rt5640_probe()
2486 snd_soc_component_update_bits(component, RT5640_DUMMY1, 0x0301, 0x0301); in rt5640_probe()
2487 snd_soc_component_update_bits(component, RT5640_MICBIAS, 0x0030, 0x0030); in rt5640_probe()
2488 snd_soc_component_update_bits(component, RT5640_DSP_PATH2, 0xfc00, 0x0c00); in rt5640_probe()
2537 &val) == 0 && val) { in rt5640_probe()
2543 &val) == 0 && val) { in rt5640_probe()
2552 "realtek,jack-detect-source", &val) == 0) { in rt5640_probe()
2572 "realtek,over-current-threshold-microamp", &val) == 0) { in rt5640_probe()
2590 "realtek,over-current-scale-factor", &val) == 0) { in rt5640_probe()
2598 return 0; in rt5640_probe()
2616 gpio_set_value_cansleep(rt5640->ldo1_en, 0); in rt5640_suspend()
2618 return 0; in rt5640_suspend()
2633 return 0; in rt5640_resume()
2729 { "rt5640", 0 },
2730 { "rt5639", 0 },
2731 { "rt5642", 0 },
2747 { "INT33CA", 0 },
2748 { "10EC3276", 0 },
2749 { "10EC5640", 0 },
2750 { "10EC5642", 0 },
2751 { "INTCCFFD", 0 },
2759 rt5640->ldo1_en = of_get_named_gpio(np, "realtek,ldo1-en-gpios", 0); in rt5640_parse_dt()
2770 return 0; in rt5640_parse_dt()
2806 if (ret < 0) { in rt5640_i2c_probe()
2821 regmap_write(rt5640->regmap, RT5640_RESET, 0); in rt5640_i2c_probe()
2825 if (ret != 0) in rt5640_i2c_probe()
2844 if (ret == 0) { in rt5640_i2c_probe()