hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * rv1106_codec.h - Rockchip RV1106 SoC Codec Driver
 *
 * Copyright (C) 2022 Rockchip Electronics Co., Ltd.
 */
 
#ifndef __RV1106_CODEC_H__
#define __RV1106_CODEC_H__
 
#define ACODEC_RESET_CTL            0x00 /* REG 0x00 */
#define ACODEC_GLB_CON                ACODEC_RESET_CTL
#define ACODEC_MUTE_DA_DITHER_CTL        0x04 /* REG 0x01 */
 
/* ADC DIGITAL REGISTERS */
#define ACODEC_ADC_I2S_CTL0            0x08 /* REG 0x02 */
#define ACODEC_ADC_I2S_CTL1            0x0c /* REG 0x03 */
#define ACODEC_DAC_I2S_CTL0            0x10 /* REG 0x04 */
#define ACODEC_DAC_I2S_CTL1            0x14 /* REG 0x05 */
#define ACODEC_DAC_GAIN_SEL            0x18 /* REG 0x06 */
#define ACODEC_DAC_L_BIST_MODE_SEL        0x1c /* REG 0x07 */
#define ACODEC_ADC_L_DIG_VOL            0x20 /* REG 0x08 */
#define ACODEC_ADC_R_DIG_VOL            0x24 /* REG 0x09 */
#define ACODEC_ADC_HPF_PGA_CTL            0x28 /* REG 0x0a */
#define ACODEC_INIT_DELAY_CNT1            0x2c /* REG 0x0b */
#define ACODEC_INIT_DELAY_CNT2            0x30 /* REG 0x0c */
#define ACODEC_ADC_BIST_MODE_SEL        0x34 /* REG 0x0d */
#define ACODEC_DAC_CONFIG_OUTPUT        0x38 /* REG 0x0e */
#define ACODEC_LINEOUT_CTL            0x80 /* REG 0x20 */
#define ACODEC_CURRENT_CHARGE_CTL        0x84 /* REG 0x21 */
 
#define ACODEC_ADC_ANA_CTL0            0x88 /* REG 0x22 */
#define ACODEC_ADC_ANA_CTL1            0x8c /* REG 0x23 */
#define ACODEC_ADC_ANA_CTL2            0x90 /* REG 0x24 */
#define ACODEC_ADC_ANA_CTL3            0x94 /* REG 0x25 */
#define ACODEC_ADC_ANA_CTL4            0x98 /* REG 0x26 */
#define ACODEC_ADC_ANA_CTL5            0x9c /* REG 0x27 */
#define ACODEC_ADC_ANA_CTL6            0xa0 /* REG 0x28 */
 
#define ACODEC_DAC_ANA_CTL0            0xa4 /* REG 0x29 */
#define ACODEC_DAC_ANA_CTL1            0xa8 /* REG 0x2a */
#define ACODEC_DAC_ANA_CTL2            0xac /* REG 0x2b */
#define ACODEC_DAC_HPMIX_CTL            0xbc /* REG 0x2f */
 
/* The description of the agc register for the left channel */
#define ACODEC_ADC_PGA_AGC_L_CTL0        0x100 /* REG 0x40 */
#define ACODEC_ADC_PGA_AGC_L_CTL1        0x104 /* REG 0x41 */
#define ACODEC_ADC_PGA_AGC_L_CTL2        0x108 /* REG 0x42 */
#define ACODEC_ADC_PGA_AGC_L_CTL3        0x10c /* REG 0x43 */
#define ACODEC_ADC_PGA_AGC_L_CTL4        0x110 /* REG 0x44 */
#define ACODEC_ADC_PGA_AGC_L_CTL5        0x114 /* REG 0x45 */
#define ACODEC_ADC_PGA_AGC_L_CTL6        0x118 /* REG 0x46 */
#define ACODEC_ADC_PGA_AGC_L_CTL7        0x11c /* REG 0x47 */
#define ACODEC_ADC_PGA_AGC_L_CTL8        0x120 /* REG 0x48 */
#define ACODEC_ADC_PGA_AGC_L_CTL9        0x124 /* REG 0x49 */
 
/* The description of the agc register for the right channel */
#define ACODEC_ADC_PGA_AGC_R_CTL0        0x140 /* REG 0x50 */
#define ACODEC_ADC_PGA_AGC_R_CTL1        0x144 /* REG 0x51 */
#define ACODEC_ADC_PGA_AGC_R_CTL2        0x148 /* REG 0x52 */
#define ACODEC_ADC_PGA_AGC_R_CTL3        0x14c /* REG 0x53 */
#define ACODEC_ADC_PGA_AGC_R_CTL4        0x150 /* REG 0x54 */
#define ACODEC_ADC_PGA_AGC_R_CTL5        0x154 /* REG 0x55 */
#define ACODEC_ADC_PGA_AGC_R_CTL6        0x158 /* REG 0x56 */
#define ACODEC_ADC_PGA_AGC_R_CTL7        0x15c /* REG 0x57 */
#define ACODEC_ADC_PGA_AGC_R_CTL8        0x160 /* REG 0x58 */
#define ACODEC_ADC_PGA_AGC_R_CTL9        0x164 /* REG 0x59 */
 
#define ACODEC_REG_MAX                ACODEC_ADC_PGA_AGC_R_CTL9
 
/* ACODEC_RESET_CTL */
#define ACODEC_CODEC_BIST_MSK            (1 << 7)
#define ACODEC_CODEC_BIST_WORK            (1 << 7)
#define ACODEC_CODEC_BIST_RST            (0 << 7)
#define ACODEC_CODEC_CORE_RST_MSK        (1 << 1)
#define ACODEC_CODEC_CORE_WORK            (1 << 1)
#define ACODEC_CODEC_CORE_RST            (0 << 1)
#define ACODEC_CODEC_SYS_RST_MSK        (1 << 0)
#define ACODEC_CODEC_SYS_WORK            (1 << 0)
#define ACODEC_CODEC_SYS_RST            (0 << 0)
 
/* ACODEC_MUTE_DA_DITHER_CTL */
#define ACODEC_DAC_MUTE_MSK            (1 << 7)
#define ACODEC_DAC_MUTE_EN            (1 << 7)
#define ACODEC_DAC_MUTE_DIS            (0 << 7)
#define ACODEC_DITHER_LEVEL_SEL            (1 << 3)
#define ACODEC_DA_MSK                (1 << 2)
#define ACODEC_DA_EN                (1 << 2)
#define ACODEC_DA_DIS                (0 << 2)
#define ACODEC_DITHER_MSK            (1 << 1)
#define ACODEC_DITHER_EN            (1 << 1)
#define ACODEC_DITHER_DIS            (0 << 1)
#define ACODEC_DITHER_SIGN            (1 << 0)
 
/* ACODEC_ADC_I2S_CTL0 */
#define ACODEC_ADC_I2S_LRC_POL_MSK        (1 << 7)
#define ACODEC_ADC_I2S_LRC_POL_REVERSAL        (1 << 7)
#define ACODEC_ADC_I2S_LRC_POL_NORMAL        (0 << 7)
#define ACODEC_ADC_I2S_VALID_LEN_SFT        5
#define ACODEC_ADC_I2S_VALID_LEN_MSK        (0x3 << ACODEC_ADC_I2S_VALID_LEN_SFT)
#define ACODEC_ADC_I2S_VALID_LEN_32BITS        (0x3 << ACODEC_ADC_I2S_VALID_LEN_SFT)
#define ACODEC_ADC_I2S_VALID_LEN_24BITS        (0x2 << ACODEC_ADC_I2S_VALID_LEN_SFT)
#define ACODEC_ADC_I2S_VALID_LEN_20BITS        (0x1 << ACODEC_ADC_I2S_VALID_LEN_SFT)
#define ACODEC_ADC_I2S_VALID_LEN_16BITS        (0x0 << ACODEC_ADC_I2S_VALID_LEN_SFT)
#define ACODEC_ADC_I2S_MODE_SFT            3
#define ACODEC_ADC_I2S_MODE_MSK            (0x3 << ACODEC_ADC_I2S_MODE_SFT)
#define ACODEC_ADC_I2S_MODE_PCM            (0x3 << ACODEC_ADC_I2S_MODE_SFT)
#define ACODEC_ADC_I2S_MODE_I2S            (0x2 << ACODEC_ADC_I2S_MODE_SFT)
#define ACODEC_ADC_I2S_MODE_LJ            (0x1 << ACODEC_ADC_I2S_MODE_SFT)
#define ACODEC_ADC_I2S_MODE_RJ            (0x0 << ACODEC_ADC_I2S_MODE_SFT)
#define ACODEC_ADC_I2S_SEL_DATA_MSK        (1 << 2)
#define ACODEC_ADC_I2S_SEL_ADC_DATA        (1 << 2)
#define ACODEC_ADC_I2S_SEL_ADCL_DACL_DATA    (0 << 2)
#define ACODEC_ADC_I2S_DATA_SEL            0
#define ACODEC_ADC_I2S_DATA_SEL_MSK        (0x3 << ACODEC_ADC_I2S_DATA_SEL)
#define ACODEC_ADC_I2S_DATA_SWAP        (0x3 << ACODEC_ADC_I2S_DATA_SEL)
#define ACODEC_ADC_I2S_DATA_SEL_LEFT        (0x2 << ACODEC_ADC_I2S_DATA_SEL)
#define ACODEC_ADC_I2S_DATA_SEL_RIGHT        (0x1 << ACODEC_ADC_I2S_DATA_SEL)
#define ACODEC_ADC_I2S_DATA_SEL_NORMAL        (0x0 << ACODEC_ADC_I2S_DATA_SEL)
 
/* ACODEC_ADC_I2S_CTL1 */
#define ACODEC_DAC_IO_MODE_MSK            (0x1 << 7)
#define ACODEC_DAC_IO_MODE_MASTER        (0x1 << 7)
#define ACODEC_DAC_IO_MODE_SLAVE        (0x0 << 7)
#define ACODEC_DAC_MODE_MSK            (0x1 << 6)
#define ACODEC_DAC_MODE_MASTER            (0x1 << 6)
#define ACODEC_DAC_MODE_SLAVE            (0x0 << 6)
#define ACODEC_ADC_IO_MODE_MSK            (0x1 << 5)
#define ACODEC_ADC_IO_MODE_MASTER        (0x1 << 5)
#define ACODEC_ADC_IO_MODE_SLAVE        (0x0 << 5)
#define ACODEC_ADC_MODE_MSK            (0x1 << 4)
#define ACODEC_ADC_MODE_MASTER            (0x1 << 4)
#define ACODEC_ADC_MODE_SLAVE            (0x0 << 4)
#define ACODEC_ADC_I2S_FRAME_LEN_SFT        2
#define ACODEC_ADC_I2S_FRAME_LEN_MSK        (0x3 << ACODEC_ADC_I2S_FRAME_LEN_SFT)
#define ACODEC_ADC_I2S_FRAME_32BITS        (0x3 << ACODEC_ADC_I2S_FRAME_LEN_SFT)
#define ACODEC_ADC_I2S_FRAME_24BITS        (0x1 << ACODEC_ADC_I2S_FRAME_LEN_SFT)
#define ACODEC_ADC_I2S_MSK            (0x1 << 1)
#define ACODEC_ADC_I2S_WORK            (0x1 << 1)
#define ACODEC_ADC_I2S_RESET            (0x0 << 1)
#define ACODEC_ADC_I2S_BIT_CLK_POL_MSK        (0x1 << 0)
#define ACODEC_ADC_I2S_BIT_CLK_POL_REVERSAL    (0x1 << 0)
#define ACODEC_ADC_I2S_BIT_CLK_POL_NORMAL    (0x0 << 0)
 
/* ACODEC_DAC_I2S_CTL0 */
#define ACODEC_DAC_I2S_LRC_POL_MSK        (0x1 << 7)
#define ACODEC_DAC_I2S_LRC_POL_REVERSAL        (0x1 << 7)
#define ACODEC_DAC_I2S_LRC_POL_NORMAL        (0x0 << 7)
#define ACODEC_DAC_I2S_VALID_LEN_SFT        5
#define ACODEC_DAC_I2S_VALID_LEN_MSK        (0x3 << ACODEC_DAC_I2S_VALID_LEN_SFT)
#define ACODEC_DAC_I2S_VALID_LEN_32BITS        (0x3 << ACODEC_DAC_I2S_VALID_LEN_SFT)
#define ACODEC_DAC_I2S_VALID_LEN_24BITS        (0x2 << ACODEC_DAC_I2S_VALID_LEN_SFT)
#define ACODEC_DAC_I2S_VALID_LEN_20BITS        (0x1 << ACODEC_DAC_I2S_VALID_LEN_SFT)
#define ACODEC_DAC_I2S_VALID_LEN_16BITS        (0x0 << ACODEC_DAC_I2S_VALID_LEN_SFT)
#define ACODEC_DAC_I2S_MODE_SFT            3
#define ACODEC_DAC_I2S_MODE_MSK            (0x3 << ACODEC_DAC_I2S_MODE_SFT)
#define ACODEC_DAC_I2S_MODE_PCM            (0x3 << ACODEC_DAC_I2S_MODE_SFT)
#define ACODEC_DAC_I2S_MODE_I2S            (0x2 << ACODEC_DAC_I2S_MODE_SFT)
#define ACODEC_DAC_I2S_MODE_LJ            (0x1 << ACODEC_DAC_I2S_MODE_SFT)
#define ACODEC_DAC_I2S_MODE_RJ            (0x0 << ACODEC_DAC_I2S_MODE_SFT)
#define ACODEC_DAC_I2S_LR_MSK            (0x1 << 2)
#define ACODEC_DAC_I2S_LR_SWAP            (0x1 << 2)
#define ACODEC_DAC_I2S_LR_NORMAL        (0x0 << 2)
 
/* ACODEC_DAC_I2S_CTL1 */
#define ACODEC_DAC_DE_EMPHASIS_FILTER_SFT    4
#define ACODEC_DAC_DE_EMPHASIS_FILTER_MSK    (0x3 << ACODEC_DAC_I2S_VALID_LEN_SFT)
#define ACODEC_DAC_48_DE_EMPHASIS_FILTER    (0x3 << ACODEC_DAC_I2S_VALID_LEN_SFT)
#define ACODEC_DAC_441_DE_EMPHASIS_FILTER    (0x2 << ACODEC_DAC_I2S_VALID_LEN_SFT)
#define ACODEC_DAC_32_DE_EMPHASIS_FILTER    (0x1 << ACODEC_DAC_I2S_VALID_LEN_SFT)
#define ACODEC_DAC_NO_DE_EMPHASIS_FILTER    (0x0 << ACODEC_DAC_I2S_VALID_LEN_SFT)
#define ACODEC_DAC_I2S_FRAME_LEN_SFT        2
#define ACODEC_DAC_I2S_FRAME_LEN_MSK        (0x3 << ACODEC_DAC_I2S_FRAME_LEN_SFT)
#define ACODEC_DAC_I2S_FRAME_32BITS        (0x3 << ACODEC_DAC_I2S_FRAME_LEN_SFT)
#define ACODEC_DAC_I2S_FRAME_24BITS        (0x2 << ACODEC_DAC_I2S_FRAME_LEN_SFT)
#define ACODEC_DAC_I2S_FRAME_20BITS        (0x1 << ACODEC_DAC_I2S_FRAME_LEN_SFT)
#define ACODEC_DAC_I2S_FRAME_16BITS        (0x0 << ACODEC_DAC_I2S_FRAME_LEN_SFT)
#define ACODEC_DAC_I2S_MSK            (0x1 << 1)
#define ACODEC_DAC_I2S_WORK            (0x1 << 1)
#define ACODEC_DAC_I2S_RESET            (0x0 << 1)
#define ACODEC_DAC_I2S_BIT_CLK_POL_MSK        (0x1 << 0)
#define ACODEC_DAC_I2S_BIT_CLK_POL_REVERSAL    (0x1 << 0)
#define ACODEC_DAC_I2S_BIT_CLK_POL_NORMAL    (0x0 << 0)
 
/* ACODEC_DAC_GAIN_SEL */
#define ACODEC_DAC_DIG_GAIN_SFT            0
#define ACODEC_DAC_DIG_GAIN_MSK            (0xff << ACODEC_DAC_DIG_GAIN_SFT)
#define ACODEC_DAC_DIG_GAIN(x)            ((x) & ACODEC_DAC_DIG_GAIN_MSK)
#define ACODEC_DAC_DIG_0DB            0xed
 
/* ACODEC_DAC_L_BIST_MODE_SEL */
#define ACODEC_DAC_L_CH_BIST_SFT        4
#define ACODEC_DAC_L_CH_BIST_MSK        (0x3 << ACODEC_DAC_L_CH_BIST_SFT)
#define ACODEC_DAC_L_CH_BIST_SINE        (0x1 << ACODEC_DAC_L_CH_BIST_SFT)
#define ACODEC_DAC_L_CH_BIST_LEFT        (0x0 << ACODEC_DAC_L_CH_BIST_SFT) /* normal mode */
 
/* ACODEC_ADC_L_DIG_VOL */
#define ACODEC_ADC_L_DIG_VOL_MAX        0xff
#define ACODEC_ADC_L_DIG_VOL_MIN        0
#define ACODEC_ADC_L_DIG_VOL_SFT        0
#define ACODEC_ADC_L_DIG_VOL_MUTE        0
#define ACODEC_ADC_L_DIG_VOL_0DB        0xc3
 
/* ACODEC_ADC_R_DIG_VOL */
#define ACODEC_ADC_R_DIG_VOL_MAX        0xff
#define ACODEC_ADC_R_DIG_VOL_MIN        0
#define ACODEC_ADC_R_DIG_VOL_SFT        0
#define ACODEC_ADC_R_DIG_VOL_MUTE        0
#define ACODEC_ADC_R_DIG_VOL_0DB        0xc3
 
/* ACODEC_ADC_HPF_PGA_CTL */
#define ACODEC_ADC_FILTER_MSK            (1 << 7)
#define ACODEC_ADC_FILTER_EN            (1 << 7)
#define ACODEC_ADC_FILTER_DIS            (0 << 7)
#define ACODEC_ADC_AGC_MSK            (1 << 6)
#define ACODEC_ADC_FILTER_OUTPUT        (1 << 6)
#define ACODEC_ADC_SINC_OUTPUT            (0 << 6)
#define ACODEC_ADC_L_PGA_MSK            (1 << 5)
#define ACODEC_ADC_PGA_ALCL_EN            (1 << 5)
#define ACODEC_ADC_PGA_ALCL_DIS            (0 << 5)
#define ACODEC_ADC_R_PGA_MSK            (1 << 4)
#define ACODEC_ADC_PGA_ALCR_EN            (1 << 4)
#define ACODEC_ADC_PGA_ALCR_DIS            (0 << 4)
#define ACODEC_ADC_HPF_SFT            2
#define ACODEC_ADC_HPF_MSK            (3 << ACODEC_ADC_HPF_SFT)
#define ACODEC_ADC_HPF_EN            (3 << ACODEC_ADC_HPF_SFT)
#define ACODEC_ADC_HPF_DIS            (0 << ACODEC_ADC_HPF_SFT)
#define ACODEC_ADC_R_DATA_POL_INV_MSK        (1 << 1)
#define ACODEC_ADC_R_DATA_POL_INV_EN        (1 << 1)
#define ACODEC_ADC_R_DATA_POL_INV_DIS        (0 << 1)
#define ACODEC_ADC_L_DATA_POL_INV_MSK        (1 << 0)
#define ACODEC_ADC_L_DATA_POL_INV_EN        (1 << 0)
#define ACODEC_ADC_L_DATA_POL_INV_DIS        (0 << 0)
 
/* ACODEC_ADC_BIST_MODE_SEL */
#define ACODEC_ADC_R_BIST_SFT            6
#define ACODEC_ADC_R_BIST_MSK            (0x3 << ACODEC_ADC_R_BIST_SFT)
#define ACODEC_ADC_R_BIST_SINE            (0x1 << ACODEC_ADC_R_BIST_SFT)
#define ACODEC_ADC_BIST_RIGHT            (0x0 << ACODEC_ADC_R_BIST_SFT) /* normal mode */
#define ACODEC_ADC_L_BIST_SFT            4
#define ACODEC_ADC_L_BIST_MSK            (0x3 << ACODEC_ADC_L_BIST_SFT)
#define ACODEC_ADC_L_BIST_SINE            (0x1 << ACODEC_ADC_L_BIST_SFT)
#define ACODEC_ADC_BIST_LEFT            (0x0 << ACODEC_ADC_L_BIST_SFT) /* normal mode */
 
/* ACODEC_LINEOUT_CTL */
#define ACODEC_DAC_LINEOUT_EN_SFT               7
#define ACODEC_DAC_LINEOUT_EN_WORK              (0x1 << ACODEC_DAC_LINEOUT_EN_SFT)
#define ACODEC_DAC_LINEOUT_EN_RST               (0x0 << ACODEC_DAC_LINEOUT_EN_SFT)
#define ACODEC_DAC_LINEOUT_INI_SFT        6
#define ACODEC_DAC_LINEOUT_INI_WORK        (0x1 << ACODEC_DAC_LINEOUT_INI_SFT)
#define ACODEC_DAC_LINEOUT_INI_RST        (0x0 << ACODEC_DAC_LINEOUT_INI_SFT)
#define ACODEC_DAC_IBIAS_SEL_SFT        0
#define ACODEC_DAC_IBIAS_SEL_MSK        (0xf << ACODEC_DAC_IBIAS_SEL_SFT)
 
/* ACODEC_CURRENT_CHARGE_CTL */
#define ACODEC_ADC_CURRENT_CHARGE_SFT        0
#define ACODEC_ADC_CURRENT_CHARGE_MSK        (0xff << ACODEC_ADC_CURRENT_CHARGE_SFT)
/*
 * 1: Choose the current I
 * 0: Don't choose the current I
 */
#define ACODEC_ADC_SEL_I(x)            (x & 0xff)
 
/* ACODEC_ADC_ANA_CTL0 */
#define ACODEC_ADC_REF_VOL_MSK            (0x1 << 5)
#define ACODEC_ADC_REF_VOL_EN            (0x1 << 5)
#define ACODEC_ADC_REF_VOL_DIS            (0x0 << 5)
#define ACODEC_ADC_IBIAS_MSK            (0x1 << 4)
#define ACODEC_ADC_IBIAS_EN            (0x1 << 4)
#define ACODEC_ADC_IBIAS_DIS            (0x0 << 4)
#define ACODEC_MICBIAS_SFT            3
#define ACODEC_MICBIAS_MSK            (0x1 << 3)
#define ACODEC_MICBIAS_WORK            (0x1 << 3)
#define ACODEC_MICBIAS_RST            (0x0 << 3)
#define ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT    0
#define ACODEC_ADC_LEVEL_RANGE_MICBIAS_MSK    (0x7 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
#define ACODEC_ADC_MICBIAS_VOLT_0_975        (0x7 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
#define ACODEC_ADC_MICBIAS_VOLT_0_95        (0x6 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
#define ACODEC_ADC_MICBIAS_VOLT_0_925        (0x5 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
#define ACODEC_ADC_MICBIAS_VOLT_0_9        (0x4 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
#define ACODEC_ADC_MICBIAS_VOLT_0_875        (0x3 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
#define ACODEC_ADC_MICBIAS_VOLT_0_85        (0x2 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
#define ACODEC_ADC_MICBIAS_VOLT_0_825        (0x1 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
#define ACODEC_ADC_MICBIAS_VOLT_0_8        (0x0 << ACODEC_ADC_LEVEL_RANGE_MICBIAS_SFT)
 
/* ACODEC_ADC_ANA_CTL1 */
#define ACODEC_ADC_L_MIC_MSK            (0x1 << 7)
#define ACODEC_ADC_L_MIC_WORK            (0x1 << 7)
#define ACODEC_ADC_L_MIC_MUTE            (0x0 << 7)
#define ACODEC_ADC_L_MIC_SIGNAL_MSK        (0x1 << 6)
#define ACODEC_ADC_L_MIC_SIGNAL_WORK        (0x1 << 6)
#define ACODEC_ADC_L_MIC_SIGNAL_INIT        (0x0 << 6)
#define ACODEC_ADC_L_REF_VOL_BUF_MSK        (0x1 << 5)
#define ACODEC_ADC_L_REF_VOL_BUF_EN        (0x1 << 5)
#define ACODEC_ADC_L_REF_VOL_BUF_DIS        (0x0 << 5)
#define ACODEC_ADC_L_ZERO_CROSS_DET_MSK        (0x1 << 4)
#define ACODEC_ADC_L_ZERO_CROSS_DET_EN        (0x1 << 4)
#define ACODEC_ADC_L_ZERO_CROSS_DET_DIS        (0x0 << 4)
#define ACODEC_ADC_R_MIC_MSK            (0x1 << 3)
#define ACODEC_ADC_R_MIC_WORK            (0x1 << 3)
#define ACODEC_ADC_R_MIC_MUTE            (0x0 << 3)
#define ACODEC_ADC_R_MIC_SIGNAL_MSK        (0x1 << 2)
#define ACODEC_ADC_R_MIC_SIGNAL_WORK        (0x1 << 2)
#define ACODEC_ADC_R_MIC_SIGNAL_INIT        (0x0 << 2)
#define ACODEC_ADC_R_REF_VOL_BUF_MSK        (0x1 << 1)
#define ACODEC_ADC_R_REF_VOL_BUF_EN        (0x1 << 1)
#define ACODEC_ADC_R_REF_VOL_BUF_DIS        (0x0 << 1)
#define ACODEC_ADC_R_ZERO_CROSS_DET_MSK        (0x1 << 0)
#define ACODEC_ADC_R_ZERO_CROSS_DET_EN        (0x1 << 0)
#define ACODEC_ADC_R_ZERO_CROSS_DET_DIS        (0x0 << 0)
 
/* ACODEC_ADC_ANA_CTL2 */
#define ACODEC_ADC_MIC_GAIN_MAX            0x3
#define ACODEC_ADC_MIC_GAIN_MIN            0x1
#define ACODEC_ADC_L_MIC_GAIN_SFT        6
#define ACODEC_ADC_L_MIC_GAIN_MSK        (0x3 << ACODEC_ADC_L_MIC_GAIN_SFT)
#define ACODEC_ADC_L_MIC_GAIN_12DB        (0x3 << ACODEC_ADC_L_MIC_GAIN_SFT)
#define ACODEC_ADC_L_MIC_GAIN_20DB        (0x2 << ACODEC_ADC_L_MIC_GAIN_SFT)
#define ACODEC_ADC_L_MIC_GAIN_0DB        (0x1 << ACODEC_ADC_L_MIC_GAIN_SFT)
#define ACODEC_ADC_R_MIC_GAIN_SFT        4
#define ACODEC_ADC_R_MIC_GAIN_MSK        (0x3 << ACODEC_ADC_R_MIC_GAIN_SFT)
#define ACODEC_ADC_R_MIC_GAIN_12DB        (0x3 << ACODEC_ADC_R_MIC_GAIN_SFT)
#define ACODEC_ADC_R_MIC_GAIN_20DB        (0x2 << ACODEC_ADC_R_MIC_GAIN_SFT)
#define ACODEC_ADC_R_MIC_GAIN_0DB        (0x1 << ACODEC_ADC_R_MIC_GAIN_SFT)
#define ACODEC_ADC_IBIAS_SEL_SFT        0
#define ACODEC_ADC_IBIAS_SEL_MSK        (0xf << ACODEC_ADC_IBIAS_SEL_SFT)
 
/* ACODEC_ADC_ANA_CTL3 */
#define ACODEC_ADC_L_MODE_SEL_SFT        6
#define ACODEC_ADC_L_MODE_SEL_MSK        (0x3 << ACODEC_ADC_L_MODE_SEL_SFT)
#define ACODEC_ADC_L_FULL_DIFFER2        (0x2 << ACODEC_ADC_L_MODE_SEL_SFT) /* Only used for rv1103 acodec */
#define ACODEC_ADC_L_SINGLE_END            (0x1 << ACODEC_ADC_L_MODE_SEL_SFT)
#define ACODEC_ADC_L_FULL_DIFFER        (0x0 << ACODEC_ADC_L_MODE_SEL_SFT)
#define ACODEC_ADC_L_MSK            (0x1 << 5)
#define ACODEC_ADC_L_EN                (0x1 << 5)
#define ACODEC_ADC_L_DIS            (0x0 << 5)
#define ACODEC_MIC_L_MSK            (0x1 << 4)
#define ACODEC_MIC_L_EN                (0x1 << 4)
#define ACODEC_MIC_L_DIS            (0x0 << 4)
#define ACODEC_ADC_R_MODE_SEL_SFT        2
#define ACODEC_ADC_R_MODE_SEL_MSK        (0x3 << ACODEC_ADC_R_MODE_SEL_SFT)
#define ACODEC_ADC_R_SINGLE_END            (0x1 << ACODEC_ADC_R_MODE_SEL_SFT)
#define ACODEC_ADC_R_FULL_DIFFER        (0x0 << ACODEC_ADC_R_MODE_SEL_SFT)
#define ACODEC_ADC_R_MSK            (0x1 << 1)
#define ACODEC_ADC_R_EN                (0x1 << 1)
#define ACODEC_ADC_R_DIS            (0x0 << 1)
#define ACODEC_MIC_R_MSK            (0x1 << 0)
#define ACODEC_MIC_R_EN                (0x1 << 0)
#define ACODEC_MIC_R_DIS            (0x0 << 0)
 
/* ACODEC_ADC_ANA_CTL4 */
#define ACODEC_ADC_L_ALC_GAIN_MAX        0x1f
#define ACODEC_ADC_L_ALC_GAIN_MIN        0
#define ACODEC_ADC_L_ALC_GAIN_SFT        0
#define ACODEC_ADC_L_ALC_GAIN_MSK        (0x1f << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_37_5        (0x1f << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_36        (0x1e << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_34_5        (0x1d << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_33        (0x1c << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_31_5        (0x1b << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_30        (0x1a << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_28_5        (0x19 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_27        (0x18 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_25_5        (0x17 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_24        (0x16 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_22_5        (0x15 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_21        (0x14 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_19_5        (0x13 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_18        (0x12 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_16_5        (0x11 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_15        (0x10 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_13_5        (0x0f << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_12        (0x0e << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_10_5        (0x0d << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_9        (0x0c << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_7_5        (0x0b << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_6        (0x0a << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_4_5        (0x09 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_3        (0x08 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_PDB_1_5        (0x07 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_0DB        (0x06 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_NDB_1_5        (0x05 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_NDB_3        (0x04 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_NDB_4_5        (0x03 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_NDB_6        (0x02 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_NDB_7_5        (0x01 << ACODEC_ADC_L_ALC_GAIN_SFT)
#define ACODEC_ADC_L_ALC_GAIN_NDB_9        (0x00 << ACODEC_ADC_L_ALC_GAIN_SFT)
 
/* ACODEC_ADC_ANA_CTL5 */
#define ACODEC_ADC_R_ALC_GAIN_MAX        0x1f
#define ACODEC_ADC_R_ALC_GAIN_MIN        0
#define ACODEC_ADC_R_ALC_GAIN_SFT        0
#define ACODEC_ADC_R_ALC_GAIN_MSK        (0x1f << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_37_5        (0x1f << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_36        (0x1e << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_34_5        (0x1d << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_33        (0x1c << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_31_5        (0x1b << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_30        (0x1a << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_28_5        (0x19 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_27        (0x18 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_25_5        (0x17 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_24        (0x16 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_22_5        (0x15 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_21        (0x14 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_19_5        (0x13 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_18        (0x12 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_16_5        (0x11 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_15        (0x10 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_13_5        (0x0f << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_12        (0x0e << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_10_5        (0x0d << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_9        (0x0c << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_7_5        (0x0b << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_6        (0x0a << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_4_5        (0x09 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_3        (0x08 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_PDB_1_5        (0x07 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_0DB        (0x06 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_NDB_1_5        (0x05 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_NDB_3        (0x04 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_NDB_4_5        (0x03 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_NDB_6        (0x02 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_NDB_7_5        (0x01 << ACODEC_ADC_R_ALC_GAIN_SFT)
#define ACODEC_ADC_R_ALC_GAIN_NDB_9        (0x00 << ACODEC_ADC_R_ALC_GAIN_SFT)
 
/* ACODEC_ADC_ANA_CTL6 */
#define ACODEC_ADC_L_ALC_MSK            (0x1 << 7)
#define ACODEC_ADC_L_ALC_WORK            (0x1 << 7)
#define ACODEC_ADC_L_ALC_INIT            (0x0 << 7)
#define ACODEC_ADC_L_CLK_MSK            (0x1 << 6)
#define ACODEC_ADC_L_CLK_WORK            (0x1 << 6)
#define ACODEC_ADC_L_CLK_RST            (0x0 << 6)
#define ACODEC_ADC_L_WORK            (0x1 << 5)
#define ACODEC_ADC_L_INIT            (0x0 << 5)
#define ACODEC_ADC_L_SIGNAL_EN            (0x1 << 4)
#define ACODEC_ADC_L_SIGNAL_DIS            (0x0 << 4)
#define ACODEC_ADC_R_ALC_MSK            (0x1 << 3)
#define ACODEC_ADC_R_ALC_WORK            (0x1 << 3)
#define ACODEC_ADC_R_ALC_INIT            (0x0 << 3)
#define ACODEC_ADC_R_CLK_MSK            (0x1 << 2)
#define ACODEC_ADC_R_CLK_WORK            (0x1 << 2)
#define ACODEC_ADC_R_CLK_RST            (0x0 << 2)
#define ACODEC_ADC_R_WORK            (0x1 << 1)
#define ACODEC_ADC_R_INIT            (0x0 << 1)
#define ACODEC_ADC_R_SIGNAL_EN            (0x1 << 0)
#define ACODEC_ADC_R_SIGNAL_DIS            (0x0 << 0)
 
/* ACODEC_DAC_ANA_CTL0 */
#define ACODEC_DAC_IBIAS_MSK            (0x1 << 7)
#define ACODEC_DAC_IBIAS_EN            (0x1 << 7)
#define ACODEC_DAC_IBIAS_DIS            (0x0 << 7)
#define ACODEC_DAC_L_REF_VOL_BUF_MSK        (0x1 << 6)
#define ACODEC_DAC_L_REF_VOL_BUF_EN        (0x1 << 6)
#define ACODEC_DAC_L_REF_VOL_BUF_DIS        (0x0 << 6)
#define ACODEC_DAC_L_REF_POP_SOUND_MSK        (0x3 << 4)
#define ACODEC_DAC_L_REF_POP_SOUND_WORK        (0x2 << 4)
#define ACODEC_DAC_L_REF_POP_SOUND_INIT        (0x1 << 4)
#define ACODEC_DAC_L_REF_POP_SOUND_DIS        (0x0 << 4)
#define ACODEC_DAC_L_REF_VOL_MSK        (0x1 << 3)
#define ACODEC_DAC_L_REF_VOL_EN            (0x1 << 3)
#define ACODEC_DAC_L_REF_VOL_DIS        (0x0 << 3)
#define ACODEC_DAC_L_CLK_MSK            (0x1 << 2)
#define ACODEC_DAC_L_CLK_EN            (0x1 << 2)
#define ACODEC_DAC_L_CLK_DIS            (0x0 << 2)
#define ACODEC_DAC_SRC_SIGNAL_MSK        (0x1 << 1)
#define ACODEC_DAC_SRC_SIGNAL_EN        (0x1 << 1)
#define ACODEC_DAC_SRC_SIGNAL_DIS        (0x0 << 1)
#define ACODEC_DAC_L_SIGNAL_MSK            (0x1 << 0)
#define ACODEC_DAC_L_SIGNAL_WORK        (0x1 << 0)
#define ACODEC_DAC_L_SIGNAL_INIT        (0x0 << 0)
 
/* ACODEC_DAC_ANA_CTL1 */
#define ACODEC_DAC_L_LINEOUT_MUTE_MSK        (0x1 << 6)
#define ACODEC_DAC_L_LINEOUT_MUTE        (0x0 << 6)
#define ACODEC_DAC_L_LINEOUT_WORK        (0x1 << 6)
#define ACODEC_DAC_L_LINEOUT_SIGNAL_MSK        (0x1 << 5)
#define ACODEC_DAC_L_LINEOUT_SIGNAL_WORK    (0x1 << 5)
#define ACODEC_DAC_L_LINEOUT_SIGNAL_INIT    (0x0 << 5)
#define ACODEC_DAC_L_LINEOUT_MSK        (0x1 << 4)
#define ACODEC_DAC_L_LINEOUT_EN            (0x1 << 4)
#define ACODEC_DAC_L_LINEOUT_DIS        (0x0 << 4)
#define ACODEC_DAC_DRV_STRENGTH_SFT        0
#define ACODEC_DAC_DRV_STRENGTH_MSK        (0xf << ACODEC_DAC_DRV_STRENGTH_SFT)
#define ACODEC_DAC_DRV_STRENGTH_20_4        (0x8 << ACODEC_DAC_DRV_STRENGTH_SFT)
#define ACODEC_DAC_DRV_STRENGTH_22_7        (0x7 << ACODEC_DAC_DRV_STRENGTH_SFT)
#define ACODEC_DAC_DRV_STRENGTH_25_7        (0x6 << ACODEC_DAC_DRV_STRENGTH_SFT)
#define ACODEC_DAC_DRV_STRENGTH_29_7        (0x5 << ACODEC_DAC_DRV_STRENGTH_SFT)
#define ACODEC_DAC_DRV_STRENGTH_35_5        (0x4 << ACODEC_DAC_DRV_STRENGTH_SFT)
#define ACODEC_DAC_DRV_STRENGTH_44_2        (0x3 << ACODEC_DAC_DRV_STRENGTH_SFT)
#define ACODEC_DAC_DRV_STRENGTH_60_1        (0x2 << ACODEC_DAC_DRV_STRENGTH_SFT)
#define ACODEC_DAC_DRV_STRENGTH_100        (0x1 << ACODEC_DAC_DRV_STRENGTH_SFT)
 
/* ACODEC_DAC_ANA_CTL2 */
#define ACODEC_DAC_LINEOUT_GAIN_MAX        0x1e
#define ACODEC_DAC_LINEOUT_GAIN_MIN        0
#define ACODEC_DAC_LINEOUT_GAIN_SFT        0
#define ACODEC_DAC_LINEOUT_GAIN_MSK        (0x1f << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_PDB_6_0        (0x1f << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_PDB_6        (0x1e << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_PDB_4_5        (0x1d << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_PDB_3        (0x1c << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_PDB_1_5        (0x1b << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_0DB        (0x1a << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_1_5        (0x19 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_3        (0x18 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_4_5        (0x17 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_6        (0x16 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_7_5        (0x15 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_9        (0x14 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_10_5    (0x13 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_12        (0x12 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_13_5    (0x11 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_15        (0x10 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_16_5    (0x0f << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_18        (0x0e << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_19_5    (0x0d << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_21        (0x0c << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_22_5    (0x0b << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_24        (0x0a << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_25_5    (0x09 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_27        (0x08 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_28_5    (0x07 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_30        (0x06 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_31_5    (0x05 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_33        (0x04 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_34_5    (0x03 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_36        (0x02 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_37_5    (0x01 << ACODEC_DAC_LINEOUT_GAIN_SFT)
#define ACODEC_DAC_LINEOUT_GAIN_NDB_39        (0x00 << ACODEC_DAC_LINEOUT_GAIN_SFT)
 
/* ACODEC_DAC_HPMIX_CTL */
#define ACODEC_DAC_HPMIX_MSK                    (0x1 << 7)
#define ACODEC_DAC_HPMIX_EN                     (0x1 << 7)
#define ACODEC_DAC_HPMIX_DIS                    (0x0 << 7)
#define ACODEC_DAC_HPMIX_GAIN_SFT        5
#define ACODEC_DAC_HPMIX_GAIN_MAX        2
#define ACODEC_DAC_HPMIX_GAIN_MIN        1
#define ACODEC_DAC_HPMIX_GAIN_MSK        (0x3 << ACODEC_DAC_HPMIX_GAIN_SFT)
#define ACODEC_DAC_HPMIX_GAIN_6DB        (0x2 << ACODEC_DAC_HPMIX_GAIN_SFT)
#define ACODEC_DAC_HPMIX_GAIN_0DB        (0x1 << ACODEC_DAC_HPMIX_GAIN_SFT)
#define ACODEC_DAC_HPMIX_MDL_MSK        (0x1 << 4)
#define ACODEC_DAC_HPMIX_MDL_WORK        (0x1 << 4)
#define ACODEC_DAC_HPMIX_MDL_INIT        (0x0 << 4)
#define ACODEC_DAC_HPMIX_MUTE_MSK        (0x1 << 3)
#define ACODEC_DAC_HPMIX_WORK                   (0x1 << 3)
#define ACODEC_DAC_HPMIX_MUTE                   (0x0 << 3)
#define ACODEC_DAC_HPMIX_SEL_SFT        0
#define ACODEC_DAC_HPMIX_SEL_MSK        (0x7 << ACODEC_DAC_HPMIX_SEL_SFT)
#define ACODEC_DAC_HPMIX_ADCR                   (0x4 << ACODEC_DAC_HPMIX_SEL_SFT)
#define ACODEC_DAC_HPMIX_ADCL                   (0x2 << ACODEC_DAC_HPMIX_SEL_SFT)
#define ACODEC_DAC_HPMIX_I2S                    (0x1 << ACODEC_DAC_HPMIX_SEL_SFT)
 
/* ACODEC_ADC_PGA_AGC_L_CTL0 */
#define ACODEC_GAIN_ATTACK_MSK            (1 << 6)
#define ACODEC_GAIN_ATTACK_JACK            (1 << 6)
#define ACODEC_GAIN_ATTACK_NORMAL        (0 << 6)
#define ACODEC_CTRL_GEN_SFT            4
#define ACODEC_CTRL_GEN_MSK            (0x3 << ACODEC_ALC_CTRL_GEN_SFT)
#define ACODEC_CTRL_GEN_JACK3            (0x3 << ACODEC_ALC_CTRL_GEN_SFT)
#define ACODEC_CTRL_GEN_JACK2            (0x2 << ACODEC_ALC_CTRL_GEN_SFT)
#define ACODEC_CTRL_GEN_JACK1            (0x1 << ACODEC_ALC_CTRL_GEN_SFT)
#define ACODEC_CTRL_GEN_NORMAL            (0x0 << ACODEC_ALC_CTRL_GEN_SFT)
#define ACODEC_AGC_HOLD_TIME_SFT        0
#define ACODEC_AGC_HOLD_TIME_MSK        (0xf << ACODEC_AGC_HOLD_TIME_SFT)
#define ACODEC_AGC_HOLD_TIME_1S            (0xa << ACODEC_AGC_HOLD_TIME_SFT)
#define ACODEC_AGC_HOLD_TIME_512MS        (0x9 << ACODEC_AGC_HOLD_TIME_SFT)
#define ACODEC_AGC_HOLD_TIME_256MS        (0x8 << ACODEC_AGC_HOLD_TIME_SFT)
#define ACODEC_AGC_HOLD_TIME_128MS        (0x7 << ACODEC_AGC_HOLD_TIME_SFT)
#define ACODEC_AGC_HOLD_TIME_64MS        (0x6 << ACODEC_AGC_HOLD_TIME_SFT)
#define ACODEC_AGC_HOLD_TIME_32MS        (0x5 << ACODEC_AGC_HOLD_TIME_SFT)
#define ACODEC_AGC_HOLD_TIME_16MS        (0x4 << ACODEC_AGC_HOLD_TIME_SFT)
#define ACODEC_AGC_HOLD_TIME_8MS        (0x3 << ACODEC_AGC_HOLD_TIME_SFT)
#define ACODEC_AGC_HOLD_TIME_4MS        (0x2 << ACODEC_AGC_HOLD_TIME_SFT)
#define ACODEC_AGC_HOLD_TIME_2MS        (0x1 << ACODEC_AGC_HOLD_TIME_SFT)
#define ACODEC_AGC_HOLD_TIME_0MS        (0x0 << ACODEC_AGC_HOLD_TIME_SFT)
 
/* ACODEC_ADC_PGA_AGC_L_CTL1 */
#define ACODEC_AGC_DECAY_TIME_SFT        4
/* Normal mode (reg_agc_mode = 0) */
#define ACODEC_AGC_DECAY_NORMAL_MSK        (0xf << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_NORMAL_512MS        (0xa << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_NORMAL_256MS        (0x9 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_NORMAL_128MS        (0x8 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_NORMAL_64MS        (0x7 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_NORMAL_32MS        (0x6 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_NORMAL_16MS        (0x5 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_NORMAL_8MS        (0x4 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_NORMAL_4MS        (0x3 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_NORMAL_2MS        (0x2 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_NORMAL_1MS        (0x1 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_NORMAL_0MS        (0x0 << ACODEC_AGC_DECAY_TIME_SFT)
/* Limiter mode (reg_agc_mode = 1) */
#define ACODEC_AGC_DECAY_LIMITER_MSK        (0xf << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_LIMITER_128MS        (0xa << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_LIMITER_64MS        (0x9 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_LIMITER_32MS        (0x8 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_LIMITER_16MS        (0x7 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_LIMITER_8MS        (0x6 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_LIMITER_4MS        (0x5 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_LIMITER_2MS        (0x4 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_LIMITER_1MS        (0x3 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_LIMITER_500US        (0x2 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_LIMITER_250US        (0x1 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_DECAY_LIMITER_125US        (0x0 << ACODEC_AGC_DECAY_TIME_SFT)
#define ACODEC_AGC_ATTACK_TIME_SFT        0
/* Normal mode (reg_agc_mode = 0) */
#define ACODEC_AGC_ATTACK_NORMAL_MSK        (0xf << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_NORMAL_128MS        (0xa << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_NORMAL_64MS        (0x9 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_NORMAL_32MS        (0x8 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_NORMAL_16MS        (0x7 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_NORMAL_8MS        (0x6 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_NORMAL_4MS        (0x5 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_NORMAL_2MS        (0x4 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_NORMAL_1MS        (0x3 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_NORMAL_500US        (0x2 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_NORMAL_250US        (0x1 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_NORMAL_125US        (0x0 << ACODEC_AGC_ATTACK_TIME_SFT)
/* Limiter mode (reg_agc_mode = 1) */
#define ACODEC_AGC_ATTACK_LIMITER_MSK        (0xf << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_LIMITER_32MS        (0xa << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_LIMITER_16MS        (0x9 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_LIMITER_8MS        (0x8 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_LIMITER_4MS        (0x7 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_LIMITER_2MS        (0x6 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_LIMITER_1MS        (0x5 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_LIMITER_500US        (0x4 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_LIMITER_250US        (0x3 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_LIMITER_125US        (0x2 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_LIMITER_64US        (0x1 << ACODEC_AGC_ATTACK_TIME_SFT)
#define ACODEC_AGC_ATTACK_LIMITER_32US        (0x0 << ACODEC_AGC_ATTACK_TIME_SFT)
 
/* ACODEC_ADC_PGA_AGC_L_CTL2 */
#define ACODEC_AGC_MODE_LIMITER            (0x1 << 7)
#define ACODEC_AGC_MODE_NORMAL            (0x0 << 7)
#define ACODEC_AGC_ZERO_CRO_EN            (0x1 << 6)
#define ACODEC_AGC_ZERO_CRO_DIS            (0x0 << 6)
#define ACODEC_AGC_AMP_RECOVER_GAIN        (0x1 << 5)
#define ACODEC_AGC_AMP_RECOVER_LVOL        (0x0 << 5)
#define ACODEC_AGC_FAST_DEC_EN            (0x1 << 4)
#define ACODEC_AGC_FAST_DEC_DIS            (0x0 << 4)
#define ACODEC_AGC_NOISE_GATE_EN        (0x1 << 3)
#define ACODEC_AGC_NOISE_GATE_DIS        (0x0 << 3)
#define ACODEC_AGC_NOISE_GATE_THRESH_SFT    0
#define ACODEC_AGC_NOISE_GATE_THRESH_MSK    (0x7 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
#define ACODEC_AGC_NOISE_GATE_THRESH_N81DB    (0x7 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
#define ACODEC_AGC_NOISE_GATE_THRESH_N75DB    (0x6 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
#define ACODEC_AGC_NOISE_GATE_THRESH_N69DB    (0x5 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
#define ACODEC_AGC_NOISE_GATE_THRESH_N63DB    (0x4 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
#define ACODEC_AGC_NOISE_GATE_THRESH_N57DB    (0x3 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
#define ACODEC_AGC_NOISE_GATE_THRESH_N51DB    (0x2 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
#define ACODEC_AGC_NOISE_GATE_THRESH_N45DB    (0x1 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
#define ACODEC_AGC_NOISE_GATE_THRESH_N39DB    (0x0 << ACODEC_AGC_NOISE_GATE_THRESH_SFT)
 
/* ACODEC_ADC_PGA_AGC_L_CTL3 */
#define ACODEC_AGC_PGA_ZERO_CRO_EN        (0x1 << 5)
#define ACODEC_AGC_PGA_ZERO_CRO_DIS        (0x0 << 5)
#define ACODEC_AGC_PGA_GAIN_MAX            0x1f
#define ACODEC_AGC_PGA_GAIN_MIN            0
#define ACODEC_AGC_PGA_GAIN_SFT            0
#define ACODEC_AGC_PGA_GAIN_MSK            (0x1f << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_28_5        (0x1f << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_27        (0x1e << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_25_5        (0x1d << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_24        (0x1c << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_22_5        (0x1b << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_21        (0x1a << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_19_5        (0x19 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_18        (0x18 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_16_5        (0x17 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_15        (0x16 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_13_5        (0x15 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_12        (0x14 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_10_5        (0x13 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_9        (0x12 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_7_5        (0x11 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_6        (0x10 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_4_5        (0x0f << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_3        (0x0e << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_PDB_1_5        (0x0d << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_0DB            (0x0c << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_NDB_1_5        (0x0b << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_NDB_3        (0x0a << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_NDB_4_5        (0x09 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_NDB_6        (0x08 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_NDB_7_5        (0x07 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_NDB_9        (0x06 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_NDB_10_5        (0x05 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_NDB_12        (0x04 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_NDB_13_5        (0x03 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_NDB_15        (0x02 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_NDB_16_5        (0x01 << ACODEC_AGC_PGA_GAIN_SFT)
#define ACODEC_AGC_PGA_GAIN_NDB_18        (0x00 << ACODEC_AGC_PGA_GAIN_SFT)
 
/* ACODEC_ADC_PGA_AGC_L_CTL4 */
#define ACODEC_AGC_SLOW_CLK_EN            (0x1 << 3)
#define ACODEC_AGC_SLOW_CLK_DIS            (0x0 << 3)
#define ACODEC_AGC_APPROX_RATE_SFT        0
#define ACODEC_AGC_APPROX_RATE_MSK        (0x7 << ACODEC_AGC_APPROX_RATE_SFT)
#define ACODEC_AGC_APPROX_RATE_8K        (0x7 << ACODEC_AGC_APPROX_RATE_SFT)
#define ACODEC_AGC_APPROX_RATE_12K        (0x6 << ACODEC_AGC_APPROX_RATE_SFT)
#define ACODEC_AGC_APPROX_RATE_16K        (0x5 << ACODEC_AGC_APPROX_RATE_SFT)
#define ACODEC_AGC_APPROX_RATE_24K        (0x4 << ACODEC_AGC_APPROX_RATE_SFT)
#define ACODEC_AGC_APPROX_RATE_32K        (0x3 << ACODEC_AGC_APPROX_RATE_SFT)
#define ACODEC_AGC_APPROX_RATE_44_1K        (0x2 << ACODEC_AGC_APPROX_RATE_SFT)
#define ACODEC_AGC_APPROX_RATE_48K        (0x1 << ACODEC_AGC_APPROX_RATE_SFT)
#define ACODEC_AGC_APPROX_RATE_96K        (0x0 << ACODEC_AGC_APPROX_RATE_SFT)
 
/* ACODEC_ADC_PGA_AGC_L_CTL5 */
#define ACODEC_AGC_LO_8BITS_AGC_MAX_MSK        0xff
 
/* ACODEC_ADC_PGA_AGC_L_CTL6 */
#define ACODEC_AGC_HI_8BITS_AGC_MAX_MSK        0xff
 
/* ACODEC_ADC_PGA_AGC_L_CTL7 */
#define ACODEC_AGC_LO_8BITS_AGC_MIN_MSK        0xff
 
/* ACODEC_ADC_PGA_AGC_L_CTL8 */
#define ACODEC_AGC_HI_8BITS_AGC_MIN_MSK        0xff
 
/* ACODEC_ADC_PGA_AGC_L_CTL9 */
#define ACODEC_AGC_FUNC_SEL_MSK            (0x1 << 6)
#define ACODEC_AGC_FUNC_SEL_EN            (0x1 << 6)
#define ACODEC_AGC_FUNC_SEL_DIS            (0x0 << 6)
#define ACODEC_AGC_MAX_GAIN_PGA_MAX        0x7
#define ACODEC_AGC_MAX_GAIN_PGA_MIN        0
#define ACODEC_AGC_MAX_GAIN_PGA_SFT        3
#define ACODEC_AGC_MAX_GAIN_PGA_MSK        (0x7 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
#define ACODEC_AGC_MAX_GAIN_PGA_PDB_28_5    (0x7 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
#define ACODEC_AGC_MAX_GAIN_PGA_PDB_22_5    (0x6 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
#define ACODEC_AGC_MAX_GAIN_PGA_PDB_16_5    (0x5 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
#define ACODEC_AGC_MAX_GAIN_PGA_PDB_10_5    (0x4 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
#define ACODEC_AGC_MAX_GAIN_PGA_PDB_4_5        (0x3 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
#define ACODEC_AGC_MAX_GAIN_PGA_NDB_1_5        (0x2 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
#define ACODEC_AGC_MAX_GAIN_PGA_NDB_7_5        (0x1 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
#define ACODEC_AGC_MAX_GAIN_PGA_NDB_13_5    (0x0 << ACODEC_AGC_MAX_GAIN_PGA_SFT)
#define ACODEC_AGC_MIN_GAIN_PGA_MAX        0x7
#define ACODEC_AGC_MIN_GAIN_PGA_MIN        0
#define ACODEC_AGC_MIN_GAIN_PGA_SFT        0
#define ACODEC_AGC_MIN_GAIN_PGA_MSK        (0x7 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
#define ACODEC_AGC_MIN_GAIN_PGA_PDB_24        (0x7 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
#define ACODEC_AGC_MIN_GAIN_PGA_PDB_18        (0x6 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
#define ACODEC_AGC_MIN_GAIN_PGA_PDB_12        (0x5 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
#define ACODEC_AGC_MIN_GAIN_PGA_PDB_6        (0x4 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
#define ACODEC_AGC_MIN_GAIN_PGA_0DB        (0x3 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
#define ACODEC_AGC_MIN_GAIN_PGA_NDB_6        (0x2 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
#define ACODEC_AGC_MIN_GAIN_PGA_NDB_12        (0x1 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
#define ACODEC_AGC_MIN_GAIN_PGA_NDB_18        (0x0 << ACODEC_AGC_MIN_GAIN_PGA_SFT)
 
#define ACODEC_HIFI                0x0
 
#endif /* __RV1106_CODEC_H__ */