Lines Matching +full:0 +full:xaa00
35 #define RT5640_DEVICE_ID 0x6231
37 #define RT5640_PR_RANGE_BASE (0xff + 1)
38 #define RT5640_PR_SPACING 0x100
40 #define RT5640_PR_BASE (RT5640_PR_RANGE_BASE + (0 * RT5640_PR_SPACING))
44 .range_max = RT5640_PR_BASE + 0xb4,
46 .selector_mask = 0xff,
47 .selector_shift = 0x0,
49 .window_len = 0x1, },
53 {RT5640_PR_BASE + 0x3d, 0x3600},
54 {RT5640_PR_BASE + 0x12, 0x0aa8},
55 {RT5640_PR_BASE + 0x14, 0x0aaa},
56 {RT5640_PR_BASE + 0x20, 0x6110},
57 {RT5640_PR_BASE + 0x21, 0xe0e0},
58 {RT5640_PR_BASE + 0x23, 0x1804},
62 { 0x00, 0x000e },
63 { 0x01, 0xc8c8 },
64 { 0x02, 0xc8c8 },
65 { 0x03, 0xc8c8 },
66 { 0x04, 0x8000 },
67 { 0x0d, 0x0000 },
68 { 0x0e, 0x0000 },
69 { 0x0f, 0x0808 },
70 { 0x19, 0xafaf },
71 { 0x1a, 0xafaf },
72 { 0x1b, 0x0000 },
73 { 0x1c, 0x2f2f },
74 { 0x1d, 0x2f2f },
75 { 0x1e, 0x0000 },
76 { 0x27, 0x7060 },
77 { 0x28, 0x7070 },
78 { 0x29, 0x8080 },
79 { 0x2a, 0x5454 },
80 { 0x2b, 0x5454 },
81 { 0x2c, 0xaa00 },
82 { 0x2d, 0x0000 },
83 { 0x2e, 0xa000 },
84 { 0x2f, 0x0000 },
85 { 0x3b, 0x0000 },
86 { 0x3c, 0x007f },
87 { 0x3d, 0x0000 },
88 { 0x3e, 0x007f },
89 { 0x45, 0xe000 },
90 { 0x46, 0x003e },
91 { 0x47, 0x003e },
92 { 0x48, 0xf800 },
93 { 0x49, 0x3800 },
94 { 0x4a, 0x0004 },
95 { 0x4c, 0xfc00 },
96 { 0x4d, 0x0000 },
97 { 0x4f, 0x01ff },
98 { 0x50, 0x0000 },
99 { 0x51, 0x0000 },
100 { 0x52, 0x01ff },
101 { 0x53, 0xf000 },
102 { 0x61, 0x0000 },
103 { 0x62, 0x0000 },
104 { 0x63, 0x00c0 },
105 { 0x64, 0x0000 },
106 { 0x65, 0x0000 },
107 { 0x66, 0x0000 },
108 { 0x6a, 0x0000 },
109 { 0x6c, 0x0000 },
110 { 0x70, 0x8000 },
111 { 0x71, 0x8000 },
112 { 0x72, 0x8000 },
113 { 0x73, 0x1114 },
114 { 0x74, 0x0c00 },
115 { 0x75, 0x1d00 },
116 { 0x80, 0x0000 },
117 { 0x81, 0x0000 },
118 { 0x82, 0x0000 },
119 { 0x83, 0x0000 },
120 { 0x84, 0x0000 },
121 { 0x85, 0x0008 },
122 { 0x89, 0x0000 },
123 { 0x8a, 0x0000 },
124 { 0x8b, 0x0600 },
125 { 0x8c, 0x0228 },
126 { 0x8d, 0xa000 },
127 { 0x8e, 0x0004 },
128 { 0x8f, 0x1100 },
129 { 0x90, 0x0646 },
130 { 0x91, 0x0c00 },
131 { 0x92, 0x0000 },
132 { 0x93, 0x3000 },
133 { 0xb0, 0x2080 },
134 { 0xb1, 0x0000 },
135 { 0xb4, 0x2206 },
136 { 0xb5, 0x1f00 },
137 { 0xb6, 0x0000 },
138 { 0xb8, 0x034b },
139 { 0xb9, 0x0066 },
140 { 0xba, 0x000b },
141 { 0xbb, 0x0000 },
142 { 0xbc, 0x0000 },
143 { 0xbd, 0x0000 },
144 { 0xbe, 0x0000 },
145 { 0xbf, 0x0000 },
146 { 0xc0, 0x0400 },
147 { 0xc2, 0x0000 },
148 { 0xc4, 0x0000 },
149 { 0xc5, 0x0000 },
150 { 0xc6, 0x2000 },
151 { 0xc8, 0x0000 },
152 { 0xc9, 0x0000 },
153 { 0xca, 0x0000 },
154 { 0xcb, 0x0000 },
155 { 0xcc, 0x0000 },
156 { 0xcf, 0x0013 },
157 { 0xd0, 0x0680 },
158 { 0xd1, 0x1c17 },
159 { 0xd2, 0x8c00 },
160 { 0xd3, 0xaa20 },
161 { 0xd6, 0x0400 },
162 { 0xd9, 0x0809 },
163 { 0xfe, 0x10ec },
164 { 0xff, 0x6231 },
169 return snd_soc_component_write(component, RT5640_RESET, 0); in rt5640_reset()
176 for (i = 0; i < ARRAY_SIZE(rt5640_ranges); i++) in rt5640_volatile_register()
211 for (i = 0; i < ARRAY_SIZE(rt5640_ranges); i++) in rt5640_readable_register()
341 static const DECLARE_TLV_DB_SCALE(out_vol_tlv, -4650, 150, 0);
342 static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -65625, 375, 0);
343 static const DECLARE_TLV_DB_SCALE(in_vol_tlv, -3450, 150, 0);
344 static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -17625, 375, 0);
345 static const DECLARE_TLV_DB_SCALE(adc_bst_tlv, 0, 1200, 0);
347 /* {0, +20, +24, +30, +35, +40, +44, +50, +52} dB */
349 0, 0, TLV_DB_SCALE_ITEM(0, 0, 0),
350 1, 1, TLV_DB_SCALE_ITEM(2000, 0, 0),
351 2, 2, TLV_DB_SCALE_ITEM(2400, 0, 0),
352 3, 5, TLV_DB_SCALE_ITEM(3000, 500, 0),
353 6, 6, TLV_DB_SCALE_ITEM(4400, 0, 0),
354 7, 7, TLV_DB_SCALE_ITEM(5000, 0, 0),
355 8, 8, TLV_DB_SCALE_ITEM(5200, 0, 0)
405 175, 0, dac_vol_tlv),
408 RT5640_BST_SFT1, 8, 0, bst_tlv),
410 RT5640_BST_SFT2, 8, 0, bst_tlv),
412 RT5640_BST_SFT2, 8, 0, bst_tlv),
423 127, 0, adc_vol_tlv),
428 127, 0, adc_vol_tlv),
432 3, 0, adc_bst_tlv),
448 RT5640_L_VOL_SFT, RT5640_R_VOL_SFT, 175, 0, dac_vol_tlv),
469 if (idx < 0) in set_dmic_clk()
484 return 0; in is_using_asrc()
860 0,
866 0x3, rt5640_dac_l2_src, rt5640_dac_l2_values);
876 0,
881 0x3, rt5640_dac_r2_src, rt5640_dac_r2_values);
892 0,
900 0x7, rt5640_dai_iis_map,
923 RT5640_CHPUMP_INT_REG1, 0x0700, 0x0200); in hp_amp_power_on()
930 0x9f00); in hp_amp_power_on()
933 RT5640_PWR_FV1 | RT5640_PWR_FV2, 0); in hp_amp_power_on()
960 RT5640_MAMP_INT_REG2, 0x1c00); in rt5640_pmu_depop()
965 RT5640_CHPUMP_INT_REG1, 0x0700, 0x0400); in rt5640_pmu_depop()
986 return 0; in rt5640_hp_event()
989 return 0; in rt5640_hp_event()
1003 RT5640_L_MUTE | RT5640_R_MUTE, 0); in rt5640_lout_event()
1011 RT5640_PWR_LM, 0); in rt5640_lout_event()
1015 return 0; in rt5640_lout_event()
1018 return 0; in rt5640_lout_event()
1031 return 0; in rt5640_hp_power_event()
1034 return 0; in rt5640_hp_power_event()
1051 return 0; in rt5640_hp_post_event()
1054 return 0; in rt5640_hp_post_event()
1060 15, 0, NULL, 0),
1062 12, 0, NULL, 0),
1064 11, 0, NULL, 0),
1066 9, 0, NULL, 0),
1068 8, 0, NULL, 0),
1074 RT5640_PWR_LDO2_BIT, 0, NULL, 0),
1076 RT5640_PWR_MB1_BIT, 0, NULL, 0),
1086 SND_SOC_DAPM_PGA("DMIC L1", SND_SOC_NOPM, 0, 0, NULL, 0),
1087 SND_SOC_DAPM_PGA("DMIC R1", SND_SOC_NOPM, 0, 0, NULL, 0),
1088 SND_SOC_DAPM_PGA("DMIC L2", SND_SOC_NOPM, 0, 0, NULL, 0),
1089 SND_SOC_DAPM_PGA("DMIC R2", SND_SOC_NOPM, 0, 0, NULL, 0),
1091 SND_SOC_DAPM_SUPPLY("DMIC CLK", SND_SOC_NOPM, 0, 0,
1093 SND_SOC_DAPM_SUPPLY("DMIC1 Power", RT5640_DMIC, RT5640_DMIC_1_EN_SFT, 0,
1094 NULL, 0),
1095 SND_SOC_DAPM_SUPPLY("DMIC2 Power", RT5640_DMIC, RT5640_DMIC_2_EN_SFT, 0,
1096 NULL, 0),
1099 RT5640_PWR_BST1_BIT, 0, NULL, 0),
1101 RT5640_PWR_BST4_BIT, 0, NULL, 0),
1103 RT5640_PWR_BST2_BIT, 0, NULL, 0),
1106 RT5640_PWR_IN_L_BIT, 0, NULL, 0),
1108 RT5640_PWR_IN_R_BIT, 0, NULL, 0),
1110 SND_SOC_DAPM_MIXER("RECMIXL", RT5640_PWR_MIXER, RT5640_PWR_RM_L_BIT, 0,
1112 SND_SOC_DAPM_MIXER("RECMIXR", RT5640_PWR_MIXER, RT5640_PWR_RM_R_BIT, 0,
1116 RT5640_PWR_ADC_L_BIT, 0),
1118 RT5640_PWR_ADC_R_BIT, 0),
1120 SND_SOC_DAPM_MUX("Stereo ADC L2 Mux", SND_SOC_NOPM, 0, 0,
1122 SND_SOC_DAPM_MUX("Stereo ADC R2 Mux", SND_SOC_NOPM, 0, 0,
1124 SND_SOC_DAPM_MUX("Stereo ADC L1 Mux", SND_SOC_NOPM, 0, 0,
1126 SND_SOC_DAPM_MUX("Stereo ADC R1 Mux", SND_SOC_NOPM, 0, 0,
1128 SND_SOC_DAPM_MUX("Mono ADC L2 Mux", SND_SOC_NOPM, 0, 0,
1130 SND_SOC_DAPM_MUX("Mono ADC L1 Mux", SND_SOC_NOPM, 0, 0,
1132 SND_SOC_DAPM_MUX("Mono ADC R1 Mux", SND_SOC_NOPM, 0, 0,
1134 SND_SOC_DAPM_MUX("Mono ADC R2 Mux", SND_SOC_NOPM, 0, 0,
1138 RT5640_PWR_ADC_SF_BIT, 0, NULL, 0),
1139 SND_SOC_DAPM_MIXER("Stereo ADC MIXL", SND_SOC_NOPM, 0, 0,
1141 SND_SOC_DAPM_MIXER("Stereo ADC MIXR", SND_SOC_NOPM, 0, 0,
1144 RT5640_PWR_ADC_MF_L_BIT, 0, NULL, 0),
1145 SND_SOC_DAPM_MIXER("Mono ADC MIXL", SND_SOC_NOPM, 0, 0,
1148 RT5640_PWR_ADC_MF_R_BIT, 0, NULL, 0),
1149 SND_SOC_DAPM_MIXER("Mono ADC MIXR", SND_SOC_NOPM, 0, 0,
1154 RT5640_PWR_I2S1_BIT, 0, NULL, 0),
1155 SND_SOC_DAPM_PGA("IF1 DAC", SND_SOC_NOPM, 0, 0, NULL, 0),
1156 SND_SOC_DAPM_PGA("IF1 DAC L", SND_SOC_NOPM, 0, 0, NULL, 0),
1157 SND_SOC_DAPM_PGA("IF1 DAC R", SND_SOC_NOPM, 0, 0, NULL, 0),
1158 SND_SOC_DAPM_PGA("IF1 ADC", SND_SOC_NOPM, 0, 0, NULL, 0),
1159 SND_SOC_DAPM_PGA("IF1 ADC L", SND_SOC_NOPM, 0, 0, NULL, 0),
1160 SND_SOC_DAPM_PGA("IF1 ADC R", SND_SOC_NOPM, 0, 0, NULL, 0),
1162 RT5640_PWR_I2S2_BIT, 0, NULL, 0),
1163 SND_SOC_DAPM_PGA("IF2 DAC", SND_SOC_NOPM, 0, 0, NULL, 0),
1164 SND_SOC_DAPM_PGA("IF2 DAC L", SND_SOC_NOPM, 0, 0, NULL, 0),
1165 SND_SOC_DAPM_PGA("IF2 DAC R", SND_SOC_NOPM, 0, 0, NULL, 0),
1166 SND_SOC_DAPM_PGA("IF2 ADC", SND_SOC_NOPM, 0, 0, NULL, 0),
1167 SND_SOC_DAPM_PGA("IF2 ADC L", SND_SOC_NOPM, 0, 0, NULL, 0),
1168 SND_SOC_DAPM_PGA("IF2 ADC R", SND_SOC_NOPM, 0, 0, NULL, 0),
1170 SND_SOC_DAPM_MUX("DAI1 RX Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1171 SND_SOC_DAPM_MUX("DAI1 TX Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1172 SND_SOC_DAPM_MUX("DAI1 IF1 Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1173 SND_SOC_DAPM_MUX("DAI1 IF2 Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1174 SND_SOC_DAPM_MUX("SDI1 TX Mux", SND_SOC_NOPM, 0, 0, &rt5640_sdi_mux),
1175 SND_SOC_DAPM_MUX("DAI2 RX Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1176 SND_SOC_DAPM_MUX("DAI2 TX Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1177 SND_SOC_DAPM_MUX("DAI2 IF1 Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1178 SND_SOC_DAPM_MUX("DAI2 IF2 Mux", SND_SOC_NOPM, 0, 0, &rt5640_dai_mux),
1179 SND_SOC_DAPM_MUX("SDI2 TX Mux", SND_SOC_NOPM, 0, 0, &rt5640_sdi_mux),
1181 SND_SOC_DAPM_AIF_IN("AIF1RX", "AIF1 Playback", 0, SND_SOC_NOPM, 0, 0),
1182 SND_SOC_DAPM_AIF_OUT("AIF1TX", "AIF1 Capture", 0, SND_SOC_NOPM, 0, 0),
1183 SND_SOC_DAPM_AIF_IN("AIF2RX", "AIF2 Playback", 0, SND_SOC_NOPM, 0, 0),
1184 SND_SOC_DAPM_AIF_OUT("AIF2TX", "AIF2 Capture", 0, SND_SOC_NOPM, 0, 0),
1188 SND_SOC_DAPM_MIXER("DAC MIXL", SND_SOC_NOPM, 0, 0,
1190 SND_SOC_DAPM_MIXER("DAC MIXR", SND_SOC_NOPM, 0, 0,
1194 SND_SOC_DAPM_MIXER("Mono DAC MIXL", SND_SOC_NOPM, 0, 0,
1196 SND_SOC_DAPM_MIXER("Mono DAC MIXR", SND_SOC_NOPM, 0, 0,
1198 SND_SOC_DAPM_MIXER("DIG MIXL", SND_SOC_NOPM, 0, 0,
1200 SND_SOC_DAPM_MIXER("DIG MIXR", SND_SOC_NOPM, 0, 0,
1204 0, 0),
1206 0, 0),
1208 RT5640_PWR_DAC_L1_BIT, 0, NULL, 0),
1210 RT5640_PWR_DAC_R1_BIT, 0, NULL, 0),
1212 RT5640_PWR_DAC_L2_BIT, 0, NULL, 0),
1214 RT5640_PWR_DAC_R2_BIT, 0, NULL, 0),
1217 0, rt5640_spk_l_mix, ARRAY_SIZE(rt5640_spk_l_mix)),
1219 0, rt5640_spk_r_mix, ARRAY_SIZE(rt5640_spk_r_mix)),
1222 RT5640_PWR_SV_L_BIT, 0, NULL, 0),
1224 RT5640_PWR_SV_R_BIT, 0, NULL, 0),
1226 RT5640_PWR_OV_L_BIT, 0, NULL, 0),
1228 RT5640_PWR_OV_R_BIT, 0, NULL, 0),
1230 RT5640_PWR_HV_L_BIT, 0, NULL, 0),
1232 RT5640_PWR_HV_R_BIT, 0, NULL, 0),
1234 SND_SOC_DAPM_MIXER("SPOL MIX", SND_SOC_NOPM, 0,
1235 0, rt5640_spo_l_mix, ARRAY_SIZE(rt5640_spo_l_mix)),
1236 SND_SOC_DAPM_MIXER("SPOR MIX", SND_SOC_NOPM, 0,
1237 0, rt5640_spo_r_mix, ARRAY_SIZE(rt5640_spo_r_mix)),
1238 SND_SOC_DAPM_MIXER("LOUT MIX", SND_SOC_NOPM, 0, 0,
1241 0, 0, rt5640_hp_power_event, SND_SOC_DAPM_POST_PMU),
1242 SND_SOC_DAPM_PGA_S("HP Amp", 1, SND_SOC_NOPM, 0, 0,
1245 SND_SOC_DAPM_PGA_S("LOUT amp", 1, SND_SOC_NOPM, 0, 0,
1249 RT5640_PWR_HP_L_BIT, 0, NULL, 0),
1251 RT5640_PWR_HP_R_BIT, 0, NULL, 0),
1253 RT5640_PWR_CLS_D_BIT, 0, NULL, 0),
1256 SND_SOC_DAPM_SWITCH("Speaker L Playback", SND_SOC_NOPM, 0, 0,
1258 SND_SOC_DAPM_SWITCH("Speaker R Playback", SND_SOC_NOPM, 0, 0,
1260 SND_SOC_DAPM_SWITCH("HP L Playback", SND_SOC_NOPM, 0, 0,
1262 SND_SOC_DAPM_SWITCH("HP R Playback", SND_SOC_NOPM, 0, 0,
1278 SND_SOC_DAPM_PGA("Audio DSP", SND_SOC_NOPM, 0, 0, NULL, 0),
1280 SND_SOC_DAPM_PGA("ANC", SND_SOC_NOPM, 0, 0, NULL, 0),
1283 SND_SOC_DAPM_MUX("DAC L2 Mux", SND_SOC_NOPM, 0, 0, &rt5640_dac_l2_mux),
1284 SND_SOC_DAPM_MUX("DAC R2 Mux", SND_SOC_NOPM, 0, 0, &rt5640_dac_r2_mux),
1286 SND_SOC_DAPM_MIXER("Stereo DAC MIXL", SND_SOC_NOPM, 0, 0,
1288 SND_SOC_DAPM_MIXER("Stereo DAC MIXR", SND_SOC_NOPM, 0, 0,
1291 SND_SOC_DAPM_DAC("DAC R2", NULL, SND_SOC_NOPM, 0,
1292 0),
1293 SND_SOC_DAPM_DAC("DAC L2", NULL, SND_SOC_NOPM, 0,
1294 0),
1297 0, rt5640_out_l_mix, ARRAY_SIZE(rt5640_out_l_mix)),
1299 0, rt5640_out_r_mix, ARRAY_SIZE(rt5640_out_r_mix)),
1301 SND_SOC_DAPM_MIXER("HPO MIX L", SND_SOC_NOPM, 0, 0,
1303 SND_SOC_DAPM_MIXER("HPO MIX R", SND_SOC_NOPM, 0, 0,
1306 SND_SOC_DAPM_MIXER("Mono MIX", RT5640_PWR_ANLG1, RT5640_PWR_MM_BIT, 0,
1309 RT5640_PWR_MA_BIT, 0, NULL, 0),
1316 SND_SOC_DAPM_MIXER("Stereo DAC MIXL", SND_SOC_NOPM, 0, 0,
1318 SND_SOC_DAPM_MIXER("Stereo DAC MIXR", SND_SOC_NOPM, 0, 0,
1322 0, rt5639_out_l_mix, ARRAY_SIZE(rt5639_out_l_mix)),
1324 0, rt5639_out_r_mix, ARRAY_SIZE(rt5639_out_r_mix)),
1326 SND_SOC_DAPM_MIXER("HPO MIX L", SND_SOC_NOPM, 0, 0,
1328 SND_SOC_DAPM_MIXER("HPO MIX R", SND_SOC_NOPM, 0, 0,
1649 int ret = 0, val; in get_sdp_info()
1702 unsigned int val_len = 0, val_clk, mask_clk; in rt5640_hw_params()
1707 if (pre_div < 0) { in rt5640_hw_params()
1713 if (frame_size < 0) { in rt5640_hw_params()
1720 bclk_ms = 0; in rt5640_hw_params()
1745 if (dai_sel < 0) { in rt5640_hw_params()
1766 return 0; in rt5640_hw_params()
1773 unsigned int reg_val = 0; in rt5640_set_dai_fmt()
1782 rt5640->master[dai->id] = 0; in rt5640_set_dai_fmt()
1815 if (dai_sel < 0) { in rt5640_set_dai_fmt()
1830 return 0; in rt5640_set_dai_fmt()
1838 unsigned int reg_val = 0; in rt5640_set_dai_sysclk()
1839 unsigned int pll_bit = 0; in rt5640_set_dai_sysclk()
1842 return 0; in rt5640_set_dai_sysclk()
1867 return 0; in rt5640_set_dai_sysclk()
1880 return 0; in rt5640_set_dai_pll()
1885 rt5640->pll_in = 0; in rt5640_set_dai_pll()
1886 rt5640->pll_out = 0; in rt5640_set_dai_pll()
1889 return 0; in rt5640_set_dai_pll()
1911 if (ret < 0) { in rt5640_set_dai_pll()
1917 pll_code.m_bp, (pll_code.m_bp ? 0 : pll_code.m_code), in rt5640_set_dai_pll()
1923 (pll_code.m_bp ? 0 : pll_code.m_code) << RT5640_PLL_M_SFT | in rt5640_set_dai_pll()
1930 return 0; in rt5640_set_dai_pll()
1975 0x0301, 0x0301); in rt5640_set_bias_level()
1977 0x0030, 0x0030); in rt5640_set_bias_level()
1982 snd_soc_component_write(component, RT5640_DEPOP_M1, 0x0004); in rt5640_set_bias_level()
1983 snd_soc_component_write(component, RT5640_DEPOP_M2, 0x1100); in rt5640_set_bias_level()
1984 snd_soc_component_update_bits(component, RT5640_DUMMY1, 0x1, 0); in rt5640_set_bias_level()
1985 snd_soc_component_write(component, RT5640_PWR_DIG1, 0x0000); in rt5640_set_bias_level()
1986 snd_soc_component_write(component, RT5640_PWR_DIG2, 0x0000); in rt5640_set_bias_level()
1987 snd_soc_component_write(component, RT5640_PWR_VOL, 0x0000); in rt5640_set_bias_level()
1988 snd_soc_component_write(component, RT5640_PWR_MIXER, 0x0000); in rt5640_set_bias_level()
1989 snd_soc_component_write(component, RT5640_PWR_ANLG1, 0x0000); in rt5640_set_bias_level()
1990 snd_soc_component_write(component, RT5640_PWR_ANLG2, 0x0000); in rt5640_set_bias_level()
1997 return 0; in rt5640_set_bias_level()
2022 return 0; in rt5640_dmic_enable()
2030 unsigned int asrc2_mask = 0; in rt5640_sel_asrc_clk_src()
2031 unsigned int asrc2_value = 0; in rt5640_sel_asrc_clk_src()
2086 snd_soc_component_update_bits(component, RT5640_JD_CTRL, 0x3, 0x3); in rt5640_sel_asrc_clk_src()
2089 snd_soc_component_update_bits(component, RT5640_JD_CTRL, 0x3, 0x0); in rt5640_sel_asrc_clk_src()
2092 return 0; in rt5640_sel_asrc_clk_src()
2142 RT5640_MB1_OC_STATUS, 0); in rt5640_clear_micbias1_ovcd()
2182 rt5640->poll_count = 0; in rt5640_start_button_press_work()
2183 rt5640->press_count = 0; in rt5640_start_button_press_work()
2184 rt5640->release_count = 0; in rt5640_start_button_press_work()
2202 rt5640->release_count = 0; in rt5640_button_press_work()
2209 rt5640->press_count = 0; in rt5640_button_press_work()
2234 snd_soc_jack_report(rt5640->jack, 0, SND_JACK_BTN_0); in rt5640_button_press_work()
2246 int i, headset_count = 0, headphone_count = 0; in rt5640_detect_headset()
2255 for (i = 0; i < JACK_DETECT_MAXCOUNT; i++) { in rt5640_detect_headset()
2263 return 0; in rt5640_detect_headset()
2272 headset_count = 0; in rt5640_detect_headset()
2278 headphone_count = 0; in rt5640_detect_headset()
2304 snd_soc_jack_report(rt5640->jack, 0, in rt5640_jack_work()
2329 * The disable will make the IRQ pin 0 again and since we get in rt5640_jack_work()
2383 snd_soc_component_write(component, RT5640_DUMMY1, 0x3f41); in rt5640_enable_jack_detect()
2386 snd_soc_component_write(component, RT5640_DUMMY2, 0x4001); in rt5640_enable_jack_detect()
2389 0xa800 | rt5640->ovcd_sf); in rt5640_enable_jack_detect()
2399 * leading to the ovcd status flip-flopping 1-0-1 with it being 0 about in rt5640_enable_jack_detect()
2408 * All IRQs get or-ed together, so we need the jack IRQ to report 0 in rt5640_enable_jack_detect()
2410 * pin 0/1 instead of it being stuck to 1. So we invert the JD polarity in rt5640_enable_jack_detect()
2448 snd_soc_jack_report(rt5640->jack, 0, SND_JACK_BTN_0); in rt5640_disable_jack_detect()
2462 return 0; in rt5640_set_jack()
2469 u32 dmic1_data_pin = 0; in rt5640_probe()
2470 u32 dmic2_data_pin = 0; in rt5640_probe()
2483 snd_soc_component_update_bits(component, RT5640_DUMMY1, 0x0301, 0x0301); in rt5640_probe()
2484 snd_soc_component_update_bits(component, RT5640_MICBIAS, 0x0030, 0x0030); in rt5640_probe()
2485 snd_soc_component_update_bits(component, RT5640_DSP_PATH2, 0xfc00, 0x0c00); in rt5640_probe()
2534 &val) == 0 && val) { in rt5640_probe()
2540 &val) == 0 && val) { in rt5640_probe()
2549 "realtek,jack-detect-source", &val) == 0) { in rt5640_probe()
2569 "realtek,over-current-threshold-microamp", &val) == 0) { in rt5640_probe()
2587 "realtek,over-current-scale-factor", &val) == 0) { in rt5640_probe()
2595 return 0; in rt5640_probe()
2613 gpio_set_value_cansleep(rt5640->ldo1_en, 0); in rt5640_suspend()
2615 return 0; in rt5640_suspend()
2630 return 0; in rt5640_resume()
2727 { "rt5640", 0 },
2728 { "rt5639", 0 },
2729 { "rt5642", 0 },
2745 { "INT33CA", 0 },
2746 { "10EC3276", 0 },
2747 { "10EC5640", 0 },
2748 { "10EC5642", 0 },
2749 { "INTCCFFD", 0 },
2757 rt5640->ldo1_en = of_get_named_gpio(np, "realtek,ldo1-en-gpios", 0); in rt5640_parse_dt()
2768 return 0; in rt5640_parse_dt()
2804 if (ret < 0) { in rt5640_i2c_probe()
2819 regmap_write(rt5640->regmap, RT5640_RESET, 0); in rt5640_i2c_probe()
2823 if (ret != 0) in rt5640_i2c_probe()
2842 if (ret == 0) { in rt5640_i2c_probe()