forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrt5616.h
1816 lines (1709 loc) · 62.4 KB
/
rt5616.h
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
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* rt5616.h -- RT5616 ALSA SoC audio driver
*
* Copyright 2011 Realtek Microelectronics
* Author: Johnny Hsu <[email protected]>
*/
#ifndef __RT5616_H__
#define __RT5616_H__
/* Info */
#define RT5616_RESET 0x00
#define RT5616_VERSION_ID 0xfd
#define RT5616_VENDOR_ID 0xfe
#define RT5616_DEVICE_ID 0xff
/* I/O - Output */
#define RT5616_HP_VOL 0x02
#define RT5616_LOUT_CTRL1 0x03
#define RT5616_LOUT_CTRL2 0x05
/* I/O - Input */
#define RT5616_IN1_IN2 0x0d
#define RT5616_INL1_INR1_VOL 0x0f
/* I/O - ADC/DAC/DMIC */
#define RT5616_DAC1_DIG_VOL 0x19
#define RT5616_ADC_DIG_VOL 0x1c
#define RT5616_ADC_BST_VOL 0x1e
/* Mixer - D-D */
#define RT5616_STO1_ADC_MIXER 0x27
#define RT5616_AD_DA_MIXER 0x29
#define RT5616_STO_DAC_MIXER 0x2a
/* Mixer - ADC */
#define RT5616_REC_L1_MIXER 0x3b
#define RT5616_REC_L2_MIXER 0x3c
#define RT5616_REC_R1_MIXER 0x3d
#define RT5616_REC_R2_MIXER 0x3e
/* Mixer - DAC */
#define RT5616_HPO_MIXER 0x45
#define RT5616_OUT_L1_MIXER 0x4d
#define RT5616_OUT_L2_MIXER 0x4e
#define RT5616_OUT_L3_MIXER 0x4f
#define RT5616_OUT_R1_MIXER 0x50
#define RT5616_OUT_R2_MIXER 0x51
#define RT5616_OUT_R3_MIXER 0x52
#define RT5616_LOUT_MIXER 0x53
/* Power */
#define RT5616_PWR_DIG1 0x61
#define RT5616_PWR_DIG2 0x62
#define RT5616_PWR_ANLG1 0x63
#define RT5616_PWR_ANLG2 0x64
#define RT5616_PWR_MIXER 0x65
#define RT5616_PWR_VOL 0x66
/* Private Register Control */
#define RT5616_PRIV_INDEX 0x6a
#define RT5616_PRIV_DATA 0x6c
/* Format - ADC/DAC */
#define RT5616_I2S1_SDP 0x70
#define RT5616_ADDA_CLK1 0x73
#define RT5616_ADDA_CLK2 0x74
/* Function - Analog */
#define RT5616_GLB_CLK 0x80
#define RT5616_PLL_CTRL1 0x81
#define RT5616_PLL_CTRL2 0x82
#define RT5616_HP_OVCD 0x8b
#define RT5616_DEPOP_M1 0x8e
#define RT5616_DEPOP_M2 0x8f
#define RT5616_DEPOP_M3 0x90
#define RT5616_CHARGE_PUMP 0x91
#define RT5616_PV_DET_SPK_G 0x92
#define RT5616_MICBIAS 0x93
#define RT5616_A_JD_CTL1 0x94
#define RT5616_A_JD_CTL2 0x95
/* Function - Digital */
#define RT5616_EQ_CTRL1 0xb0
#define RT5616_EQ_CTRL2 0xb1
#define RT5616_WIND_FILTER 0xb2
#define RT5616_DRC_AGC_1 0xb4
#define RT5616_DRC_AGC_2 0xb5
#define RT5616_DRC_AGC_3 0xb6
#define RT5616_SVOL_ZC 0xb7
#define RT5616_JD_CTRL1 0xbb
#define RT5616_JD_CTRL2 0xbc
#define RT5616_IRQ_CTRL1 0xbd
#define RT5616_IRQ_CTRL2 0xbe
#define RT5616_INT_IRQ_ST 0xbf
#define RT5616_GPIO_CTRL1 0xc0
#define RT5616_GPIO_CTRL2 0xc1
#define RT5616_GPIO_CTRL3 0xc2
#define RT5616_PGM_REG_ARR1 0xc8
#define RT5616_PGM_REG_ARR2 0xc9
#define RT5616_PGM_REG_ARR3 0xca
#define RT5616_PGM_REG_ARR4 0xcb
#define RT5616_PGM_REG_ARR5 0xcc
#define RT5616_SCB_FUNC 0xcd
#define RT5616_SCB_CTRL 0xce
#define RT5616_BASE_BACK 0xcf
#define RT5616_MP3_PLUS1 0xd0
#define RT5616_MP3_PLUS2 0xd1
#define RT5616_ADJ_HPF_CTRL1 0xd3
#define RT5616_ADJ_HPF_CTRL2 0xd4
#define RT5616_HP_CALIB_AMP_DET 0xd6
#define RT5616_HP_CALIB2 0xd7
#define RT5616_SV_ZCD1 0xd9
#define RT5616_SV_ZCD2 0xda
#define RT5616_D_MISC 0xfa
/* Dummy Register */
#define RT5616_DUMMY2 0xfb
#define RT5616_DUMMY3 0xfc
/* Index of Codec Private Register definition */
#define RT5616_BIAS_CUR1 0x12
#define RT5616_BIAS_CUR3 0x14
#define RT5616_CLSD_INT_REG1 0x1c
#define RT5616_MAMP_INT_REG2 0x37
#define RT5616_CHOP_DAC_ADC 0x3d
#define RT5616_3D_SPK 0x63
#define RT5616_WND_1 0x6c
#define RT5616_WND_2 0x6d
#define RT5616_WND_3 0x6e
#define RT5616_WND_4 0x6f
#define RT5616_WND_5 0x70
#define RT5616_WND_8 0x73
#define RT5616_DIP_SPK_INF 0x75
#define RT5616_HP_DCC_INT1 0x77
#define RT5616_EQ_BW_LOP 0xa0
#define RT5616_EQ_GN_LOP 0xa1
#define RT5616_EQ_FC_BP1 0xa2
#define RT5616_EQ_BW_BP1 0xa3
#define RT5616_EQ_GN_BP1 0xa4
#define RT5616_EQ_FC_BP2 0xa5
#define RT5616_EQ_BW_BP2 0xa6
#define RT5616_EQ_GN_BP2 0xa7
#define RT5616_EQ_FC_BP3 0xa8
#define RT5616_EQ_BW_BP3 0xa9
#define RT5616_EQ_GN_BP3 0xaa
#define RT5616_EQ_FC_BP4 0xab
#define RT5616_EQ_BW_BP4 0xac
#define RT5616_EQ_GN_BP4 0xad
#define RT5616_EQ_FC_HIP1 0xae
#define RT5616_EQ_GN_HIP1 0xaf
#define RT5616_EQ_FC_HIP2 0xb0
#define RT5616_EQ_BW_HIP2 0xb1
#define RT5616_EQ_GN_HIP2 0xb2
#define RT5616_EQ_PRE_VOL 0xb3
#define RT5616_EQ_PST_VOL 0xb4
/* global definition */
#define RT5616_L_MUTE (0x1 << 15)
#define RT5616_L_MUTE_SFT 15
#define RT5616_VOL_L_MUTE (0x1 << 14)
#define RT5616_VOL_L_SFT 14
#define RT5616_R_MUTE (0x1 << 7)
#define RT5616_R_MUTE_SFT 7
#define RT5616_VOL_R_MUTE (0x1 << 6)
#define RT5616_VOL_R_SFT 6
#define RT5616_L_VOL_MASK (0x3f << 8)
#define RT5616_L_VOL_SFT 8
#define RT5616_R_VOL_MASK (0x3f)
#define RT5616_R_VOL_SFT 0
/* LOUT Control 2(0x05) */
#define RT5616_EN_DFO (0x1 << 15)
/* IN1 and IN2 Control (0x0d) */
/* IN3 and IN4 Control (0x0e) */
#define RT5616_BST_MASK1 (0xf<<12)
#define RT5616_BST_SFT1 12
#define RT5616_BST_MASK2 (0xf<<8)
#define RT5616_BST_SFT2 8
#define RT5616_IN_DF1 (0x1 << 7)
#define RT5616_IN_SFT1 7
#define RT5616_IN_DF2 (0x1 << 6)
#define RT5616_IN_SFT2 6
/* INL1 and INR1 Volume Control (0x0f) */
#define RT5616_INL_VOL_MASK (0x1f << 8)
#define RT5616_INL_VOL_SFT 8
#define RT5616_INR_SEL_MASK (0x1 << 7)
#define RT5616_INR_SEL_SFT 7
#define RT5616_INR_SEL_IN4N (0x0 << 7)
#define RT5616_INR_SEL_MONON (0x1 << 7)
#define RT5616_INR_VOL_MASK (0x1f)
#define RT5616_INR_VOL_SFT 0
/* DAC1 Digital Volume (0x19) */
#define RT5616_DAC_L1_VOL_MASK (0xff << 8)
#define RT5616_DAC_L1_VOL_SFT 8
#define RT5616_DAC_R1_VOL_MASK (0xff)
#define RT5616_DAC_R1_VOL_SFT 0
/* DAC2 Digital Volume (0x1a) */
#define RT5616_DAC_L2_VOL_MASK (0xff << 8)
#define RT5616_DAC_L2_VOL_SFT 8
#define RT5616_DAC_R2_VOL_MASK (0xff)
#define RT5616_DAC_R2_VOL_SFT 0
/* ADC Digital Volume Control (0x1c) */
#define RT5616_ADC_L_VOL_MASK (0x7f << 8)
#define RT5616_ADC_L_VOL_SFT 8
#define RT5616_ADC_R_VOL_MASK (0x7f)
#define RT5616_ADC_R_VOL_SFT 0
/* Mono ADC Digital Volume Control (0x1d) */
#define RT5616_M_MONO_ADC_L (0x1 << 15)
#define RT5616_M_MONO_ADC_L_SFT 15
#define RT5616_MONO_ADC_L_VOL_MASK (0x7f << 8)
#define RT5616_MONO_ADC_L_VOL_SFT 8
#define RT5616_M_MONO_ADC_R (0x1 << 7)
#define RT5616_M_MONO_ADC_R_SFT 7
#define RT5616_MONO_ADC_R_VOL_MASK (0x7f)
#define RT5616_MONO_ADC_R_VOL_SFT 0
/* ADC Boost Volume Control (0x1e) */
#define RT5616_ADC_L_BST_MASK (0x3 << 14)
#define RT5616_ADC_L_BST_SFT 14
#define RT5616_ADC_R_BST_MASK (0x3 << 12)
#define RT5616_ADC_R_BST_SFT 12
#define RT5616_ADC_COMP_MASK (0x3 << 10)
#define RT5616_ADC_COMP_SFT 10
/* Stereo ADC1 Mixer Control (0x27) */
#define RT5616_M_STO1_ADC_L1 (0x1 << 14)
#define RT5616_M_STO1_ADC_L1_SFT 14
#define RT5616_M_STO1_ADC_R1 (0x1 << 6)
#define RT5616_M_STO1_ADC_R1_SFT 6
/* ADC Mixer to DAC Mixer Control (0x29) */
#define RT5616_M_ADCMIX_L (0x1 << 15)
#define RT5616_M_ADCMIX_L_SFT 15
#define RT5616_M_IF1_DAC_L (0x1 << 14)
#define RT5616_M_IF1_DAC_L_SFT 14
#define RT5616_M_ADCMIX_R (0x1 << 7)
#define RT5616_M_ADCMIX_R_SFT 7
#define RT5616_M_IF1_DAC_R (0x1 << 6)
#define RT5616_M_IF1_DAC_R_SFT 6
/* Stereo DAC Mixer Control (0x2a) */
#define RT5616_M_DAC_L1_MIXL (0x1 << 14)
#define RT5616_M_DAC_L1_MIXL_SFT 14
#define RT5616_DAC_L1_STO_L_VOL_MASK (0x1 << 13)
#define RT5616_DAC_L1_STO_L_VOL_SFT 13
#define RT5616_M_DAC_R1_MIXL (0x1 << 9)
#define RT5616_M_DAC_R1_MIXL_SFT 9
#define RT5616_DAC_R1_STO_L_VOL_MASK (0x1 << 8)
#define RT5616_DAC_R1_STO_L_VOL_SFT 8
#define RT5616_M_DAC_R1_MIXR (0x1 << 6)
#define RT5616_M_DAC_R1_MIXR_SFT 6
#define RT5616_DAC_R1_STO_R_VOL_MASK (0x1 << 5)
#define RT5616_DAC_R1_STO_R_VOL_SFT 5
#define RT5616_M_DAC_L1_MIXR (0x1 << 1)
#define RT5616_M_DAC_L1_MIXR_SFT 1
#define RT5616_DAC_L1_STO_R_VOL_MASK (0x1)
#define RT5616_DAC_L1_STO_R_VOL_SFT 0
/* DD Mixer Control (0x2b) */
#define RT5616_M_STO_DD_L1 (0x1 << 14)
#define RT5616_M_STO_DD_L1_SFT 14
#define RT5616_STO_DD_L1_VOL_MASK (0x1 << 13)
#define RT5616_DAC_DD_L1_VOL_SFT 13
#define RT5616_M_STO_DD_L2 (0x1 << 12)
#define RT5616_M_STO_DD_L2_SFT 12
#define RT5616_STO_DD_L2_VOL_MASK (0x1 << 11)
#define RT5616_STO_DD_L2_VOL_SFT 11
#define RT5616_M_STO_DD_R2_L (0x1 << 10)
#define RT5616_M_STO_DD_R2_L_SFT 10
#define RT5616_STO_DD_R2_L_VOL_MASK (0x1 << 9)
#define RT5616_STO_DD_R2_L_VOL_SFT 9
#define RT5616_M_STO_DD_R1 (0x1 << 6)
#define RT5616_M_STO_DD_R1_SFT 6
#define RT5616_STO_DD_R1_VOL_MASK (0x1 << 5)
#define RT5616_STO_DD_R1_VOL_SFT 5
#define RT5616_M_STO_DD_R2 (0x1 << 4)
#define RT5616_M_STO_DD_R2_SFT 4
#define RT5616_STO_DD_R2_VOL_MASK (0x1 << 3)
#define RT5616_STO_DD_R2_VOL_SFT 3
#define RT5616_M_STO_DD_L2_R (0x1 << 2)
#define RT5616_M_STO_DD_L2_R_SFT 2
#define RT5616_STO_DD_L2_R_VOL_MASK (0x1 << 1)
#define RT5616_STO_DD_L2_R_VOL_SFT 1
/* Digital Mixer Control (0x2c) */
#define RT5616_M_STO_L_DAC_L (0x1 << 15)
#define RT5616_M_STO_L_DAC_L_SFT 15
#define RT5616_STO_L_DAC_L_VOL_MASK (0x1 << 14)
#define RT5616_STO_L_DAC_L_VOL_SFT 14
#define RT5616_M_DAC_L2_DAC_L (0x1 << 13)
#define RT5616_M_DAC_L2_DAC_L_SFT 13
#define RT5616_DAC_L2_DAC_L_VOL_MASK (0x1 << 12)
#define RT5616_DAC_L2_DAC_L_VOL_SFT 12
#define RT5616_M_STO_R_DAC_R (0x1 << 11)
#define RT5616_M_STO_R_DAC_R_SFT 11
#define RT5616_STO_R_DAC_R_VOL_MASK (0x1 << 10)
#define RT5616_STO_R_DAC_R_VOL_SFT 10
#define RT5616_M_DAC_R2_DAC_R (0x1 << 9)
#define RT5616_M_DAC_R2_DAC_R_SFT 9
#define RT5616_DAC_R2_DAC_R_VOL_MASK (0x1 << 8)
#define RT5616_DAC_R2_DAC_R_VOL_SFT 8
/* DSP Path Control 1 (0x2d) */
#define RT5616_RXDP_SRC_MASK (0x1 << 15)
#define RT5616_RXDP_SRC_SFT 15
#define RT5616_RXDP_SRC_NOR (0x0 << 15)
#define RT5616_RXDP_SRC_DIV3 (0x1 << 15)
#define RT5616_TXDP_SRC_MASK (0x1 << 14)
#define RT5616_TXDP_SRC_SFT 14
#define RT5616_TXDP_SRC_NOR (0x0 << 14)
#define RT5616_TXDP_SRC_DIV3 (0x1 << 14)
/* DSP Path Control 2 (0x2e) */
#define RT5616_DAC_L2_SEL_MASK (0x3 << 14)
#define RT5616_DAC_L2_SEL_SFT 14
#define RT5616_DAC_L2_SEL_IF2 (0x0 << 14)
#define RT5616_DAC_L2_SEL_IF3 (0x1 << 14)
#define RT5616_DAC_L2_SEL_TXDC (0x2 << 14)
#define RT5616_DAC_L2_SEL_BASS (0x3 << 14)
#define RT5616_DAC_R2_SEL_MASK (0x3 << 12)
#define RT5616_DAC_R2_SEL_SFT 12
#define RT5616_DAC_R2_SEL_IF2 (0x0 << 12)
#define RT5616_DAC_R2_SEL_IF3 (0x1 << 12)
#define RT5616_DAC_R2_SEL_TXDC (0x2 << 12)
#define RT5616_IF2_ADC_L_SEL_MASK (0x1 << 11)
#define RT5616_IF2_ADC_L_SEL_SFT 11
#define RT5616_IF2_ADC_L_SEL_TXDP (0x0 << 11)
#define RT5616_IF2_ADC_L_SEL_PASS (0x1 << 11)
#define RT5616_IF2_ADC_R_SEL_MASK (0x1 << 10)
#define RT5616_IF2_ADC_R_SEL_SFT 10
#define RT5616_IF2_ADC_R_SEL_TXDP (0x0 << 10)
#define RT5616_IF2_ADC_R_SEL_PASS (0x1 << 10)
#define RT5616_RXDC_SEL_MASK (0x3 << 8)
#define RT5616_RXDC_SEL_SFT 8
#define RT5616_RXDC_SEL_NOR (0x0 << 8)
#define RT5616_RXDC_SEL_L2R (0x1 << 8)
#define RT5616_RXDC_SEL_R2L (0x2 << 8)
#define RT5616_RXDC_SEL_SWAP (0x3 << 8)
#define RT5616_RXDP_SEL_MASK (0x3 << 6)
#define RT5616_RXDP_SEL_SFT 6
#define RT5616_RXDP_SEL_NOR (0x0 << 6)
#define RT5616_RXDP_SEL_L2R (0x1 << 6)
#define RT5616_RXDP_SEL_R2L (0x2 << 6)
#define RT5616_RXDP_SEL_SWAP (0x3 << 6)
#define RT5616_TXDC_SEL_MASK (0x3 << 4)
#define RT5616_TXDC_SEL_SFT 4
#define RT5616_TXDC_SEL_NOR (0x0 << 4)
#define RT5616_TXDC_SEL_L2R (0x1 << 4)
#define RT5616_TXDC_SEL_R2L (0x2 << 4)
#define RT5616_TXDC_SEL_SWAP (0x3 << 4)
#define RT5616_TXDP_SEL_MASK (0x3 << 2)
#define RT5616_TXDP_SEL_SFT 2
#define RT5616_TXDP_SEL_NOR (0x0 << 2)
#define RT5616_TXDP_SEL_L2R (0x1 << 2)
#define RT5616_TXDP_SEL_R2L (0x2 << 2)
#define RT5616_TRXDP_SEL_SWAP (0x3 << 2)
/* REC Left Mixer Control 1 (0x3b) */
#define RT5616_G_LN_L2_RM_L_MASK (0x7 << 13)
#define RT5616_G_IN_L2_RM_L_SFT 13
#define RT5616_G_LN_L1_RM_L_MASK (0x7 << 10)
#define RT5616_G_IN_L1_RM_L_SFT 10
#define RT5616_G_BST3_RM_L_MASK (0x7 << 4)
#define RT5616_G_BST3_RM_L_SFT 4
#define RT5616_G_BST2_RM_L_MASK (0x7 << 1)
#define RT5616_G_BST2_RM_L_SFT 1
/* REC Left Mixer Control 2 (0x3c) */
#define RT5616_G_BST1_RM_L_MASK (0x7 << 13)
#define RT5616_G_BST1_RM_L_SFT 13
#define RT5616_G_OM_L_RM_L_MASK (0x7 << 10)
#define RT5616_G_OM_L_RM_L_SFT 10
#define RT5616_M_IN2_L_RM_L (0x1 << 6)
#define RT5616_M_IN2_L_RM_L_SFT 6
#define RT5616_M_IN1_L_RM_L (0x1 << 5)
#define RT5616_M_IN1_L_RM_L_SFT 5
#define RT5616_M_BST3_RM_L (0x1 << 3)
#define RT5616_M_BST3_RM_L_SFT 3
#define RT5616_M_BST2_RM_L (0x1 << 2)
#define RT5616_M_BST2_RM_L_SFT 2
#define RT5616_M_BST1_RM_L (0x1 << 1)
#define RT5616_M_BST1_RM_L_SFT 1
#define RT5616_M_OM_L_RM_L (0x1)
#define RT5616_M_OM_L_RM_L_SFT 0
/* REC Right Mixer Control 1 (0x3d) */
#define RT5616_G_IN2_R_RM_R_MASK (0x7 << 13)
#define RT5616_G_IN2_R_RM_R_SFT 13
#define RT5616_G_IN1_R_RM_R_MASK (0x7 << 10)
#define RT5616_G_IN1_R_RM_R_SFT 10
#define RT5616_G_BST3_RM_R_MASK (0x7 << 4)
#define RT5616_G_BST3_RM_R_SFT 4
#define RT5616_G_BST2_RM_R_MASK (0x7 << 1)
#define RT5616_G_BST2_RM_R_SFT 1
/* REC Right Mixer Control 2 (0x3e) */
#define RT5616_G_BST1_RM_R_MASK (0x7 << 13)
#define RT5616_G_BST1_RM_R_SFT 13
#define RT5616_G_OM_R_RM_R_MASK (0x7 << 10)
#define RT5616_G_OM_R_RM_R_SFT 10
#define RT5616_M_IN2_R_RM_R (0x1 << 6)
#define RT5616_M_IN2_R_RM_R_SFT 6
#define RT5616_M_IN1_R_RM_R (0x1 << 5)
#define RT5616_M_IN1_R_RM_R_SFT 5
#define RT5616_M_BST3_RM_R (0x1 << 3)
#define RT5616_M_BST3_RM_R_SFT 3
#define RT5616_M_BST2_RM_R (0x1 << 2)
#define RT5616_M_BST2_RM_R_SFT 2
#define RT5616_M_BST1_RM_R (0x1 << 1)
#define RT5616_M_BST1_RM_R_SFT 1
#define RT5616_M_OM_R_RM_R (0x1)
#define RT5616_M_OM_R_RM_R_SFT 0
/* HPMIX Control (0x45) */
#define RT5616_M_DAC1_HM (0x1 << 14)
#define RT5616_M_DAC1_HM_SFT 14
#define RT5616_M_HPVOL_HM (0x1 << 13)
#define RT5616_M_HPVOL_HM_SFT 13
#define RT5616_G_HPOMIX_MASK (0x1 << 12)
#define RT5616_G_HPOMIX_SFT 12
/* SPK Left Mixer Control (0x46) */
#define RT5616_G_RM_L_SM_L_MASK (0x3 << 14)
#define RT5616_G_RM_L_SM_L_SFT 14
#define RT5616_G_IN_L_SM_L_MASK (0x3 << 12)
#define RT5616_G_IN_L_SM_L_SFT 12
#define RT5616_G_DAC_L1_SM_L_MASK (0x3 << 10)
#define RT5616_G_DAC_L1_SM_L_SFT 10
#define RT5616_G_DAC_L2_SM_L_MASK (0x3 << 8)
#define RT5616_G_DAC_L2_SM_L_SFT 8
#define RT5616_G_OM_L_SM_L_MASK (0x3 << 6)
#define RT5616_G_OM_L_SM_L_SFT 6
#define RT5616_M_RM_L_SM_L (0x1 << 5)
#define RT5616_M_RM_L_SM_L_SFT 5
#define RT5616_M_IN_L_SM_L (0x1 << 4)
#define RT5616_M_IN_L_SM_L_SFT 4
#define RT5616_M_DAC_L1_SM_L (0x1 << 3)
#define RT5616_M_DAC_L1_SM_L_SFT 3
#define RT5616_M_DAC_L2_SM_L (0x1 << 2)
#define RT5616_M_DAC_L2_SM_L_SFT 2
#define RT5616_M_OM_L_SM_L (0x1 << 1)
#define RT5616_M_OM_L_SM_L_SFT 1
/* SPK Right Mixer Control (0x47) */
#define RT5616_G_RM_R_SM_R_MASK (0x3 << 14)
#define RT5616_G_RM_R_SM_R_SFT 14
#define RT5616_G_IN_R_SM_R_MASK (0x3 << 12)
#define RT5616_G_IN_R_SM_R_SFT 12
#define RT5616_G_DAC_R1_SM_R_MASK (0x3 << 10)
#define RT5616_G_DAC_R1_SM_R_SFT 10
#define RT5616_G_DAC_R2_SM_R_MASK (0x3 << 8)
#define RT5616_G_DAC_R2_SM_R_SFT 8
#define RT5616_G_OM_R_SM_R_MASK (0x3 << 6)
#define RT5616_G_OM_R_SM_R_SFT 6
#define RT5616_M_RM_R_SM_R (0x1 << 5)
#define RT5616_M_RM_R_SM_R_SFT 5
#define RT5616_M_IN_R_SM_R (0x1 << 4)
#define RT5616_M_IN_R_SM_R_SFT 4
#define RT5616_M_DAC_R1_SM_R (0x1 << 3)
#define RT5616_M_DAC_R1_SM_R_SFT 3
#define RT5616_M_DAC_R2_SM_R (0x1 << 2)
#define RT5616_M_DAC_R2_SM_R_SFT 2
#define RT5616_M_OM_R_SM_R (0x1 << 1)
#define RT5616_M_OM_R_SM_R_SFT 1
/* SPOLMIX Control (0x48) */
#define RT5616_M_DAC_R1_SPM_L (0x1 << 15)
#define RT5616_M_DAC_R1_SPM_L_SFT 15
#define RT5616_M_DAC_L1_SPM_L (0x1 << 14)
#define RT5616_M_DAC_L1_SPM_L_SFT 14
#define RT5616_M_SV_R_SPM_L (0x1 << 13)
#define RT5616_M_SV_R_SPM_L_SFT 13
#define RT5616_M_SV_L_SPM_L (0x1 << 12)
#define RT5616_M_SV_L_SPM_L_SFT 12
#define RT5616_M_BST1_SPM_L (0x1 << 11)
#define RT5616_M_BST1_SPM_L_SFT 11
/* SPORMIX Control (0x49) */
#define RT5616_M_DAC_R1_SPM_R (0x1 << 13)
#define RT5616_M_DAC_R1_SPM_R_SFT 13
#define RT5616_M_SV_R_SPM_R (0x1 << 12)
#define RT5616_M_SV_R_SPM_R_SFT 12
#define RT5616_M_BST1_SPM_R (0x1 << 11)
#define RT5616_M_BST1_SPM_R_SFT 11
/* SPOLMIX / SPORMIX Ratio Control (0x4a) */
#define RT5616_SPO_CLSD_RATIO_MASK (0x7)
#define RT5616_SPO_CLSD_RATIO_SFT 0
/* Mono Output Mixer Control (0x4c) */
#define RT5616_M_DAC_R2_MM (0x1 << 15)
#define RT5616_M_DAC_R2_MM_SFT 15
#define RT5616_M_DAC_L2_MM (0x1 << 14)
#define RT5616_M_DAC_L2_MM_SFT 14
#define RT5616_M_OV_R_MM (0x1 << 13)
#define RT5616_M_OV_R_MM_SFT 13
#define RT5616_M_OV_L_MM (0x1 << 12)
#define RT5616_M_OV_L_MM_SFT 12
#define RT5616_M_BST1_MM (0x1 << 11)
#define RT5616_M_BST1_MM_SFT 11
#define RT5616_G_MONOMIX_MASK (0x1 << 10)
#define RT5616_G_MONOMIX_SFT 10
/* Output Left Mixer Control 1 (0x4d) */
#define RT5616_G_BST2_OM_L_MASK (0x7 << 10)
#define RT5616_G_BST2_OM_L_SFT 10
#define RT5616_G_BST1_OM_L_MASK (0x7 << 7)
#define RT5616_G_BST1_OM_L_SFT 7
#define RT5616_G_IN1_L_OM_L_MASK (0x7 << 4)
#define RT5616_G_IN1_L_OM_L_SFT 4
#define RT5616_G_RM_L_OM_L_MASK (0x7 << 1)
#define RT5616_G_RM_L_OM_L_SFT 1
/* Output Left Mixer Control 2 (0x4e) */
#define RT5616_G_DAC_L1_OM_L_MASK (0x7 << 7)
#define RT5616_G_DAC_L1_OM_L_SFT 7
#define RT5616_G_IN2_L_OM_L_MASK (0x7 << 4)
#define RT5616_G_IN2_L_OM_L_SFT 4
/* Output Left Mixer Control 3 (0x4f) */
#define RT5616_M_IN2_L_OM_L (0x1 << 9)
#define RT5616_M_IN2_L_OM_L_SFT 9
#define RT5616_M_BST2_OM_L (0x1 << 6)
#define RT5616_M_BST2_OM_L_SFT 6
#define RT5616_M_BST1_OM_L (0x1 << 5)
#define RT5616_M_BST1_OM_L_SFT 5
#define RT5616_M_IN1_L_OM_L (0x1 << 4)
#define RT5616_M_IN1_L_OM_L_SFT 4
#define RT5616_M_RM_L_OM_L (0x1 << 3)
#define RT5616_M_RM_L_OM_L_SFT 3
#define RT5616_M_DAC_L1_OM_L (0x1)
#define RT5616_M_DAC_L1_OM_L_SFT 0
/* Output Right Mixer Control 1 (0x50) */
#define RT5616_G_BST2_OM_R_MASK (0x7 << 10)
#define RT5616_G_BST2_OM_R_SFT 10
#define RT5616_G_BST1_OM_R_MASK (0x7 << 7)
#define RT5616_G_BST1_OM_R_SFT 7
#define RT5616_G_IN1_R_OM_R_MASK (0x7 << 4)
#define RT5616_G_IN1_R_OM_R_SFT 4
#define RT5616_G_RM_R_OM_R_MASK (0x7 << 1)
#define RT5616_G_RM_R_OM_R_SFT 1
/* Output Right Mixer Control 2 (0x51) */
#define RT5616_G_DAC_R1_OM_R_MASK (0x7 << 7)
#define RT5616_G_DAC_R1_OM_R_SFT 7
#define RT5616_G_IN2_R_OM_R_MASK (0x7 << 4)
#define RT5616_G_IN2_R_OM_R_SFT 4
/* Output Right Mixer Control 3 (0x52) */
#define RT5616_M_IN2_R_OM_R (0x1 << 9)
#define RT5616_M_IN2_R_OM_R_SFT 9
#define RT5616_M_BST2_OM_R (0x1 << 6)
#define RT5616_M_BST2_OM_R_SFT 6
#define RT5616_M_BST1_OM_R (0x1 << 5)
#define RT5616_M_BST1_OM_R_SFT 5
#define RT5616_M_IN1_R_OM_R (0x1 << 4)
#define RT5616_M_IN1_R_OM_R_SFT 4
#define RT5616_M_RM_R_OM_R (0x1 << 3)
#define RT5616_M_RM_R_OM_R_SFT 3
#define RT5616_M_DAC_R1_OM_R (0x1)
#define RT5616_M_DAC_R1_OM_R_SFT 0
/* LOUT Mixer Control (0x53) */
#define RT5616_M_DAC_L1_LM (0x1 << 15)
#define RT5616_M_DAC_L1_LM_SFT 15
#define RT5616_M_DAC_R1_LM (0x1 << 14)
#define RT5616_M_DAC_R1_LM_SFT 14
#define RT5616_M_OV_L_LM (0x1 << 13)
#define RT5616_M_OV_L_LM_SFT 13
#define RT5616_M_OV_R_LM (0x1 << 12)
#define RT5616_M_OV_R_LM_SFT 12
#define RT5616_G_LOUTMIX_MASK (0x1 << 11)
#define RT5616_G_LOUTMIX_SFT 11
/* Power Management for Digital 1 (0x61) */
#define RT5616_PWR_I2S1 (0x1 << 15)
#define RT5616_PWR_I2S1_BIT 15
#define RT5616_PWR_I2S2 (0x1 << 14)
#define RT5616_PWR_I2S2_BIT 14
#define RT5616_PWR_DAC_L1 (0x1 << 12)
#define RT5616_PWR_DAC_L1_BIT 12
#define RT5616_PWR_DAC_R1 (0x1 << 11)
#define RT5616_PWR_DAC_R1_BIT 11
#define RT5616_PWR_ADC_L (0x1 << 2)
#define RT5616_PWR_ADC_L_BIT 2
#define RT5616_PWR_ADC_R (0x1 << 1)
#define RT5616_PWR_ADC_R_BIT 1
/* Power Management for Digital 2 (0x62) */
#define RT5616_PWR_ADC_STO1_F (0x1 << 15)
#define RT5616_PWR_ADC_STO1_F_BIT 15
#define RT5616_PWR_DAC_STO1_F (0x1 << 11)
#define RT5616_PWR_DAC_STO1_F_BIT 11
/* Power Management for Analog 1 (0x63) */
#define RT5616_PWR_VREF1 (0x1 << 15)
#define RT5616_PWR_VREF1_BIT 15
#define RT5616_PWR_FV1 (0x1 << 14)
#define RT5616_PWR_FV1_BIT 14
#define RT5616_PWR_MB (0x1 << 13)
#define RT5616_PWR_MB_BIT 13
#define RT5616_PWR_LM (0x1 << 12)
#define RT5616_PWR_LM_BIT 12
#define RT5616_PWR_BG (0x1 << 11)
#define RT5616_PWR_BG_BIT 11
#define RT5616_PWR_HP_L (0x1 << 7)
#define RT5616_PWR_HP_L_BIT 7
#define RT5616_PWR_HP_R (0x1 << 6)
#define RT5616_PWR_HP_R_BIT 6
#define RT5616_PWR_HA (0x1 << 5)
#define RT5616_PWR_HA_BIT 5
#define RT5616_PWR_VREF2 (0x1 << 4)
#define RT5616_PWR_VREF2_BIT 4
#define RT5616_PWR_FV2 (0x1 << 3)
#define RT5616_PWR_FV2_BIT 3
#define RT5616_PWR_LDO (0x1 << 2)
#define RT5616_PWR_LDO_BIT 2
#define RT5616_PWR_LDO_DVO_MASK (0x3)
#define RT5616_PWR_LDO_DVO_1_0V 0
#define RT5616_PWR_LDO_DVO_1_1V 1
#define RT5616_PWR_LDO_DVO_1_2V 2
#define RT5616_PWR_LDO_DVO_1_3V 3
/* Power Management for Analog 2 (0x64) */
#define RT5616_PWR_BST1 (0x1 << 15)
#define RT5616_PWR_BST1_BIT 15
#define RT5616_PWR_BST2 (0x1 << 14)
#define RT5616_PWR_BST2_BIT 14
#define RT5616_PWR_MB1 (0x1 << 11)
#define RT5616_PWR_MB1_BIT 11
#define RT5616_PWR_PLL (0x1 << 9)
#define RT5616_PWR_PLL_BIT 9
#define RT5616_PWR_BST1_OP2 (0x1 << 5)
#define RT5616_PWR_BST1_OP2_BIT 5
#define RT5616_PWR_BST2_OP2 (0x1 << 4)
#define RT5616_PWR_BST2_OP2_BIT 4
#define RT5616_PWR_BST3_OP2 (0x1 << 3)
#define RT5616_PWR_BST3_OP2_BIT 3
#define RT5616_PWR_JD_M (0x1 << 2)
#define RT5616_PWM_JD_M_BIT 2
#define RT5616_PWR_JD2 (0x1 << 1)
#define RT5616_PWM_JD2_BIT 1
#define RT5616_PWR_JD3 (0x1)
#define RT5616_PWM_JD3_BIT 0
/* Power Management for Mixer (0x65) */
#define RT5616_PWR_OM_L (0x1 << 15)
#define RT5616_PWR_OM_L_BIT 15
#define RT5616_PWR_OM_R (0x1 << 14)
#define RT5616_PWR_OM_R_BIT 14
#define RT5616_PWR_RM_L (0x1 << 11)
#define RT5616_PWR_RM_L_BIT 11
#define RT5616_PWR_RM_R (0x1 << 10)
#define RT5616_PWR_RM_R_BIT 10
/* Power Management for Volume (0x66) */
#define RT5616_PWR_OV_L (0x1 << 13)
#define RT5616_PWR_OV_L_BIT 13
#define RT5616_PWR_OV_R (0x1 << 12)
#define RT5616_PWR_OV_R_BIT 12
#define RT5616_PWR_HV_L (0x1 << 11)
#define RT5616_PWR_HV_L_BIT 11
#define RT5616_PWR_HV_R (0x1 << 10)
#define RT5616_PWR_HV_R_BIT 10
#define RT5616_PWR_IN1_L (0x1 << 9)
#define RT5616_PWR_IN1_L_BIT 9
#define RT5616_PWR_IN1_R (0x1 << 8)
#define RT5616_PWR_IN1_R_BIT 8
#define RT5616_PWR_IN2_L (0x1 << 7)
#define RT5616_PWR_IN2_L_BIT 7
#define RT5616_PWR_IN2_R (0x1 << 6)
#define RT5616_PWR_IN2_R_BIT 6
/* I2S1/2/3 Audio Serial Data Port Control (0x70 0x71) */
#define RT5616_I2S_MS_MASK (0x1 << 15)
#define RT5616_I2S_MS_SFT 15
#define RT5616_I2S_MS_M (0x0 << 15)
#define RT5616_I2S_MS_S (0x1 << 15)
#define RT5616_I2S_O_CP_MASK (0x3 << 10)
#define RT5616_I2S_O_CP_SFT 10
#define RT5616_I2S_O_CP_OFF (0x0 << 10)
#define RT5616_I2S_O_CP_U_LAW (0x1 << 10)
#define RT5616_I2S_O_CP_A_LAW (0x2 << 10)
#define RT5616_I2S_I_CP_MASK (0x3 << 8)
#define RT5616_I2S_I_CP_SFT 8
#define RT5616_I2S_I_CP_OFF (0x0 << 8)
#define RT5616_I2S_I_CP_U_LAW (0x1 << 8)
#define RT5616_I2S_I_CP_A_LAW (0x2 << 8)
#define RT5616_I2S_BP_MASK (0x1 << 7)
#define RT5616_I2S_BP_SFT 7
#define RT5616_I2S_BP_NOR (0x0 << 7)
#define RT5616_I2S_BP_INV (0x1 << 7)
#define RT5616_I2S_DL_MASK (0x3 << 2)
#define RT5616_I2S_DL_SFT 2
#define RT5616_I2S_DL_16 (0x0 << 2)
#define RT5616_I2S_DL_20 (0x1 << 2)
#define RT5616_I2S_DL_24 (0x2 << 2)
#define RT5616_I2S_DL_8 (0x3 << 2)
#define RT5616_I2S_DF_MASK (0x3)
#define RT5616_I2S_DF_SFT 0
#define RT5616_I2S_DF_I2S (0x0)
#define RT5616_I2S_DF_LEFT (0x1)
#define RT5616_I2S_DF_PCM_A (0x2)
#define RT5616_I2S_DF_PCM_B (0x3)
/* ADC/DAC Clock Control 1 (0x73) */
#define RT5616_I2S_PD1_MASK (0x7 << 12)
#define RT5616_I2S_PD1_SFT 12
#define RT5616_I2S_PD1_1 (0x0 << 12)
#define RT5616_I2S_PD1_2 (0x1 << 12)
#define RT5616_I2S_PD1_3 (0x2 << 12)
#define RT5616_I2S_PD1_4 (0x3 << 12)
#define RT5616_I2S_PD1_6 (0x4 << 12)
#define RT5616_I2S_PD1_8 (0x5 << 12)
#define RT5616_I2S_PD1_12 (0x6 << 12)
#define RT5616_I2S_PD1_16 (0x7 << 12)
#define RT5616_I2S_BCLK_MS2_MASK (0x1 << 11)
#define RT5616_DAC_OSR_MASK (0x3 << 2)
#define RT5616_DAC_OSR_SFT 2
#define RT5616_DAC_OSR_128 (0x0 << 2)
#define RT5616_DAC_OSR_64 (0x1 << 2)
#define RT5616_DAC_OSR_32 (0x2 << 2)
#define RT5616_DAC_OSR_128_3 (0x3 << 2)
#define RT5616_ADC_OSR_MASK (0x3)
#define RT5616_ADC_OSR_SFT 0
#define RT5616_ADC_OSR_128 (0x0)
#define RT5616_ADC_OSR_64 (0x1)
#define RT5616_ADC_OSR_32 (0x2)
#define RT5616_ADC_OSR_128_3 (0x3)
/* ADC/DAC Clock Control 2 (0x74) */
#define RT5616_DAHPF_EN (0x1 << 11)
#define RT5616_DAHPF_EN_SFT 11
#define RT5616_ADHPF_EN (0x1 << 10)
#define RT5616_ADHPF_EN_SFT 10
/* TDM Control 1 (0x77) */
#define RT5616_TDM_INTEL_SEL_MASK (0x1 << 15)
#define RT5616_TDM_INTEL_SEL_SFT 15
#define RT5616_TDM_INTEL_SEL_64 (0x0 << 15)
#define RT5616_TDM_INTEL_SEL_50 (0x1 << 15)
#define RT5616_TDM_MODE_SEL_MASK (0x1 << 14)
#define RT5616_TDM_MODE_SEL_SFT 14
#define RT5616_TDM_MODE_SEL_NOR (0x0 << 14)
#define RT5616_TDM_MODE_SEL_TDM (0x1 << 14)
#define RT5616_TDM_CH_NUM_SEL_MASK (0x3 << 12)
#define RT5616_TDM_CH_NUM_SEL_SFT 12
#define RT5616_TDM_CH_NUM_SEL_2 (0x0 << 12)
#define RT5616_TDM_CH_NUM_SEL_4 (0x1 << 12)
#define RT5616_TDM_CH_NUM_SEL_6 (0x2 << 12)
#define RT5616_TDM_CH_NUM_SEL_8 (0x3 << 12)
#define RT5616_TDM_CH_LEN_SEL_MASK (0x3 << 10)
#define RT5616_TDM_CH_LEN_SEL_SFT 10
#define RT5616_TDM_CH_LEN_SEL_16 (0x0 << 10)
#define RT5616_TDM_CH_LEN_SEL_20 (0x1 << 10)
#define RT5616_TDM_CH_LEN_SEL_24 (0x2 << 10)
#define RT5616_TDM_CH_LEN_SEL_32 (0x3 << 10)
#define RT5616_TDM_ADC_SEL_MASK (0x1 << 9)
#define RT5616_TDM_ADC_SEL_SFT 9
#define RT5616_TDM_ADC_SEL_NOR (0x0 << 9)
#define RT5616_TDM_ADC_SEL_SWAP (0x1 << 9)
#define RT5616_TDM_ADC_START_SEL_MASK (0x1 << 8)
#define RT5616_TDM_ADC_START_SEL_SFT 8
#define RT5616_TDM_ADC_START_SEL_SL0 (0x0 << 8)
#define RT5616_TDM_ADC_START_SEL_SL4 (0x1 << 8)
#define RT5616_TDM_I2S_CH2_SEL_MASK (0x3 << 6)
#define RT5616_TDM_I2S_CH2_SEL_SFT 6
#define RT5616_TDM_I2S_CH2_SEL_LR (0x0 << 6)
#define RT5616_TDM_I2S_CH2_SEL_RL (0x1 << 6)
#define RT5616_TDM_I2S_CH2_SEL_LL (0x2 << 6)
#define RT5616_TDM_I2S_CH2_SEL_RR (0x3 << 6)
#define RT5616_TDM_I2S_CH4_SEL_MASK (0x3 << 4)
#define RT5616_TDM_I2S_CH4_SEL_SFT 4
#define RT5616_TDM_I2S_CH4_SEL_LR (0x0 << 4)
#define RT5616_TDM_I2S_CH4_SEL_RL (0x1 << 4)
#define RT5616_TDM_I2S_CH4_SEL_LL (0x2 << 4)
#define RT5616_TDM_I2S_CH4_SEL_RR (0x3 << 4)
#define RT5616_TDM_I2S_CH6_SEL_MASK (0x3 << 2)
#define RT5616_TDM_I2S_CH6_SEL_SFT 2
#define RT5616_TDM_I2S_CH6_SEL_LR (0x0 << 2)
#define RT5616_TDM_I2S_CH6_SEL_RL (0x1 << 2)
#define RT5616_TDM_I2S_CH6_SEL_LL (0x2 << 2)
#define RT5616_TDM_I2S_CH6_SEL_RR (0x3 << 2)
#define RT5616_TDM_I2S_CH8_SEL_MASK (0x3)
#define RT5616_TDM_I2S_CH8_SEL_SFT 0
#define RT5616_TDM_I2S_CH8_SEL_LR (0x0)
#define RT5616_TDM_I2S_CH8_SEL_RL (0x1)
#define RT5616_TDM_I2S_CH8_SEL_LL (0x2)
#define RT5616_TDM_I2S_CH8_SEL_RR (0x3)
/* TDM Control 2 (0x78) */
#define RT5616_TDM_LRCK_POL_SEL_MASK (0x1 << 15)
#define RT5616_TDM_LRCK_POL_SEL_SFT 15
#define RT5616_TDM_LRCK_POL_SEL_NOR (0x0 << 15)
#define RT5616_TDM_LRCK_POL_SEL_INV (0x1 << 15)
#define RT5616_TDM_CH_VAL_SEL_MASK (0x1 << 14)
#define RT5616_TDM_CH_VAL_SEL_SFT 14
#define RT5616_TDM_CH_VAL_SEL_CH01 (0x0 << 14)
#define RT5616_TDM_CH_VAL_SEL_CH0123 (0x1 << 14)
#define RT5616_TDM_CH_VAL_EN (0x1 << 13)
#define RT5616_TDM_CH_VAL_SFT 13
#define RT5616_TDM_LPBK_EN (0x1 << 12)
#define RT5616_TDM_LPBK_SFT 12
#define RT5616_TDM_LRCK_PULSE_SEL_MASK (0x1 << 11)
#define RT5616_TDM_LRCK_PULSE_SEL_SFT 11
#define RT5616_TDM_LRCK_PULSE_SEL_BCLK (0x0 << 11)
#define RT5616_TDM_LRCK_PULSE_SEL_CH (0x1 << 11)
#define RT5616_TDM_END_EDGE_SEL_MASK (0x1 << 10)
#define RT5616_TDM_END_EDGE_SEL_SFT 10
#define RT5616_TDM_END_EDGE_SEL_POS (0x0 << 10)
#define RT5616_TDM_END_EDGE_SEL_NEG (0x1 << 10)
#define RT5616_TDM_END_EDGE_EN (0x1 << 9)
#define RT5616_TDM_END_EDGE_EN_SFT 9
#define RT5616_TDM_TRAN_EDGE_SEL_MASK (0x1 << 8)
#define RT5616_TDM_TRAN_EDGE_SEL_SFT 8
#define RT5616_TDM_TRAN_EDGE_SEL_POS (0x0 << 8)
#define RT5616_TDM_TRAN_EDGE_SEL_NEG (0x1 << 8)
#define RT5616_M_TDM2_L (0x1 << 7)
#define RT5616_M_TDM2_L_SFT 7
#define RT5616_M_TDM2_R (0x1 << 6)
#define RT5616_M_TDM2_R_SFT 6
#define RT5616_M_TDM4_L (0x1 << 5)
#define RT5616_M_TDM4_L_SFT 5
#define RT5616_M_TDM4_R (0x1 << 4)
#define RT5616_M_TDM4_R_SFT 4
/* Global Clock Control (0x80) */
#define RT5616_SCLK_SRC_MASK (0x3 << 14)
#define RT5616_SCLK_SRC_SFT 14
#define RT5616_SCLK_SRC_MCLK (0x0 << 14)
#define RT5616_SCLK_SRC_PLL1 (0x1 << 14)
#define RT5616_PLL1_SRC_MASK (0x3 << 12)
#define RT5616_PLL1_SRC_SFT 12
#define RT5616_PLL1_SRC_MCLK (0x0 << 12)
#define RT5616_PLL1_SRC_BCLK1 (0x1 << 12)
#define RT5616_PLL1_SRC_BCLK2 (0x2 << 12)
#define RT5616_PLL1_PD_MASK (0x1 << 3)
#define RT5616_PLL1_PD_SFT 3
#define RT5616_PLL1_PD_1 (0x0 << 3)
#define RT5616_PLL1_PD_2 (0x1 << 3)
#define RT5616_PLL_INP_MAX 40000000
#define RT5616_PLL_INP_MIN 256000
/* PLL M/N/K Code Control 1 (0x81) */
#define RT5616_PLL_N_MAX 0x1ff
#define RT5616_PLL_N_MASK (RT5616_PLL_N_MAX << 7)
#define RT5616_PLL_N_SFT 7
#define RT5616_PLL_K_MAX 0x1f
#define RT5616_PLL_K_MASK (RT5616_PLL_K_MAX)
#define RT5616_PLL_K_SFT 0
/* PLL M/N/K Code Control 2 (0x82) */
#define RT5616_PLL_M_MAX 0xf
#define RT5616_PLL_M_MASK (RT5616_PLL_M_MAX << 12)
#define RT5616_PLL_M_SFT 12
#define RT5616_PLL_M_BP (0x1 << 11)
#define RT5616_PLL_M_BP_SFT 11
/* PLL tracking mode 1 (0x83) */
#define RT5616_STO1_T_MASK (0x1 << 15)
#define RT5616_STO1_T_SFT 15
#define RT5616_STO1_T_SCLK (0x0 << 15)
#define RT5616_STO1_T_LRCK1 (0x1 << 15)
#define RT5616_STO2_T_MASK (0x1 << 12)
#define RT5616_STO2_T_SFT 12
#define RT5616_STO2_T_I2S2 (0x0 << 12)
#define RT5616_STO2_T_LRCK2 (0x1 << 12)
#define RT5616_ASRC2_REF_MASK (0x1 << 11)
#define RT5616_ASRC2_REF_SFT 11
#define RT5616_ASRC2_REF_LRCK2 (0x0 << 11)
#define RT5616_ASRC2_REF_LRCK1 (0x1 << 11)
#define RT5616_DMIC_1_M_MASK (0x1 << 9)
#define RT5616_DMIC_1_M_SFT 9
#define RT5616_DMIC_1_M_NOR (0x0 << 9)
#define RT5616_DMIC_1_M_ASYN (0x1 << 9)
/* PLL tracking mode 2 (0x84) */
#define RT5616_STO1_ASRC_EN (0x1 << 15)
#define RT5616_STO1_ASRC_EN_SFT 15
#define RT5616_STO2_ASRC_EN (0x1 << 14)
#define RT5616_STO2_ASRC_EN_SFT 14
#define RT5616_STO1_DAC_M_MASK (0x1 << 13)
#define RT5616_STO1_DAC_M_SFT 13
#define RT5616_STO1_DAC_M_NOR (0x0 << 13)
#define RT5616_STO1_DAC_M_ASRC (0x1 << 13)
#define RT5616_STO2_DAC_M_MASK (0x1 << 12)
#define RT5616_STO2_DAC_M_SFT 12
#define RT5616_STO2_DAC_M_NOR (0x0 << 12)
#define RT5616_STO2_DAC_M_ASRC (0x1 << 12)
#define RT5616_ADC_M_MASK (0x1 << 11)
#define RT5616_ADC_M_SFT 11
#define RT5616_ADC_M_NOR (0x0 << 11)
#define RT5616_ADC_M_ASRC (0x1 << 11)
#define RT5616_I2S1_R_D_MASK (0x1 << 4)
#define RT5616_I2S1_R_D_SFT 4
#define RT5616_I2S1_R_D_DIS (0x0 << 4)
#define RT5616_I2S1_R_D_EN (0x1 << 4)
#define RT5616_I2S2_R_D_MASK (0x1 << 3)
#define RT5616_I2S2_R_D_SFT 3
#define RT5616_I2S2_R_D_DIS (0x0 << 3)
#define RT5616_I2S2_R_D_EN (0x1 << 3)
#define RT5616_PRE_SCLK_MASK (0x3)
#define RT5616_PRE_SCLK_SFT 0
#define RT5616_PRE_SCLK_512 (0x0)
#define RT5616_PRE_SCLK_1024 (0x1)
#define RT5616_PRE_SCLK_2048 (0x2)
/* PLL tracking mode 3 (0x85) */
#define RT5616_I2S1_RATE_MASK (0xf << 12)
#define RT5616_I2S1_RATE_SFT 12
#define RT5616_I2S2_RATE_MASK (0xf << 8)
#define RT5616_I2S2_RATE_SFT 8
#define RT5616_G_ASRC_LP_MASK (0x1 << 3)
#define RT5616_G_ASRC_LP_SFT 3
#define RT5616_ASRC_LP_F_M (0x1 << 2)
#define RT5616_ASRC_LP_F_SFT 2
#define RT5616_ASRC_LP_F_NOR (0x0 << 2)
#define RT5616_ASRC_LP_F_SB (0x1 << 2)
#define RT5616_FTK_PH_DET_MASK (0x3)
#define RT5616_FTK_PH_DET_SFT 0
#define RT5616_FTK_PH_DET_DIV1 (0x0)
#define RT5616_FTK_PH_DET_DIV2 (0x1)
#define RT5616_FTK_PH_DET_DIV4 (0x2)
#define RT5616_FTK_PH_DET_DIV8 (0x3)
/*PLL tracking mode 6 (0x89) */
#define RT5616_I2S1_PD_MASK (0x7 << 12)
#define RT5616_I2S1_PD_SFT 12
#define RT5616_I2S2_PD_MASK (0x7 << 8)
#define RT5616_I2S2_PD_SFT 8
/*PLL tracking mode 7 (0x8a) */
#define RT5616_FSI1_RATE_MASK (0xf << 12)
#define RT5616_FSI1_RATE_SFT 12
#define RT5616_FSI2_RATE_MASK (0xf << 8)
#define RT5616_FSI2_RATE_SFT 8
/* HPOUT Over Current Detection (0x8b) */
#define RT5616_HP_OVCD_MASK (0x1 << 10)
#define RT5616_HP_OVCD_SFT 10
#define RT5616_HP_OVCD_DIS (0x0 << 10)
#define RT5616_HP_OVCD_EN (0x1 << 10)
#define RT5616_HP_OC_TH_MASK (0x3 << 8)
#define RT5616_HP_OC_TH_SFT 8
#define RT5616_HP_OC_TH_90 (0x0 << 8)
#define RT5616_HP_OC_TH_105 (0x1 << 8)
#define RT5616_HP_OC_TH_120 (0x2 << 8)
#define RT5616_HP_OC_TH_135 (0x3 << 8)
/* Depop Mode Control 1 (0x8e) */
#define RT5616_SMT_TRIG_MASK (0x1 << 15)
#define RT5616_SMT_TRIG_SFT 15
#define RT5616_SMT_TRIG_DIS (0x0 << 15)
#define RT5616_SMT_TRIG_EN (0x1 << 15)
#define RT5616_HP_L_SMT_MASK (0x1 << 9)
#define RT5616_HP_L_SMT_SFT 9
#define RT5616_HP_L_SMT_DIS (0x0 << 9)
#define RT5616_HP_L_SMT_EN (0x1 << 9)
#define RT5616_HP_R_SMT_MASK (0x1 << 8)
#define RT5616_HP_R_SMT_SFT 8
#define RT5616_HP_R_SMT_DIS (0x0 << 8)
#define RT5616_HP_R_SMT_EN (0x1 << 8)
#define RT5616_HP_CD_PD_MASK (0x1 << 7)
#define RT5616_HP_CD_PD_SFT 7
#define RT5616_HP_CD_PD_DIS (0x0 << 7)
#define RT5616_HP_CD_PD_EN (0x1 << 7)
#define RT5616_RSTN_MASK (0x1 << 6)
#define RT5616_RSTN_SFT 6
#define RT5616_RSTN_DIS (0x0 << 6)
#define RT5616_RSTN_EN (0x1 << 6)
#define RT5616_RSTP_MASK (0x1 << 5)
#define RT5616_RSTP_SFT 5
#define RT5616_RSTP_DIS (0x0 << 5)
#define RT5616_RSTP_EN (0x1 << 5)
#define RT5616_HP_CO_MASK (0x1 << 4)
#define RT5616_HP_CO_SFT 4
#define RT5616_HP_CO_DIS (0x0 << 4)
#define RT5616_HP_CO_EN (0x1 << 4)
#define RT5616_HP_CP_MASK (0x1 << 3)
#define RT5616_HP_CP_SFT 3
#define RT5616_HP_CP_PD (0x0 << 3)
#define RT5616_HP_CP_PU (0x1 << 3)
#define RT5616_HP_SG_MASK (0x1 << 2)
#define RT5616_HP_SG_SFT 2
#define RT5616_HP_SG_DIS (0x0 << 2)
#define RT5616_HP_SG_EN (0x1 << 2)
#define RT5616_HP_DP_MASK (0x1 << 1)
#define RT5616_HP_DP_SFT 1
#define RT5616_HP_DP_PD (0x0 << 1)
#define RT5616_HP_DP_PU (0x1 << 1)
#define RT5616_HP_CB_MASK (0x1)
#define RT5616_HP_CB_SFT 0
#define RT5616_HP_CB_PD (0x0)
#define RT5616_HP_CB_PU (0x1)
/* Depop Mode Control 2 (0x8f) */
#define RT5616_DEPOP_MASK (0x1 << 13)
#define RT5616_DEPOP_SFT 13
#define RT5616_DEPOP_AUTO (0x0 << 13)