dcl_pmu_hw.h
26.8 KB
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
#ifndef __DCL_PMU_COMMON_HW_STRUCT__
#define __DCL_PMU_COMMON_HW_STRUCT__
#define CON0_OFFSET 0x00
#define CON1_OFFSET 0x04
#define CON2_OFFSET 0x08
#define CON3_OFFSET 0x0C
#define CON4_OFFSET 0x10
#define CON5_OFFSET 0x14
#define CON6_OFFSET 0x18
#define CON7_OFFSET 0x1C
#define CON8_OFFSET 0x20
#define CON9_OFFSET 0x24
#if defined(__DRV_UPMU_VPA_V1__)
//VPA CON0
#define VPA_EN_OFFSET CON0_OFFSET
#define VPA_EN_MASK 0x1000
#define VPA_EN_SHIFT 12
#define VPA_ANTI_RING_OFFSET CON0_OFFSET
#define VPA_ANTI_RING_MASK 0x0800
#define VPA_ANTI_RING_SHIFT 11
#define VPA_RC_OFFSET CON0_OFFSET
#define VPA_RC_MASK 0x000c
#define VPA_RC_SHIFT 2
//VPA CON2
#define VPA_VOTUNE0_OFFSET CON2_OFFSET
#define VPA_VOTUNE0_MASK 0x001F
#define VPA_VOTUNE0_SHIFT 0
#define VPA_VOTUNE1_OFFSET CON2_OFFSET
#define VPA_VOTUNE1_MASK 0x1F00
#define VPA_VOTUNE1_SHIFT 8
//VPA CON3
#define VPA_VOTUNE2_OFFSET CON3_OFFSET
#define VPA_VOTUNE2_MASK 0x001F
#define VPA_VOTUNE2_SHIFT 0
#define VPA_VOTUNE3_OFFSET CON3_OFFSET
#define VPA_VOTUNE3_MASK 0x1F00
#define VPA_VOTUNE3_SHIFT 8
//VPA CON4
#define VPA_VOTUNE4_OFFSET CON4_OFFSET
#define VPA_VOTUNE4_MASK 0x001F
#define VPA_VOTUNE4_SHIFT 0
#define VPA_VOTUNE5_OFFSET CON4_OFFSET
#define VPA_VOTUNE5_MASK 0x1F00
#define VPA_VOTUNE5_SHIFT 8
//VPA CON5
#define VPA_VOTUNE6_OFFSET CON5_OFFSET
#define VPA_VOTUNE6_MASK 0x001F
#define VPA_VOTUNE6_SHIFT 0
#define VPA_VOTUNE7_OFFSET CON5_OFFSET
#define VPA_VOTUNE7_MASK 0x1F00
#define VPA_VOTUNE7_SHIFT 8
#endif //#if defined(__DRV_UPMU_VPA_V1__)
#if defined(__DRV_UPMU_LPOSC_V1__)
#define LPOSC_CON0_OFFSET 0x00
#define LPOSC_CON1_OFFSET 0x04
#define LPOSC_CON2_OFFSET 0x08
#define LPOSC_CON3_OFFSET 0x0C
#define LPOSC_CON4_OFFSET 0x10
// LPOSC CON0
#define LPOSC_EN_MASK 0x1000
#define LPOSC_EN_SHIFT 12
//LPOSC CON1
#define LPOSC_FREQ_SET_MASK 0x00ff
#define LPOSC_FREQ_SET_SHIFT 0
#define LPOSC_BUCK_FREQ_SET_MASK 0x0700
#define LPOSC_BUCK_FREQ_SET_SHIFT 8
#define LPOSC_ACALI_EN_MASK 0x4000
#define LPOSC_ACALI_EN_SHIFT 14
#define LPOSC_FREQ_SET_MASK 0x00ff
#define LPOSC_FREQ_SET_SHIFT 0
// LPOSC CON2
#define LPOSC_FD_RES_MASK 0x0007
#define LPOSC_FD_RES_SHIFT 0
#define LPOSC_SSC_EN_MASK 0x0008
#define LPOSC_SSC_EN_SHIFT 3
#define LPOSC_SSC_MOD_AMP_MASK 0x0700
#define LPOSC_SSC_MOD_AMP_SHIFT 8
#define LPOSC_RG_BUCK_BOOST_EN_MASK 0x0800
#define LPOSC_RG_BUCK_BOOST_EN_SHIFT 11
#define LPOSC_SSC_CODE_DUR_MASK 0x7000
#define LPOSC_SSC_CODE_DUR_SHIFT 12
#define LPOSC_LPOSC_PG_EN_MASK 0x8000
#define LPOSC_LPOSC_PG_EN_SHIFT 15
//LPOSC CON4
#define LPOSC_SW_MODE_EN_MASK 0x1000
#define LPOSC_SW_MODE_EN_SHIFT 12
#endif //#if defined(__DRV_UPMU_BUCK_V1__)
#if defined(__DRV_UPMU_LDO_V1__)
#define LDO_CON0_OFFSET 0x00
#define LDO_CON1_OFFSET 0x04
#define LDO_CON2_OFFSET 0x08
#define LDO_CON3_OFFSET 0x0C
// LDO H/W register bitmap definition
// LDO_XXX CON0
#define LDO_EN_OFFSET CON0_OFFSET
#define LDO_EN_MASK 0x0001
#define LDO_EN_SHIFT 0
#define LDO_ON_SEL_OFFSET CON0_OFFSET
#define LDO_ON_SEL_MASK 0x0002
#define LDO_ON_SEL_SHIFT 1
#define LDO_RS_MASK 0x0004
#define LDO_RS_SHIFT 2
#define LDO_VOL_SEL_OFFSET CON0_OFFSET
#define LDO_VOL_SEL_MASK 0x01F0
#define LDO_VOL_SEL_SHIFT 4
#define LDO_NDIS_EN_OFFSET CON0_OFFSET
#define LDO_NDIS_EN_MASK 0x0400
#define LDO_NDIS_EN_SHIFT 10
#define LDO_STB_EN_OFFSET CON0_OFFSET
#define LDO_STB_EN_MASK 0x0800
#define LDO_STB_EN_SHIFT 11
#define LDO_OC_AUTO_OFF_OFFSET CON0_OFFSET
#define LDO_OC_AUTO_OFF_MASK 0x1000
#define LDO_OC_AUTO_OFF_SHIFT 12
#define LDO_OCFB_EN_OFFSET CON0_OFFSET
#define LDO_OCFB_EN_MASK 0x2000
#define LDO_OCFB_EN_SHIFT 13
#define LDO_OC_STATUS_MASK 0x4000
#define LDO_OC_STATUS_SHIFT 14
#define LDO_STATUS_MASK 0x8000
#define LDO_STATUS_SHIFT 15
// LDO_XXX CON1
#if defined(__DRV_UPMU_LDO_V1_STB_TD_AT_CON1_BIT0__)
#define LDO_STB_TD_OFFSET CON1_OFFSET
#define LDO_STB_TD_MASK 0x0003
#define LDO_STB_TD_SHIFT 0
#else
#define LDO_STB_TD_OFFSET CON2_OFFSET
#define LDO_STB_TD_MASK 0x00c0
#define LDO_STB_TD_SHIFT 6
#endif // #if defined(__DRV_UPMU_LDO_V1_STB_TD_AT_CON1_BIT0__)
#define LDO_FORCE_LOW_MASK 0x0004
#define LDO_FORCE_LOW_SHIFT 2
#define LDO_CAL_OFFSET CON1_OFFSET
#define LDO_CAL_MASK 0x01F0
#define LDO_CAL_SHIFT 4
#if defined(__DRV_UPMU_LDO_CAL_AS_SLEEP_VOLTAGE__)
#define LDO_VOL_SEL_SLEEP_MASK 0x01F0
#define LDO_VOL_SEL_SLEEP_SHIFT 4
#endif // #if defined(__DRV_UPMU_LDO_CAL_AS_SLEEP_VOLTAGE__)
// LDO_XXX CON2
#define LDO_GP_LDOEN_MASK 0x0002
#define LDO_GP_LDOEN_SHIFT 1
#define LDO_OC_TD_OFFSET CON2_OFFSET
#define LDO_OC_TD_MASK 0x0030
#define LDO_OC_TD_SHIFT 4
/*
#if defined(__DRV_UPMU_LDO_V1_STB_TD_AT_CON2_BIT6__)
#define LDO_STB_TD_OFFSET CON2_OFFSET
#define LDO_STB_TD_MASK 0x00C0
#define LDO_STB_TD_SHIFT 6
#endif // #if defined(__DRV_UPMU_LDO_V1_STB_TD_AT_CON2_BIT6__)
*/
#define LDO_ICAL_EN_MASK 0x3000
#define LDO_ICAL_EN_SHIFT 12
// LDO_XXX CON3
// Only for VSIM/VSIM2 LDO
#define SIMIO_DRV_MASK 0x000E
#define SIMIO_DRV_SHIFT 1
#define SIM_BIAS_MASK 0x0030
#define SIM_BIAS_SHIFT 4
#define SIM_SRN_MASK 0x00C0
#define SIM_SRN_SHIFT 6
#define SIM_SRP_MASK 0x0300
#define SIM_SRP_SHIFT 8
#define SIM_CSTOP_MASK 0x0400 // Only for 6256 E2
#define SIM_CSTOP_SHIFT 10 // Only for 6256 E2
//////////////////// SIM control
#if defined(__DRV_UPMU_LDO_SIM_SPECIFIC_CONFIG_FIELD_AT_CON2__)
#define LDO_SIM_GPIO_EN_OFFSET CON2_OFFSET
#define LDO_SIM_SIMIO_DRV_OFFSET CON2_OFFSET
#define LDO_SIM_BIAS_OFFSET CON2_OFFSET
#define LDO_SIM_SRN_OFFSET CON2_OFFSET
#define LDO_SIM_SRP_OFFSET CON2_OFFSET
#else
#define LDO_SIM_GPIO_EN_OFFSET CON3_OFFSET
#define LDO_SIM_SIMIO_DRV_OFFSET CON3_OFFSET
#define LDO_SIM_BIAS_OFFSET CON3_OFFSET
#define LDO_SIM_SRN_OFFSET CON3_OFFSET
#define LDO_SIM_SRP_OFFSET CON3_OFFSET
#define LDO_SIM_CSTOP_OFFSET CON3_OFFSET // Only for 6256 E2
#endif //#if defined(__DRV_UPMU_LDO_SIM_SPECIFIC_CONFIG_FIELD_AT_CON2__)
#define LDO_SIM_GPIO_EN_MASK 0x0001
#define LDO_SIM_GPIO_EN_SHIFT 0
#define LDO_SIM_SIMIO_DRV_MASK 0x000E
#define LDO_SIM_SIMIO_DRV_SHIFT 1
#define LDO_SIM_BIAS_MASK 0x0030
#define LDO_SIM_BIAS_SHIFT 4
#define LDO_SIM_SRN_MASK 0x00C0
#define LDO_SIM_SRN_SHIFT 6
#define LDO_SIM_SRP_MASK 0x0300
#define LDO_SIM_SRP_SHIFT 8
#define LDO_SIM_CSTOP_MASK 0x0400 // Only for 6256 E2
#define LDO_SIM_CSTOP_SHIFT 10 // Only for 6256 E2
///////////////////// SIM control end
#endif // #if defined(__DRV_UPMU_LDO_V1__)
#if defined(__DRV_UPMU_BUCK_V1__)
#define BUCK_CON0_OFFSET 0x00
#define BUCK_CON1_OFFSET 0x04
#define BUCK_CON2_OFFSET 0x08
#define BUCK_CON3_OFFSET 0x0C
#define BUCK_CON4_OFFSET 0x10
#define BUCK_CON5_OFFSET 0x14
#define BUCK_CON6_OFFSET 0x18
// BUCK H/W register bitmap definition
// BUCK_XXX CON0
#define BUCK_EN_OFFSET CON0_OFFSET
#define BUCK_EN_MASK 0x0001
#define BUCK_EN_SHIFT 0
#define BUCK_ON_SEL_OFFSET CON0_OFFSET
#define BUCK_ON_SEL_MASK 0x0002
#define BUCK_ON_SEL_SHIFT 1
#define BUCK_RS_OFFSET CON0_OFFSET
#define BUCK_RS_MASK 0x0004
#define BUCK_RS_SHIFT 2
#define BUCK_ST_STR_MASK 0x0008
#define BUCK_ST_STR_SHIFT 3
#define BUCK_VFBADJ_OFFSET CON0_OFFSET
#define BUCK_VFBADJ_MASK 0x01F0
#define BUCK_VFBADJ_SHIFT 4
#define BUCK_DIS_ANTIUNSH_MASK 0x0400
#define BUCK_DIS_ANTIUNSH_SHIFT 10
#define BUCK_STB_EN_MASK 0x0800
#define BUCK_STB_EN_SHIFT 11
#define BUCK_OC_AUTO_OFF_MASK 0x1000
#define BUCK_OC_AUTO_OFF_SHIFT 12
#define BUCK_OCFB_EN_OFFSET CON0_OFFSET
#define BUCK_OCFB_EN_MASK 0x2000
#define BUCK_OCFB_EN_SHIFT 13
// BUCK_XXX CON1
#define BUCK_MODESET_MASK 0x0001
#define BUCK_MODESET_SHIFT 0
#define BUCK_VFBADJ_SLEEP_OFFSET CON1_OFFSET
#define BUCK_VFBADJ_SLEEP_MASK 0x01F0
#define BUCK_VFBADJ_SLEEP_SHIFT 4
#define BUCK_CLK_SRC_MASK 0x0400
#define BUCK_CLK_SRC_SHIFT 10
// BUCK_XXX CON2
#define BUCK_CAL_MASK 0x01F0
#define BUCK_CAL_SHIFT 4
// BUCK_XXX CON3
#define BUCK_OC_TD_OFFSET CON3_OFFSET
#define BUCK_OC_TD_MASK 0x0030
#define BUCK_OC_TD_SHIFT 4
#define BUCK_STB_TD_OFFSET CON3_OFFSET
#define BUCK_STB_TD_MASK 0x00C0
#define BUCK_STB_TD_SHIFT 6
#define BUCK_OC_THD_MASK 0x0300
#define BUCK_OC_THD_SHIFT 8
#define BUCK_OC_WND_MASK 0x0C00
#define BUCK_OC_WND_SHIFT 10
#define BUCK_ICAL_EN_OFFSET CON3_OFFSET
#define BUCK_ICAL_EN_MASK 0x3000
#define BUCK_ICAL_EN_SHIFT 12
// BUCK XXX CON4
#define BUCK_ADJCKSEL_OFFSET CON4_OFFSET
#define BUCK_ADJCKSEL_MASK 0x0070
#define BULK_ADJCKSEL_SHIFT 4
// BUCK XXX CON5
#define BUCK_CSR_OFFSET CON5_OFFSET
#define BUCK_CSR_MASK 0x000F
#define BULK_CSR_SHIFT 0
#define BUCK_RZSEL_OFFSET CON5_OFFSET
#define BUCK_RZSEL_MASK 0x0070
#define BULK_RZSEL_SHIFT 4
#define BUCK_CSL_OFFSET CON5_OFFSET
#define BUCK_CSL_MASK 0x0700
#define BUCK_CSL_SHIFT 8
#define BUCK_BURST_OFFSET CON5_OFFSET
#define BUCK_BURST_MASK 0x3000
#define BUCK_BURST_SHIFT 12
#define BUCK_GMSEL_OFFSET CON5_OFFSET
#define BUCK_GMSEL_MASK 0x4000
#define BUCK_GMSEL_SHIFT 14
#define BUCK_ZX_PDN_OFFSET CON5_OFFSET
#define BUCK_ZX_PDN_MASK 0x8000
#define BUCK_ZX_PDN_SHIFT 15
// BUCK XXX CON6
#define BUCK_CKS_PRG_OFFSET CON6_OFFSET
#define BUCK_CKS_PRG_MASK 0x001f
#define BUCK_CKS_PRG_SHIFT 0
#endif // #if defined(__DRV_UPMU_BUCK_V1__)
#if defined(__DRV_UPMU_BOOST_V1__)
#define BOOST_CON0_OFFSET 0x00
#define BOOST_CON1_OFFSET 0x04
#define BOOST_CON2_OFFSET 0x08
#define BOOST_CON3_OFFSET 0x0C
#define BOOST_CON4_OFFSET 0x10
#define BOOST_CON5_OFFSET 0x14
#define BOOST_CON6_OFFSET 0x18
// BOOST H/W register bitmap definition
// BOOST_XXX CON0
#define BOOST_EN_OFFSET CON0_OFFSET
#define BOOST_EN_MASK 0x0001
#define BOOST_EN_SHIFT 0
#define BOOST_TYPE_MASK 0x0002
#define BOOST_TYPE_SHIFT 1
#define BOOST_MODE_MASK 0x0004
#define BOOST_MODE_SHIFT 2
#define BOOST_VRSEL_MASK 0x01F0
#define BOOST_VRSEL_SHIFT 4
#define BOOST_OC_AUTO_OFF_MASK 0x1000
#define BOOST_OC_AUTO_OFF_SHIFT 12
#define BOOST_OC_FLAG_MASK 0x4000
#define BOOST_OC_FLAG_SHIFT 14
// BOOST_XXX CON1
#define BOOST_CL_OFFSET CON1_OFFSET
#define BOOST_CL_MASK 0x0007
#define BOOST_CL_SHIFT 0
#define BOOST_CS_MASK 0x0070
#define BOOST_CS_SHIFT 4
#define BOOST_RC_MASK 0x0700
#define BOOST_RC_SHIFT 8
#define BOOST_SS_MASK 0x7000
#define BOOST_SS_SHIFT 12
// BOOST_XXX CON2
#define BOOST_CKSEL_MASK 0x0002
#define BOOST_CKSEL_SHIFT 1
#define BOOST_SR_PMOS_MASK 0x0070
#define BOOST_SR_PMOS_SHIFT 4
#define BOOST_SR_NMOS_MASK 0x0700
#define BOOST_SR_NMOS_SHIFT 8
#define BOOST_SLP_MASK 0xC000
#define BOOST_SLP_SHIFT 14
// BOOST_XXX CON3
#define BOOST_CKS_PRG_MASK 0x003F
#define BOOST_CKS_PRG_SHIFT 0
// BOOST_XXX CON4
#define BOOST_OC_THD_MASK 0x0030
#define BOOST_OC_THD_SHIFT 4
#define BOOST_OC_WND_MASK 0x00C0
#define BOOST_OC_WND_SHIFT 6
#define BOOST_CLK_CAL_OFFSET CON4_OFFSET
#define BOOST_CLK_CAL_MASK 0x7000
#define BOOST_CLK_CAL_SHIFT 12
// BOOST_XXX CON6
#define BOOST_HW_SEL_MASK 0x0001
#define BOOST_HW_SEL_SHIFT 0
#define BOOST_CC_MASK 0x0070
#define BOOST_CC_SHIFT 4
#endif // #if defined(__DRV_UPMU_BOOST_V1__)
#if defined(__DRV_UPMU_ISINK_V1__)
#define ISINK_CON0_OFFSET 0x00
#define ISINK_CON1_OFFSET 0x04
#define ISINK_CON2_OFFSET 0x08
// iSINK H/W register bitmap definition
// ISINK_XXX CON0
#define ISINK_EN_OFFSET CON0_OFFSET
#define ISINK_EN_MASK 0x0001
#define ISINK_EN_SHIFT 0
#define ISINK_MODE_OFFSET CON0_OFFSET
#define ISINK_MODE_MASK 0x0002
#define ISINK_MODE_SHIFT 1
#define ISINK_STEP_OFFSET CON0_OFFSET
#define ISINK_STEP_MASK 0x01F0
#define ISINK_STEP_SHIFT 4
#define ISINK_STATUS_MASK 0x8000
#define ISINK_STATUS_SHIFT 15
// ISINK_XXX CON1
#define ISINK_VREF_CAL_MASK 0x1F00
#define ISINK_VREF_CAL_SHIFT 8
#endif // #if defined(__DRV_UPMU_ISINK_V1__)
#if defined(__DRV_UPMU_KPLED_V1__)
#define KPLED_CON0_OFFSET 0x00
#define KPLED_CON1_OFFSET 0x04
// KPLED H/W register bitmap definition
// KPLED_XXX CON0
#define KPLED_EN_OFFSET CON0_OFFSET
#define KPLED_EN_MASK 0x0001
#define KPLED_EN_SHIFT 0
#define KPLED_MODE_OFFSET CON0_OFFSET
#define KPLED_MODE_MASK 0x0002
#define KPLED_MODE_SHIFT 1
#define KPLED_SEL_OFFSET CON0_OFFSET
#define KPLED_SEL_MASK 0x0070
#define KPLED_SEL_SHIFT 4
#define KPLED_SFSTRT_C_OFFSET CON0_OFFSET
#define KPLED_SFSTRT_C_MASK 0x0300
#define KPLED_SFSTRT_C_SHIFT 8
#define KPLED_SFSTRT_EN_OFFSET CON0_OFFSET
#define KPLED_SFSTRT_EN_MASK 0x0400
#define KPLED_SFSTRT_EN_SHIFT 10
#define KPLED_STATUS_OFFSET CON0_OFFSET
#define KPLED_STATUS_MASK 0x8000
#define KPLED_STATUS_SHIFT 15
#endif // #if defined(__DRV_UPMU_KPLED_V1__)
#if defined(__DRV_UPMU_SPK_V1__)
#define SPK_CON0_OFFSET 0x00
#define SPK_CON1_OFFSET 0x04
#define SPK_CON2_OFFSET 0x08
#define SPK_CON3_OFFSET 0x0C
#define SPK_CON4_OFFSET 0x10
#define SPK_CON5_OFFSET 0x14
#define SPK_CON6_OFFSET 0x18
#define SPK_CON7_OFFSET 0x1C
// SPK H/W register bitmap definition
// SPK_XXX CON0
#define SPK_EN_MASK 0x0001
#define SPK_EN_SHIFT 0
#define SPK_RST_MASK 0x0002
#define SPK_RST_SHIFT 1
#define SPK_VOL_OFFSET CON0_OFFSET
#define SPK_VOL_MASK 0x01F0
#define SPK_VOL_SHIFT 4
#define SPK_OC_AUTO_OFF_MASK 0x1000
#define SPK_OC_AUTO_OFF_SHIFT 12
#define SPK_OCFB_EN_MASK 0x2000
#define SPK_OCFB_EN_SHIFT 13
#define SPK_OC_FLAG_MASK 0x4000
#define SPK_OC_FLAG_SHIFT 14
// SPK_XXX CON1
#define SPK_PFD_MODE_MASK 0x0001
#define SPK_PFD_MODE_SHIFT 0
#define SPK_CMODE_MASK 0x000C
#define SPK_CMODE_SHIFT 2
#define SPK_CCODE_MASK 0x00F0
#define SPK_CCODE_SHIFT 4
// SPK_XXX CON2
#define SPK_OC_THD_MASK 0x0030
#define SPK_OC_THD_SHIFT 4
#define SPK_OC_WND_MASK 0x00C0
#define SPK_OC_WND_SHIFT 6
// SPK_XXX CON3
#define SPK_OC_EN_OFFSET CON3_OFFSET
#define SPK_OC_EN_MASK 0x0400
#define SPK_OC_EN_SHIFT 10
#define SPK_OSC_ISEL_MASK 0x00C0
#define SPK_OSC_ISEL_SHIFT 6
// SPK_XXX CON4
#define SPK_NG_DT_DLY_MASK 0x000f
#define SPK_NG_DT_DLY_SHIFT 0
#define SPK_OCN_BIAS_MASK 0x0700
#define SPK_OCN_BIAS_SHIFT 8
#define SPK_OCP_BIAS_MASK 0x7000
#define SPK_OCP_BIAS_SHIFT 12
// SPK_XXX CON5
#define SPK_NG_SLEW_DLY_MASK 0x0007
#define SPK_NG_SLEW_DLY_SHIFT 0
#define SPK_PG_SLEW_DLY_MASK 0x0700
#define SPK_PG_SLEW_DLY_SHIFT 8
#define SPK_PG_SLEW_I_MASK 0x3000
#define SPK_PG_SLEW_I_SHIFT 12
// SPK_XXX CON7
#define SPK_AB_OBIAS_MASK 0x0030
#define SPK_AB_OBIAS_SHIFT 4
#define SPK_AB_OC_EN_MASK 0x0100
#define SPK_AB_OC_EN_SHIFT 8
#define SPK_MODE_MASK 0x0001
#define SPK_MODE_SHIFT 0
#endif // #if defined(__DRV_UPMU_SPK_V1__)
#if defined(__DRV_UPMU_SPK_V2__)
#define SPK_CON0_OFFSET 0x00
#define SPK_CON1_OFFSET 0x04
// SPK H/W register bitmap definition
// SPK_XXX CON0
#define SPK_EN_MASK 0x0001
#define SPK_EN_SHIFT 0
#define SPK_VOL_OFFSET CON0_OFFSET
#define SPK_VOL_MASK 0x001E
#define SPK_VOL_SHIFT 1
#define SPK_OUT_FLOAT_B_MASK 0x0020
#define SPK_OUT_FLOAT_B_SHIFT 5
#define SPK_OC_EN_OFFSET CON0_OFFSET
#define SPK_OC_EN_MASK 0x0040
#define SPK_OC_EN_SHIFT 6
#define SPK_OBIAS_MASK 0x00C0
#define SPK_OBIAS_SHIFT 7
#define SPK_IN_TIE_HIGH_MASK 0x0400
#define SPK_IN_TIE_HIGH_SHIFT 10
#define SPK_IN_FLOAT_B_MASK 0x0800
#define SPK_IN_FLOAT_B_SHIFT 11
#define SPK_MINUS_GAIN_MASK 0x3000
#define SPK_MINUS_GAIN_SHIFT 12
// SPK_XXX CON1
#define SPK_OC_THD_MASK 0x0003 // OC_TRG
#define SPK_OC_THD_SHIFT 0
#define SPK_OC_WND_MASK 0x000C
#define SPK_OC_WND_SHIFT 2
#define SPK_OC_AUTO_OFF_MASK 0x0040
#define SPK_OC_AUTO_OFF_SHIFT 6
#define SPK_OC_FLAG_MASK 0x8000
#define SPK_OC_FLAG_SHIFT 15
#endif // #if defined(__DRV_UPMU_SPK_V2__)
#if defined(__DRV_UPMU_CHARGER_V1__)
#define CHR_CON0_OFFSET 0x00
#define CHR_CON1_OFFSET 0x04
#define CHR_CON2_OFFSET 0x08
#define CHR_CON3_OFFSET 0x0C
#define CHR_CON4_OFFSET 0x10
#define CHR_CON5_OFFSET 0x14
#define CHR_CON6_OFFSET 0x18
#define CHR_CON7_OFFSET 0x1C
#define CHR_CON8_OFFSET 0x20
#define CHR_CON9_OFFSET 0x24
#define CHR_BC11_CON0_OFFSET CHR_CON9_OFFSET
#define CHR_CON10_OFFSET 0x28
#define CHR_BC11_CON1_OFFSET CHR_CON10_OFFSET
// CHARGER H/W register bitmap definition
// CHR_XXX CON0
#define VCDT_LV_VTH_MASK 0x001F
#define VCDT_LV_VTH_SHIFT 0
#define VCDT_HV_VTH_MASK 0x00F0
#define VCDT_HV_VTH_SHIFT 4
#define VCDT_HV_EN_MASK 0x0100
#define VCDT_HV_EN_SHIFT 8
#define PCHR_AUTO_MASK 0x0400
#define PCHR_AUTO_SHIFT 10
#define CSDAC_EN_OFFSET CON0_OFFSET
#define CSDAC_EN_MASK 0x0800
#define CSDAC_EN_SHIFT 11
#define CHR_EN_OFFSET CON0_OFFSET
#define CHR_EN_MASK 0x1000
#define CHR_EN_SHIFT 12
#define CHRDET_OFFSET CON0_OFFSET
#define CHRDET_MASK 0x2000
#define CHRDET_SHIFT 13
#define VCDT_LV_DET_MASK 0x4000
#define VCDT_LV_DET_SHIFT 14
#define VCDT_HV_DET_MASK 0x8000
#define VCDT_HV_DET_SHIFT 15
// CHR_XXX CON1
#define VBAT_CV_VTH_OFFSET CON1_OFFSET
#define VBAT_CV_VTH_MASK 0x001F
#define VBAT_CV_VTH_SHIFT 0
#define VBAT_CC_VTH_MASK 0x00C0
#define VBAT_CC_VTH_SHIFT 6
#define VBAT_CV_EN_OFFSET CON1_OFFSET
#define VBAT_CV_EN_MASK 0x0100
#define VBAT_CV_EN_SHIFT 8
#define VBAT_CC_EN_MASK 0x0200
#define VBAT_CC_EN_SHIFT 9
#define VBAT_CV_DET_OFFSET CON1_OFFSET
#define VBAT_CV_DET_MASK 0x4000
#define VBAT_CV_DET_SHIFT 14
#define VBAT_CC_DET_MASK 0x8000
#define VBAT_CC_DET_SHIFT 15
// CHR_XXX CON2
#define PCHR_TOHTC_MASK 0x0007
#define PCHR_TOHTC_SHIFT 0
#define PCHR_TOLTC_MASK 0x0070
#define PCHR_TOLTC_SHIFT 4
#define CS_VTH_OFFSET CON2_OFFSET
#define CS_VTH_MASK 0x0700
#define CS_VTH_SHIFT 8
#define CS_EN_MASK 0x1000
#define CS_EN_SHIFT 12
#if defined(__DRV_OTG_BVALID_DET_AT_CON2_BIT14__)
#define OTG_BVALID_DET_MASK 0x4000
#define OTG_BVALID_DET_SHIFT 14
#endif // #if defined(__DRV_OTG_BVALID_DET_AT_CON2_BIT14__)
#define CS_DET_MASK 0x8000
#define CS_DET_SHIFT 15
// CHR_XXX CON3
#define CSDAC_STP_MASK 0x0003
#define CSDAC_STP_SHIFT 0
#if defined(__DRV_VBAT_OV_EN_AT_CON3_BIT3__)
#define VBAT_OV_EN_MASK 0x0008
#define VBAT_OV_EN_SHIFT 3
#endif // #if defined(__DRV_VBAT_OV_EN_AT_CON3_BIT3__)
#define CSDAC_DLY_MASK 0x0030
#define CSDAC_DLY_SHIFT 4
#define VBAT_OV_VTH_MASK 0x00C0
#define VBAT_OV_VTH_SHIFT 6
#if defined(__DRV_VBAT_OV_EN_AT_CON3_BIT8__)
#define VBAT_OV_EN_MASK 0x0100
#define VBAT_OV_EN_SHIFT 8
#endif // #if defined(__DRV_VBAT_OV_EN_AT_CON3_BIT8__)
#if defined(__DRV_BATON_EN_AT_CON3_BIT9__)
#define BATON_EN_MASK 0x0200
#define BATON_EN_SHIFT 9
#endif // #if defined(__DRV_BATON_EN_AT_CON3_BIT9__)
#define BATON_HT_EN_MASK 0x0400
#define BATON_HT_EN_SHIFT 10
#if defined(__DRV_BATON_EN_AT_CON3_BIT12__)
#define BATON_EN_MASK 0x1000
#define BATON_EN_SHIFT 12
#endif // #if defined(__DRV_BATON_EN_AT_CON3_BIT12__)
#if defined(__DRV_OTG_BVALID_EN_AT_CON3_BIT13__)
#define OTG_BVALID_EN_OFFSET CON3_OFFSET
#define OTG_BVALID_EN_MASK 0x2000
#define OTG_BVALID_EN_SHIFT 13
#endif // #if defined(__DRV_OTG_BVALID_EN_AT_CON3_BIT13__)
#define VBAT_OV_DET_MASK 0x4000
#define VBAT_OV_DET_SHIFT 14
#define BATON_UNDET_MASK 0x8000
#define BATON_UNDET_SHIFT 15
// CHR_XXX CON4
#define PCHR_TEST_MASK 0x0001
#define PCHR_TEST_SHIFT 0
#define PCHR_CSDAC_TEST_MASK 0x0002
#define PCHR_CSDAC_TEST_SHIFT 1
#define PCHR_RST_MASK 0x0004
#define PCHR_RST_SHIFT 2
#define CSDAC_DAT_MASK 0xFF00
#define CSDAC_DAT_SHIFT 8
// CHR_XXX CON5
#define PCHR_FLAG_SEL_MASK 0x000F
#define PCHR_FLAG_SEL_SHIFT 0
#define PCHR_FLAG_EN_MASK 0x0080
#define PCHR_FLAG_EN_SHIFT 7
#define PCHR_FLAG_OUT_MASK 0x0F00
#define PCHR_FLAG_OUT_SHIFT 8
#if defined(__DRV_OTG_BVALID_EN_AT_CON5_BIT12__)
#define OTG_BVALID_EN_OFFSET CON5_OFFSET
#define OTG_BVALID_EN_MASK 0x1000
#define OTG_BVALID_EN_SHIFT 12
#endif // #if defined(__DRV_OTG_BVALID_EN_AT_CON5_BIT12__)
#if defined(__DRV_OTG_BVALID_DET_AT_CON5_BIT15__)
#define OTG_BVALID_DET_MASK 0x8000
#define OTG_BVALID_DET_SHIFT 15
#endif // #if defined(__DRV_OTG_BVALID_DET_AT_CON5_BIT15__)
// CHR_XXX CON6
#define CHRWDT_TD_OFFSET CON6_OFFSET
#define CHRWDT_TD_MASK 0x000F // TTTTTTTTT
#define CHRWDT_TD_SHIFT 0
#define CHRWDT_EN_OFFSET CON6_OFFSET
#define CHRWDT_EN_MASK 0x0010
#define CHRWDT_EN_SHIFT 4
// CHR_XXX CON7
#define CHRWDT_INT_EN_OFFSET CON7_OFFSET
#define CHRWDT_INT_EN_MASK 0x0001
#define CHRWDT_INT_EN_SHIFT 0
#define CHRWDT_FLAG_WR_MASK 0x0002
#define CHRWDT_FLAG_WR_SHIFT 1
#define CHRWDT_OUT_MASK 0x8000
#define CHRWDT_OTU_SHIFT 15
// CHR_XXX CON8
#define BGR_RSEL_MASK 0x0007
#define BGR_RSEL_SHIFT 0
#define BGR_UNCHOP_PH_MASK 0x0010
#define BGR_UNCHOP_PH_SHIFT 4
#define BGR_UNCHOP_MASK 0x0020
#define BGR_UNCHOP_SHIFT 5
#define UVLO_VTHL_MASK 0x0300
#define UVLO_VTHL_SHIFT 8
#define ADC_EN_OFFSET CON8_OFFSET
#define ADC_EN_MASK 0x7000 // All ADC channels are enabled at same time
#define ADC_EN_SHIFT 12
// CHR_XXX CON9 (CHR_BC11_CON0)
#if defined(__DRV_UPMU_BC11_V1__)
#if defined(__DRV_UPMU_BC11_MAPPING_V1__)
#define BC11_VREF_VTH_OFFSET CON9_OFFSET
#define BC11_VREF_VTH_MASK 0x0001
#define BC11_VREF_VTH_SHIFT 0
#define BC11_CMP_EN_OFFSET CON9_OFFSET
#define BC11_CMP_EN_MASK 0x0006
#define BC11_CMP_EN_SHIFT 1
#define BC11_IPD_EN_OFFSET CON9_OFFSET
#define BC11_IPD_EN_MASK 0x0018
#define BC11_IPD_EN_SHIFT 3
#define BC11_IPU_EN_OFFSET CON9_OFFSET
#define BC11_IPU_EN_MASK 0x0060
#define BC11_IPU_EN_SHIFT 5
#define BC11_BIAS_EN_OFFSET CON9_OFFSET
#define BC11_BIAS_EN_MASK 0x0080
#define BC11_BIAS_EN_SHIFT 7
#define BC11_BB_CTRL_OFFSET CON9_OFFSET
#define BC11_BB_CTRL_MASK 0x0100
#define BC11_BB_CTRL_SHIFT 8
#define BC11_RST_OFFSET CON9_OFFSET
#define BC11_RST_MASK 0x0200
#define BC11_RST_SHIFT 9
#if defined(__MT6251PMU_E1_BC11_VSRC_EN_AT_TEST_CON1_BIT4__)
#define BC11_VSRC_EN_OFFSET 0x0504 //CHR_CON0+0x0504=TEST_CON1
#define BC11_VSRC_EN_MASK 0x0030
#define BC11_VSRC_EN_SHIFT 4
#else
#define BC11_VSRC_EN_OFFSET CON9_OFFSET
#define BC11_VSRC_EN_MASK 0x0C00
#define BC11_VSRC_EN_SHIFT 10
#endif //#if defined(__MT6251PMU_E1_BC11_VSRC_EN_AT_TEST_CON1_BIT4__)
#define BC11_CMP_OUT_OFFSET CON9_OFFSET
#define BC11_CMP_OUT_MASK 0x8000
#define BC11_CMP_OUT_SHIFT 15
#endif //#if defined(__DRV_UPMU_BC11_MAPPING_V1)
#if defined(__DRV_UPMU_BC11_MAPPING_V2__)
#define BC11_VREF_VTH_OFFSET CHR_CON10_OFFSET
#define BC11_VREF_VTH_MASK 0x0040
#define BC11_VREF_VTH_SHIFT 6
#define BC11_CMP_EN_OFFSET CHR_CON10_OFFSET
#define BC11_CMP_EN_MASK 0x0003
#define BC11_CMP_EN_SHIFT 0
#define BC11_IPD_EN_OFFSET CHR_CON10_OFFSET
#define BC11_IPD_EN_MASK 0x000c
#define BC11_IPD_EN_SHIFT 2
#define BC11_IPU_EN_OFFSET CHR_CON10_OFFSET
#define BC11_IPU_EN_MASK 0x0030
#define BC11_IPU_EN_SHIFT 4
#define BC11_BIAS_EN_OFFSET CHR_CON10_OFFSET
#define BC11_BIAS_EN_MASK 0x0080
#define BC11_BIAS_EN_SHIFT 7
#define BC11_BB_CTRL_OFFSET CHR_CON10_OFFSET
#define BC11_BB_CTRL_MASK 0x0100
#define BC11_BB_CTRL_SHIFT 8
#define BC11_RST_OFFSET CHR_CON9_OFFSET
#define BC11_RST_MASK 0x0100
#define BC11_RST_SHIFT 8
#define BC11_VSRC_EN_OFFSET CHR_CON9_OFFSET
#define BC11_VSRC_EN_MASK 0x0003
#define BC11_VSRC_EN_SHIFT 0
#define BC11_CMP_OUT_OFFSET CHR_CON10_OFFSET
#define BC11_CMP_OUT_MASK 0x0200
#define BC11_CMP_OUT_SHIFT 9
#endif //#if defined(__DRV_UPMU_BC11_MAPPING_V2__)
#endif // #if defined(__DRV_UPMU_BC11_V1__)
#endif // #if defined(__DRV_UPMU_CHARGER_V1__)
#if defined(__DRV_UPMU_STRUP_V1__)
#define STRUP_CON0_OFFSET 0x00
// STRUP_XXX CON0
#define USBDL_EN_OFFSET CON0_OFFSET
#define USBDL_EN_MASK 0x0010
#define USBDL_EN_SHIFT 4
#endif // #if defined(__DRV_UPMU_STRUP_V1__)
#endif //#define __DCL_PMU_COMMON_HW_STRUCT__