1
2
3
4
5
6
7
8
9
10 #ifndef __WM9090_H
11 #define __WM9090_H
12
13
14
15
16 #define WM9090_SOFTWARE_RESET 0x00
17 #define WM9090_POWER_MANAGEMENT_1 0x01
18 #define WM9090_POWER_MANAGEMENT_2 0x02
19 #define WM9090_POWER_MANAGEMENT_3 0x03
20 #define WM9090_CLOCKING_1 0x06
21 #define WM9090_IN1_LINE_CONTROL 0x16
22 #define WM9090_IN2_LINE_CONTROL 0x17
23 #define WM9090_IN1_LINE_INPUT_A_VOLUME 0x18
24 #define WM9090_IN1_LINE_INPUT_B_VOLUME 0x19
25 #define WM9090_IN2_LINE_INPUT_A_VOLUME 0x1A
26 #define WM9090_IN2_LINE_INPUT_B_VOLUME 0x1B
27 #define WM9090_LEFT_OUTPUT_VOLUME 0x1C
28 #define WM9090_RIGHT_OUTPUT_VOLUME 0x1D
29 #define WM9090_SPKMIXL_ATTENUATION 0x22
30 #define WM9090_SPKOUT_MIXERS 0x24
31 #define WM9090_CLASSD3 0x25
32 #define WM9090_SPEAKER_VOLUME_LEFT 0x26
33 #define WM9090_OUTPUT_MIXER1 0x2D
34 #define WM9090_OUTPUT_MIXER2 0x2E
35 #define WM9090_OUTPUT_MIXER3 0x2F
36 #define WM9090_OUTPUT_MIXER4 0x30
37 #define WM9090_SPEAKER_MIXER 0x36
38 #define WM9090_ANTIPOP2 0x39
39 #define WM9090_WRITE_SEQUENCER_0 0x46
40 #define WM9090_WRITE_SEQUENCER_1 0x47
41 #define WM9090_WRITE_SEQUENCER_2 0x48
42 #define WM9090_WRITE_SEQUENCER_3 0x49
43 #define WM9090_WRITE_SEQUENCER_4 0x4A
44 #define WM9090_WRITE_SEQUENCER_5 0x4B
45 #define WM9090_CHARGE_PUMP_1 0x4C
46 #define WM9090_DC_SERVO_0 0x54
47 #define WM9090_DC_SERVO_1 0x55
48 #define WM9090_DC_SERVO_3 0x57
49 #define WM9090_DC_SERVO_READBACK_0 0x58
50 #define WM9090_DC_SERVO_READBACK_1 0x59
51 #define WM9090_DC_SERVO_READBACK_2 0x5A
52 #define WM9090_ANALOGUE_HP_0 0x60
53 #define WM9090_AGC_CONTROL_0 0x62
54 #define WM9090_AGC_CONTROL_1 0x63
55 #define WM9090_AGC_CONTROL_2 0x64
56
57 #define WM9090_REGISTER_COUNT 40
58 #define WM9090_MAX_REGISTER 0x64
59
60
61
62
63
64
65
66
67 #define WM9090_SW_RESET_MASK 0xFFFF
68 #define WM9090_SW_RESET_SHIFT 0
69 #define WM9090_SW_RESET_WIDTH 16
70
71
72
73
74 #define WM9090_SPKOUTL_ENA 0x1000
75 #define WM9090_SPKOUTL_ENA_MASK 0x1000
76 #define WM9090_SPKOUTL_ENA_SHIFT 12
77 #define WM9090_SPKOUTL_ENA_WIDTH 1
78 #define WM9090_HPOUT1L_ENA 0x0200
79 #define WM9090_HPOUT1L_ENA_MASK 0x0200
80 #define WM9090_HPOUT1L_ENA_SHIFT 9
81 #define WM9090_HPOUT1L_ENA_WIDTH 1
82 #define WM9090_HPOUT1R_ENA 0x0100
83 #define WM9090_HPOUT1R_ENA_MASK 0x0100
84 #define WM9090_HPOUT1R_ENA_SHIFT 8
85 #define WM9090_HPOUT1R_ENA_WIDTH 1
86 #define WM9090_OSC_ENA 0x0008
87 #define WM9090_OSC_ENA_MASK 0x0008
88 #define WM9090_OSC_ENA_SHIFT 3
89 #define WM9090_OSC_ENA_WIDTH 1
90 #define WM9090_VMID_RES_MASK 0x0006
91 #define WM9090_VMID_RES_SHIFT 1
92 #define WM9090_VMID_RES_WIDTH 2
93 #define WM9090_BIAS_ENA 0x0001
94 #define WM9090_BIAS_ENA_MASK 0x0001
95 #define WM9090_BIAS_ENA_SHIFT 0
96 #define WM9090_BIAS_ENA_WIDTH 1
97
98
99
100
101 #define WM9090_TSHUT 0x8000
102 #define WM9090_TSHUT_MASK 0x8000
103 #define WM9090_TSHUT_SHIFT 15
104 #define WM9090_TSHUT_WIDTH 1
105 #define WM9090_TSHUT_ENA 0x4000
106 #define WM9090_TSHUT_ENA_MASK 0x4000
107 #define WM9090_TSHUT_ENA_SHIFT 14
108 #define WM9090_TSHUT_ENA_WIDTH 1
109 #define WM9090_TSHUT_OPDIS 0x2000
110 #define WM9090_TSHUT_OPDIS_MASK 0x2000
111 #define WM9090_TSHUT_OPDIS_SHIFT 13
112 #define WM9090_TSHUT_OPDIS_WIDTH 1
113 #define WM9090_IN1A_ENA 0x0080
114 #define WM9090_IN1A_ENA_MASK 0x0080
115 #define WM9090_IN1A_ENA_SHIFT 7
116 #define WM9090_IN1A_ENA_WIDTH 1
117 #define WM9090_IN1B_ENA 0x0040
118 #define WM9090_IN1B_ENA_MASK 0x0040
119 #define WM9090_IN1B_ENA_SHIFT 6
120 #define WM9090_IN1B_ENA_WIDTH 1
121 #define WM9090_IN2A_ENA 0x0020
122 #define WM9090_IN2A_ENA_MASK 0x0020
123 #define WM9090_IN2A_ENA_SHIFT 5
124 #define WM9090_IN2A_ENA_WIDTH 1
125 #define WM9090_IN2B_ENA 0x0010
126 #define WM9090_IN2B_ENA_MASK 0x0010
127 #define WM9090_IN2B_ENA_SHIFT 4
128 #define WM9090_IN2B_ENA_WIDTH 1
129
130
131
132
133 #define WM9090_AGC_ENA 0x4000
134 #define WM9090_AGC_ENA_MASK 0x4000
135 #define WM9090_AGC_ENA_SHIFT 14
136 #define WM9090_AGC_ENA_WIDTH 1
137 #define WM9090_SPKLVOL_ENA 0x0100
138 #define WM9090_SPKLVOL_ENA_MASK 0x0100
139 #define WM9090_SPKLVOL_ENA_SHIFT 8
140 #define WM9090_SPKLVOL_ENA_WIDTH 1
141 #define WM9090_MIXOUTL_ENA 0x0020
142 #define WM9090_MIXOUTL_ENA_MASK 0x0020
143 #define WM9090_MIXOUTL_ENA_SHIFT 5
144 #define WM9090_MIXOUTL_ENA_WIDTH 1
145 #define WM9090_MIXOUTR_ENA 0x0010
146 #define WM9090_MIXOUTR_ENA_MASK 0x0010
147 #define WM9090_MIXOUTR_ENA_SHIFT 4
148 #define WM9090_MIXOUTR_ENA_WIDTH 1
149 #define WM9090_SPKMIX_ENA 0x0008
150 #define WM9090_SPKMIX_ENA_MASK 0x0008
151 #define WM9090_SPKMIX_ENA_SHIFT 3
152 #define WM9090_SPKMIX_ENA_WIDTH 1
153
154
155
156
157 #define WM9090_TOCLK_RATE 0x8000
158 #define WM9090_TOCLK_RATE_MASK 0x8000
159 #define WM9090_TOCLK_RATE_SHIFT 15
160 #define WM9090_TOCLK_RATE_WIDTH 1
161 #define WM9090_TOCLK_ENA 0x4000
162 #define WM9090_TOCLK_ENA_MASK 0x4000
163 #define WM9090_TOCLK_ENA_SHIFT 14
164 #define WM9090_TOCLK_ENA_WIDTH 1
165
166
167
168
169 #define WM9090_IN1_DIFF 0x0002
170 #define WM9090_IN1_DIFF_MASK 0x0002
171 #define WM9090_IN1_DIFF_SHIFT 1
172 #define WM9090_IN1_DIFF_WIDTH 1
173 #define WM9090_IN1_CLAMP 0x0001
174 #define WM9090_IN1_CLAMP_MASK 0x0001
175 #define WM9090_IN1_CLAMP_SHIFT 0
176 #define WM9090_IN1_CLAMP_WIDTH 1
177
178
179
180
181 #define WM9090_IN2_DIFF 0x0002
182 #define WM9090_IN2_DIFF_MASK 0x0002
183 #define WM9090_IN2_DIFF_SHIFT 1
184 #define WM9090_IN2_DIFF_WIDTH 1
185 #define WM9090_IN2_CLAMP 0x0001
186 #define WM9090_IN2_CLAMP_MASK 0x0001
187 #define WM9090_IN2_CLAMP_SHIFT 0
188 #define WM9090_IN2_CLAMP_WIDTH 1
189
190
191
192
193 #define WM9090_IN1_VU 0x0100
194 #define WM9090_IN1_VU_MASK 0x0100
195 #define WM9090_IN1_VU_SHIFT 8
196 #define WM9090_IN1_VU_WIDTH 1
197 #define WM9090_IN1A_MUTE 0x0080
198 #define WM9090_IN1A_MUTE_MASK 0x0080
199 #define WM9090_IN1A_MUTE_SHIFT 7
200 #define WM9090_IN1A_MUTE_WIDTH 1
201 #define WM9090_IN1A_ZC 0x0040
202 #define WM9090_IN1A_ZC_MASK 0x0040
203 #define WM9090_IN1A_ZC_SHIFT 6
204 #define WM9090_IN1A_ZC_WIDTH 1
205 #define WM9090_IN1A_VOL_MASK 0x0007
206 #define WM9090_IN1A_VOL_SHIFT 0
207 #define WM9090_IN1A_VOL_WIDTH 3
208
209
210
211
212 #define WM9090_IN1_VU 0x0100
213 #define WM9090_IN1_VU_MASK 0x0100
214 #define WM9090_IN1_VU_SHIFT 8
215 #define WM9090_IN1_VU_WIDTH 1
216 #define WM9090_IN1B_MUTE 0x0080
217 #define WM9090_IN1B_MUTE_MASK 0x0080
218 #define WM9090_IN1B_MUTE_SHIFT 7
219 #define WM9090_IN1B_MUTE_WIDTH 1
220 #define WM9090_IN1B_ZC 0x0040
221 #define WM9090_IN1B_ZC_MASK 0x0040
222 #define WM9090_IN1B_ZC_SHIFT 6
223 #define WM9090_IN1B_ZC_WIDTH 1
224 #define WM9090_IN1B_VOL_MASK 0x0007
225 #define WM9090_IN1B_VOL_SHIFT 0
226 #define WM9090_IN1B_VOL_WIDTH 3
227
228
229
230
231 #define WM9090_IN2_VU 0x0100
232 #define WM9090_IN2_VU_MASK 0x0100
233 #define WM9090_IN2_VU_SHIFT 8
234 #define WM9090_IN2_VU_WIDTH 1
235 #define WM9090_IN2A_MUTE 0x0080
236 #define WM9090_IN2A_MUTE_MASK 0x0080
237 #define WM9090_IN2A_MUTE_SHIFT 7
238 #define WM9090_IN2A_MUTE_WIDTH 1
239 #define WM9090_IN2A_ZC 0x0040
240 #define WM9090_IN2A_ZC_MASK 0x0040
241 #define WM9090_IN2A_ZC_SHIFT 6
242 #define WM9090_IN2A_ZC_WIDTH 1
243 #define WM9090_IN2A_VOL_MASK 0x0007
244 #define WM9090_IN2A_VOL_SHIFT 0
245 #define WM9090_IN2A_VOL_WIDTH 3
246
247
248
249
250 #define WM9090_IN2_VU 0x0100
251 #define WM9090_IN2_VU_MASK 0x0100
252 #define WM9090_IN2_VU_SHIFT 8
253 #define WM9090_IN2_VU_WIDTH 1
254 #define WM9090_IN2B_MUTE 0x0080
255 #define WM9090_IN2B_MUTE_MASK 0x0080
256 #define WM9090_IN2B_MUTE_SHIFT 7
257 #define WM9090_IN2B_MUTE_WIDTH 1
258 #define WM9090_IN2B_ZC 0x0040
259 #define WM9090_IN2B_ZC_MASK 0x0040
260 #define WM9090_IN2B_ZC_SHIFT 6
261 #define WM9090_IN2B_ZC_WIDTH 1
262 #define WM9090_IN2B_VOL_MASK 0x0007
263 #define WM9090_IN2B_VOL_SHIFT 0
264 #define WM9090_IN2B_VOL_WIDTH 3
265
266
267
268
269 #define WM9090_HPOUT1_VU 0x0100
270 #define WM9090_HPOUT1_VU_MASK 0x0100
271 #define WM9090_HPOUT1_VU_SHIFT 8
272 #define WM9090_HPOUT1_VU_WIDTH 1
273 #define WM9090_HPOUT1L_ZC 0x0080
274 #define WM9090_HPOUT1L_ZC_MASK 0x0080
275 #define WM9090_HPOUT1L_ZC_SHIFT 7
276 #define WM9090_HPOUT1L_ZC_WIDTH 1
277 #define WM9090_HPOUT1L_MUTE 0x0040
278 #define WM9090_HPOUT1L_MUTE_MASK 0x0040
279 #define WM9090_HPOUT1L_MUTE_SHIFT 6
280 #define WM9090_HPOUT1L_MUTE_WIDTH 1
281 #define WM9090_HPOUT1L_VOL_MASK 0x003F
282 #define WM9090_HPOUT1L_VOL_SHIFT 0
283 #define WM9090_HPOUT1L_VOL_WIDTH 6
284
285
286
287
288 #define WM9090_HPOUT1_VU 0x0100
289 #define WM9090_HPOUT1_VU_MASK 0x0100
290 #define WM9090_HPOUT1_VU_SHIFT 8
291 #define WM9090_HPOUT1_VU_WIDTH 1
292 #define WM9090_HPOUT1R_ZC 0x0080
293 #define WM9090_HPOUT1R_ZC_MASK 0x0080
294 #define WM9090_HPOUT1R_ZC_SHIFT 7
295 #define WM9090_HPOUT1R_ZC_WIDTH 1
296 #define WM9090_HPOUT1R_MUTE 0x0040
297 #define WM9090_HPOUT1R_MUTE_MASK 0x0040
298 #define WM9090_HPOUT1R_MUTE_SHIFT 6
299 #define WM9090_HPOUT1R_MUTE_WIDTH 1
300 #define WM9090_HPOUT1R_VOL_MASK 0x003F
301 #define WM9090_HPOUT1R_VOL_SHIFT 0
302 #define WM9090_HPOUT1R_VOL_WIDTH 6
303
304
305
306
307 #define WM9090_SPKMIX_MUTE 0x0100
308 #define WM9090_SPKMIX_MUTE_MASK 0x0100
309 #define WM9090_SPKMIX_MUTE_SHIFT 8
310 #define WM9090_SPKMIX_MUTE_WIDTH 1
311 #define WM9090_IN1A_SPKMIX_VOL_MASK 0x00C0
312 #define WM9090_IN1A_SPKMIX_VOL_SHIFT 6
313 #define WM9090_IN1A_SPKMIX_VOL_WIDTH 2
314 #define WM9090_IN1B_SPKMIX_VOL_MASK 0x0030
315 #define WM9090_IN1B_SPKMIX_VOL_SHIFT 4
316 #define WM9090_IN1B_SPKMIX_VOL_WIDTH 2
317 #define WM9090_IN2A_SPKMIX_VOL_MASK 0x000C
318 #define WM9090_IN2A_SPKMIX_VOL_SHIFT 2
319 #define WM9090_IN2A_SPKMIX_VOL_WIDTH 2
320 #define WM9090_IN2B_SPKMIX_VOL_MASK 0x0003
321 #define WM9090_IN2B_SPKMIX_VOL_SHIFT 0
322 #define WM9090_IN2B_SPKMIX_VOL_WIDTH 2
323
324
325
326
327 #define WM9090_SPKMIXL_TO_SPKOUTL 0x0010
328 #define WM9090_SPKMIXL_TO_SPKOUTL_MASK 0x0010
329 #define WM9090_SPKMIXL_TO_SPKOUTL_SHIFT 4
330 #define WM9090_SPKMIXL_TO_SPKOUTL_WIDTH 1
331
332
333
334
335 #define WM9090_SPKOUTL_BOOST_MASK 0x0038
336 #define WM9090_SPKOUTL_BOOST_SHIFT 3
337 #define WM9090_SPKOUTL_BOOST_WIDTH 3
338
339
340
341
342 #define WM9090_SPKOUT_VU 0x0100
343 #define WM9090_SPKOUT_VU_MASK 0x0100
344 #define WM9090_SPKOUT_VU_SHIFT 8
345 #define WM9090_SPKOUT_VU_WIDTH 1
346 #define WM9090_SPKOUTL_ZC 0x0080
347 #define WM9090_SPKOUTL_ZC_MASK 0x0080
348 #define WM9090_SPKOUTL_ZC_SHIFT 7
349 #define WM9090_SPKOUTL_ZC_WIDTH 1
350 #define WM9090_SPKOUTL_MUTE 0x0040
351 #define WM9090_SPKOUTL_MUTE_MASK 0x0040
352 #define WM9090_SPKOUTL_MUTE_SHIFT 6
353 #define WM9090_SPKOUTL_MUTE_WIDTH 1
354 #define WM9090_SPKOUTL_VOL_MASK 0x003F
355 #define WM9090_SPKOUTL_VOL_SHIFT 0
356 #define WM9090_SPKOUTL_VOL_WIDTH 6
357
358
359
360
361 #define WM9090_IN1A_TO_MIXOUTL 0x0040
362 #define WM9090_IN1A_TO_MIXOUTL_MASK 0x0040
363 #define WM9090_IN1A_TO_MIXOUTL_SHIFT 6
364 #define WM9090_IN1A_TO_MIXOUTL_WIDTH 1
365 #define WM9090_IN2A_TO_MIXOUTL 0x0004
366 #define WM9090_IN2A_TO_MIXOUTL_MASK 0x0004
367 #define WM9090_IN2A_TO_MIXOUTL_SHIFT 2
368 #define WM9090_IN2A_TO_MIXOUTL_WIDTH 1
369
370
371
372
373 #define WM9090_IN1A_TO_MIXOUTR 0x0040
374 #define WM9090_IN1A_TO_MIXOUTR_MASK 0x0040
375 #define WM9090_IN1A_TO_MIXOUTR_SHIFT 6
376 #define WM9090_IN1A_TO_MIXOUTR_WIDTH 1
377 #define WM9090_IN1B_TO_MIXOUTR 0x0010
378 #define WM9090_IN1B_TO_MIXOUTR_MASK 0x0010
379 #define WM9090_IN1B_TO_MIXOUTR_SHIFT 4
380 #define WM9090_IN1B_TO_MIXOUTR_WIDTH 1
381 #define WM9090_IN2A_TO_MIXOUTR 0x0004
382 #define WM9090_IN2A_TO_MIXOUTR_MASK 0x0004
383 #define WM9090_IN2A_TO_MIXOUTR_SHIFT 2
384 #define WM9090_IN2A_TO_MIXOUTR_WIDTH 1
385 #define WM9090_IN2B_TO_MIXOUTR 0x0001
386 #define WM9090_IN2B_TO_MIXOUTR_MASK 0x0001
387 #define WM9090_IN2B_TO_MIXOUTR_SHIFT 0
388 #define WM9090_IN2B_TO_MIXOUTR_WIDTH 1
389
390
391
392
393 #define WM9090_MIXOUTL_MUTE 0x0100
394 #define WM9090_MIXOUTL_MUTE_MASK 0x0100
395 #define WM9090_MIXOUTL_MUTE_SHIFT 8
396 #define WM9090_MIXOUTL_MUTE_WIDTH 1
397 #define WM9090_IN1A_MIXOUTL_VOL_MASK 0x00C0
398 #define WM9090_IN1A_MIXOUTL_VOL_SHIFT 6
399 #define WM9090_IN1A_MIXOUTL_VOL_WIDTH 2
400 #define WM9090_IN2A_MIXOUTL_VOL_MASK 0x000C
401 #define WM9090_IN2A_MIXOUTL_VOL_SHIFT 2
402 #define WM9090_IN2A_MIXOUTL_VOL_WIDTH 2
403
404
405
406
407 #define WM9090_MIXOUTR_MUTE 0x0100
408 #define WM9090_MIXOUTR_MUTE_MASK 0x0100
409 #define WM9090_MIXOUTR_MUTE_SHIFT 8
410 #define WM9090_MIXOUTR_MUTE_WIDTH 1
411 #define WM9090_IN1A_MIXOUTR_VOL_MASK 0x00C0
412 #define WM9090_IN1A_MIXOUTR_VOL_SHIFT 6
413 #define WM9090_IN1A_MIXOUTR_VOL_WIDTH 2
414 #define WM9090_IN1B_MIXOUTR_VOL_MASK 0x0030
415 #define WM9090_IN1B_MIXOUTR_VOL_SHIFT 4
416 #define WM9090_IN1B_MIXOUTR_VOL_WIDTH 2
417 #define WM9090_IN2A_MIXOUTR_VOL_MASK 0x000C
418 #define WM9090_IN2A_MIXOUTR_VOL_SHIFT 2
419 #define WM9090_IN2A_MIXOUTR_VOL_WIDTH 2
420 #define WM9090_IN2B_MIXOUTR_VOL_MASK 0x0003
421 #define WM9090_IN2B_MIXOUTR_VOL_SHIFT 0
422 #define WM9090_IN2B_MIXOUTR_VOL_WIDTH 2
423
424
425
426
427 #define WM9090_IN1A_TO_SPKMIX 0x0040
428 #define WM9090_IN1A_TO_SPKMIX_MASK 0x0040
429 #define WM9090_IN1A_TO_SPKMIX_SHIFT 6
430 #define WM9090_IN1A_TO_SPKMIX_WIDTH 1
431 #define WM9090_IN1B_TO_SPKMIX 0x0010
432 #define WM9090_IN1B_TO_SPKMIX_MASK 0x0010
433 #define WM9090_IN1B_TO_SPKMIX_SHIFT 4
434 #define WM9090_IN1B_TO_SPKMIX_WIDTH 1
435 #define WM9090_IN2A_TO_SPKMIX 0x0004
436 #define WM9090_IN2A_TO_SPKMIX_MASK 0x0004
437 #define WM9090_IN2A_TO_SPKMIX_SHIFT 2
438 #define WM9090_IN2A_TO_SPKMIX_WIDTH 1
439 #define WM9090_IN2B_TO_SPKMIX 0x0001
440 #define WM9090_IN2B_TO_SPKMIX_MASK 0x0001
441 #define WM9090_IN2B_TO_SPKMIX_SHIFT 0
442 #define WM9090_IN2B_TO_SPKMIX_WIDTH 1
443
444
445
446
447 #define WM9090_VMID_BUF_ENA 0x0008
448 #define WM9090_VMID_BUF_ENA_MASK 0x0008
449 #define WM9090_VMID_BUF_ENA_SHIFT 3
450 #define WM9090_VMID_BUF_ENA_WIDTH 1
451 #define WM9090_VMID_ENA 0x0001
452 #define WM9090_VMID_ENA_MASK 0x0001
453 #define WM9090_VMID_ENA_SHIFT 0
454 #define WM9090_VMID_ENA_WIDTH 1
455
456
457
458
459 #define WM9090_WSEQ_ENA 0x0100
460 #define WM9090_WSEQ_ENA_MASK 0x0100
461 #define WM9090_WSEQ_ENA_SHIFT 8
462 #define WM9090_WSEQ_ENA_WIDTH 1
463 #define WM9090_WSEQ_WRITE_INDEX_MASK 0x000F
464 #define WM9090_WSEQ_WRITE_INDEX_SHIFT 0
465 #define WM9090_WSEQ_WRITE_INDEX_WIDTH 4
466
467
468
469
470 #define WM9090_WSEQ_DATA_WIDTH_MASK 0x7000
471 #define WM9090_WSEQ_DATA_WIDTH_SHIFT 12
472 #define WM9090_WSEQ_DATA_WIDTH_WIDTH 3
473 #define WM9090_WSEQ_DATA_START_MASK 0x0F00
474 #define WM9090_WSEQ_DATA_START_SHIFT 8
475 #define WM9090_WSEQ_DATA_START_WIDTH 4
476 #define WM9090_WSEQ_ADDR_MASK 0x00FF
477 #define WM9090_WSEQ_ADDR_SHIFT 0
478 #define WM9090_WSEQ_ADDR_WIDTH 8
479
480
481
482
483 #define WM9090_WSEQ_EOS 0x4000
484 #define WM9090_WSEQ_EOS_MASK 0x4000
485 #define WM9090_WSEQ_EOS_SHIFT 14
486 #define WM9090_WSEQ_EOS_WIDTH 1
487 #define WM9090_WSEQ_DELAY_MASK 0x0F00
488 #define WM9090_WSEQ_DELAY_SHIFT 8
489 #define WM9090_WSEQ_DELAY_WIDTH 4
490 #define WM9090_WSEQ_DATA_MASK 0x00FF
491 #define WM9090_WSEQ_DATA_SHIFT 0
492 #define WM9090_WSEQ_DATA_WIDTH 8
493
494
495
496
497 #define WM9090_WSEQ_ABORT 0x0200
498 #define WM9090_WSEQ_ABORT_MASK 0x0200
499 #define WM9090_WSEQ_ABORT_SHIFT 9
500 #define WM9090_WSEQ_ABORT_WIDTH 1
501 #define WM9090_WSEQ_START 0x0100
502 #define WM9090_WSEQ_START_MASK 0x0100
503 #define WM9090_WSEQ_START_SHIFT 8
504 #define WM9090_WSEQ_START_WIDTH 1
505 #define WM9090_WSEQ_START_INDEX_MASK 0x003F
506 #define WM9090_WSEQ_START_INDEX_SHIFT 0
507 #define WM9090_WSEQ_START_INDEX_WIDTH 6
508
509
510
511
512 #define WM9090_WSEQ_BUSY 0x0001
513 #define WM9090_WSEQ_BUSY_MASK 0x0001
514 #define WM9090_WSEQ_BUSY_SHIFT 0
515 #define WM9090_WSEQ_BUSY_WIDTH 1
516
517
518
519
520 #define WM9090_WSEQ_CURRENT_INDEX_MASK 0x003F
521 #define WM9090_WSEQ_CURRENT_INDEX_SHIFT 0
522 #define WM9090_WSEQ_CURRENT_INDEX_WIDTH 6
523
524
525
526
527 #define WM9090_CP_ENA 0x8000
528 #define WM9090_CP_ENA_MASK 0x8000
529 #define WM9090_CP_ENA_SHIFT 15
530 #define WM9090_CP_ENA_WIDTH 1
531
532
533
534
535 #define WM9090_DCS_TRIG_SINGLE_1 0x2000
536 #define WM9090_DCS_TRIG_SINGLE_1_MASK 0x2000
537 #define WM9090_DCS_TRIG_SINGLE_1_SHIFT 13
538 #define WM9090_DCS_TRIG_SINGLE_1_WIDTH 1
539 #define WM9090_DCS_TRIG_SINGLE_0 0x1000
540 #define WM9090_DCS_TRIG_SINGLE_0_MASK 0x1000
541 #define WM9090_DCS_TRIG_SINGLE_0_SHIFT 12
542 #define WM9090_DCS_TRIG_SINGLE_0_WIDTH 1
543 #define WM9090_DCS_TRIG_SERIES_1 0x0200
544 #define WM9090_DCS_TRIG_SERIES_1_MASK 0x0200
545 #define WM9090_DCS_TRIG_SERIES_1_SHIFT 9
546 #define WM9090_DCS_TRIG_SERIES_1_WIDTH 1
547 #define WM9090_DCS_TRIG_SERIES_0 0x0100
548 #define WM9090_DCS_TRIG_SERIES_0_MASK 0x0100
549 #define WM9090_DCS_TRIG_SERIES_0_SHIFT 8
550 #define WM9090_DCS_TRIG_SERIES_0_WIDTH 1
551 #define WM9090_DCS_TRIG_STARTUP_1 0x0020
552 #define WM9090_DCS_TRIG_STARTUP_1_MASK 0x0020
553 #define WM9090_DCS_TRIG_STARTUP_1_SHIFT 5
554 #define WM9090_DCS_TRIG_STARTUP_1_WIDTH 1
555 #define WM9090_DCS_TRIG_STARTUP_0 0x0010
556 #define WM9090_DCS_TRIG_STARTUP_0_MASK 0x0010
557 #define WM9090_DCS_TRIG_STARTUP_0_SHIFT 4
558 #define WM9090_DCS_TRIG_STARTUP_0_WIDTH 1
559 #define WM9090_DCS_TRIG_DAC_WR_1 0x0008
560 #define WM9090_DCS_TRIG_DAC_WR_1_MASK 0x0008
561 #define WM9090_DCS_TRIG_DAC_WR_1_SHIFT 3
562 #define WM9090_DCS_TRIG_DAC_WR_1_WIDTH 1
563 #define WM9090_DCS_TRIG_DAC_WR_0 0x0004
564 #define WM9090_DCS_TRIG_DAC_WR_0_MASK 0x0004
565 #define WM9090_DCS_TRIG_DAC_WR_0_SHIFT 2
566 #define WM9090_DCS_TRIG_DAC_WR_0_WIDTH 1
567 #define WM9090_DCS_ENA_CHAN_1 0x0002
568 #define WM9090_DCS_ENA_CHAN_1_MASK 0x0002
569 #define WM9090_DCS_ENA_CHAN_1_SHIFT 1
570 #define WM9090_DCS_ENA_CHAN_1_WIDTH 1
571 #define WM9090_DCS_ENA_CHAN_0 0x0001
572 #define WM9090_DCS_ENA_CHAN_0_MASK 0x0001
573 #define WM9090_DCS_ENA_CHAN_0_SHIFT 0
574 #define WM9090_DCS_ENA_CHAN_0_WIDTH 1
575
576
577
578
579 #define WM9090_DCS_SERIES_NO_01_MASK 0x0FE0
580 #define WM9090_DCS_SERIES_NO_01_SHIFT 5
581 #define WM9090_DCS_SERIES_NO_01_WIDTH 7
582 #define WM9090_DCS_TIMER_PERIOD_01_MASK 0x000F
583 #define WM9090_DCS_TIMER_PERIOD_01_SHIFT 0
584 #define WM9090_DCS_TIMER_PERIOD_01_WIDTH 4
585
586
587
588
589 #define WM9090_DCS_DAC_WR_VAL_1_MASK 0xFF00
590 #define WM9090_DCS_DAC_WR_VAL_1_SHIFT 8
591 #define WM9090_DCS_DAC_WR_VAL_1_WIDTH 8
592 #define WM9090_DCS_DAC_WR_VAL_0_MASK 0x00FF
593 #define WM9090_DCS_DAC_WR_VAL_0_SHIFT 0
594 #define WM9090_DCS_DAC_WR_VAL_0_WIDTH 8
595
596
597
598
599 #define WM9090_DCS_CAL_COMPLETE_MASK 0x0300
600 #define WM9090_DCS_CAL_COMPLETE_SHIFT 8
601 #define WM9090_DCS_CAL_COMPLETE_WIDTH 2
602 #define WM9090_DCS_DAC_WR_COMPLETE_MASK 0x0030
603 #define WM9090_DCS_DAC_WR_COMPLETE_SHIFT 4
604 #define WM9090_DCS_DAC_WR_COMPLETE_WIDTH 2
605 #define WM9090_DCS_STARTUP_COMPLETE_MASK 0x0003
606 #define WM9090_DCS_STARTUP_COMPLETE_SHIFT 0
607 #define WM9090_DCS_STARTUP_COMPLETE_WIDTH 2
608
609
610
611
612 #define WM9090_DCS_DAC_WR_VAL_1_RD_MASK 0x00FF
613 #define WM9090_DCS_DAC_WR_VAL_1_RD_SHIFT 0
614 #define WM9090_DCS_DAC_WR_VAL_1_RD_WIDTH 8
615
616
617
618
619 #define WM9090_DCS_DAC_WR_VAL_0_RD_MASK 0x00FF
620 #define WM9090_DCS_DAC_WR_VAL_0_RD_SHIFT 0
621 #define WM9090_DCS_DAC_WR_VAL_0_RD_WIDTH 8
622
623
624
625
626 #define WM9090_HPOUT1L_RMV_SHORT 0x0080
627 #define WM9090_HPOUT1L_RMV_SHORT_MASK 0x0080
628 #define WM9090_HPOUT1L_RMV_SHORT_SHIFT 7
629 #define WM9090_HPOUT1L_RMV_SHORT_WIDTH 1
630 #define WM9090_HPOUT1L_OUTP 0x0040
631 #define WM9090_HPOUT1L_OUTP_MASK 0x0040
632 #define WM9090_HPOUT1L_OUTP_SHIFT 6
633 #define WM9090_HPOUT1L_OUTP_WIDTH 1
634 #define WM9090_HPOUT1L_DLY 0x0020
635 #define WM9090_HPOUT1L_DLY_MASK 0x0020
636 #define WM9090_HPOUT1L_DLY_SHIFT 5
637 #define WM9090_HPOUT1L_DLY_WIDTH 1
638 #define WM9090_HPOUT1R_RMV_SHORT 0x0008
639 #define WM9090_HPOUT1R_RMV_SHORT_MASK 0x0008
640 #define WM9090_HPOUT1R_RMV_SHORT_SHIFT 3
641 #define WM9090_HPOUT1R_RMV_SHORT_WIDTH 1
642 #define WM9090_HPOUT1R_OUTP 0x0004
643 #define WM9090_HPOUT1R_OUTP_MASK 0x0004
644 #define WM9090_HPOUT1R_OUTP_SHIFT 2
645 #define WM9090_HPOUT1R_OUTP_WIDTH 1
646 #define WM9090_HPOUT1R_DLY 0x0002
647 #define WM9090_HPOUT1R_DLY_MASK 0x0002
648 #define WM9090_HPOUT1R_DLY_SHIFT 1
649 #define WM9090_HPOUT1R_DLY_WIDTH 1
650
651
652
653
654 #define WM9090_AGC_CLIP_ENA 0x8000
655 #define WM9090_AGC_CLIP_ENA_MASK 0x8000
656 #define WM9090_AGC_CLIP_ENA_SHIFT 15
657 #define WM9090_AGC_CLIP_ENA_WIDTH 1
658 #define WM9090_AGC_CLIP_THR_MASK 0x0F00
659 #define WM9090_AGC_CLIP_THR_SHIFT 8
660 #define WM9090_AGC_CLIP_THR_WIDTH 4
661 #define WM9090_AGC_CLIP_ATK_MASK 0x0070
662 #define WM9090_AGC_CLIP_ATK_SHIFT 4
663 #define WM9090_AGC_CLIP_ATK_WIDTH 3
664 #define WM9090_AGC_CLIP_DCY_MASK 0x0007
665 #define WM9090_AGC_CLIP_DCY_SHIFT 0
666 #define WM9090_AGC_CLIP_DCY_WIDTH 3
667
668
669
670
671 #define WM9090_AGC_PWR_ENA 0x8000
672 #define WM9090_AGC_PWR_ENA_MASK 0x8000
673 #define WM9090_AGC_PWR_ENA_SHIFT 15
674 #define WM9090_AGC_PWR_ENA_WIDTH 1
675 #define WM9090_AGC_PWR_AVG 0x1000
676 #define WM9090_AGC_PWR_AVG_MASK 0x1000
677 #define WM9090_AGC_PWR_AVG_SHIFT 12
678 #define WM9090_AGC_PWR_AVG_WIDTH 1
679 #define WM9090_AGC_PWR_THR_MASK 0x0F00
680 #define WM9090_AGC_PWR_THR_SHIFT 8
681 #define WM9090_AGC_PWR_THR_WIDTH 4
682 #define WM9090_AGC_PWR_ATK_MASK 0x0070
683 #define WM9090_AGC_PWR_ATK_SHIFT 4
684 #define WM9090_AGC_PWR_ATK_WIDTH 3
685 #define WM9090_AGC_PWR_DCY_MASK 0x0007
686 #define WM9090_AGC_PWR_DCY_SHIFT 0
687 #define WM9090_AGC_PWR_DCY_WIDTH 3
688
689
690
691
692 #define WM9090_AGC_RAMP 0x0100
693 #define WM9090_AGC_RAMP_MASK 0x0100
694 #define WM9090_AGC_RAMP_SHIFT 8
695 #define WM9090_AGC_RAMP_WIDTH 1
696 #define WM9090_AGC_MINGAIN_MASK 0x003F
697 #define WM9090_AGC_MINGAIN_SHIFT 0
698 #define WM9090_AGC_MINGAIN_WIDTH 6
699
700 #endif