Merge tag 'v3.10.55' into update
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / mach-mt8127 / include / mach / mt_pm_ldo.h
1
2 #ifndef _MT_PMIC_LDO_H_
3 #define _MT_PMIC_LDO_H_
4
5 #include <mach/mt_typedefs.h>
6
7 #define MAX_DEVICE 20
8 #define MAX_MOD_NAME 32
9
10 #define NON_OP "NOP"
11
12 /* Debug message event */
13 #define DBG_PMAPI_NONE 0x00000000
14 #define DBG_PMAPI_CG 0x00000001
15 #define DBG_PMAPI_PLL 0x00000002
16 #define DBG_PMAPI_SUB 0x00000004
17 #define DBG_PMAPI_PMIC 0x00000008
18 #define DBG_PMAPI_ALL 0xFFFFFFFF
19
20 #define DBG_PMAPI_MASK (DBG_PMAPI_ALL)
21
22 typedef enum MT65XX_POWER_TAG {
23
24 //MT6323 Digital LDO
25 MT6323_POWER_LDO_VIO28=0,
26 MT6323_POWER_LDO_VUSB,
27 MT6323_POWER_LDO_VMC,
28 MT6323_POWER_LDO_VMCH,
29 MT6323_POWER_LDO_VEMC_3V3,
30 MT6323_POWER_LDO_VGP1,
31 MT6323_POWER_LDO_VGP2,
32 MT6323_POWER_LDO_VGP3,
33 MT6323_POWER_LDO_VCN_1V8,
34 MT6323_POWER_LDO_VSIM1,
35 MT6323_POWER_LDO_VSIM2,
36 MT6323_POWER_LDO_VRTC,
37 MT6323_POWER_LDO_VCAM_AF,
38 MT6323_POWER_LDO_VIBR,
39 MT6323_POWER_LDO_VM,
40 MT6323_POWER_LDO_VRF18,
41 MT6323_POWER_LDO_VIO18,
42 MT6323_POWER_LDO_VCAMD,
43 MT6323_POWER_LDO_VCAM_IO,
44
45 //MT6323 Analog LDO
46 MT6323_POWER_LDO_VTCXO,
47 MT6323_POWER_LDO_VA,
48 MT6323_POWER_LDO_VCAMA,
49 MT6323_POWER_LDO_VCN33_BT,
50 MT6323_POWER_LDO_VCN33_WIFI,
51 MT6323_POWER_LDO_VCN28,
52
53 //MT6320 Digital LDO
54 MT65XX_POWER_LDO_VIO28,
55 MT65XX_POWER_LDO_VUSB,
56 MT65XX_POWER_LDO_VMC, //6397
57 MT65XX_POWER_LDO_VMCH, //6397
58 MT65XX_POWER_LDO_VMC1, //6323
59 MT65XX_POWER_LDO_VMCH1, //6323
60 MT65XX_POWER_LDO_VEMC_3V3,
61 MT65XX_POWER_LDO_VEMC_1V8,
62 MT65XX_POWER_LDO_VCAMD, //6397
63 MT65XX_POWER_LDO_VCAMIO, //6397
64 MT65XX_POWER_LDO_VCAMAF, //6397
65 MT65XX_POWER_LDO_VGP1, //6323
66 MT65XX_POWER_LDO_VGP2, //6323
67 MT65XX_POWER_LDO_VGP3, //6323
68 MT65XX_POWER_LDO_VGP4,
69 MT65XX_POWER_LDO_VGP5,
70 MT65XX_POWER_LDO_VGP6,
71 MT65XX_POWER_LDO_VSIM1,
72 MT65XX_POWER_LDO_VSIM2,
73 MT65XX_POWER_LDO_VIBR,
74 MT65XX_POWER_LDO_VRTC,
75 MT65XX_POWER_LDO_VAST,
76
77 //MT6320 Analog LDO
78 MT65XX_POWER_LDO_VRF28,
79 MT65XX_POWER_LDO_VRF28_2,
80 MT65XX_POWER_LDO_VTCXO,
81 MT65XX_POWER_LDO_VTCXO_2,
82 MT65XX_POWER_LDO_VA,
83 MT65XX_POWER_LDO_VA28,
84 MT65XX_POWER_LDO_VCAMA,
85
86 MT6323_POWER_LDO_DEFAULT,
87 MT65XX_POWER_LDO_DEFAULT,
88 MT65XX_POWER_COUNT_END,
89 MT65XX_POWER_NONE = -1
90 } MT65XX_POWER;
91
92 typedef enum MT65XX_POWER_VOL_TAG
93 {
94 VOL_DEFAULT,
95 VOL_0900 = 900,
96 VOL_1000 = 1000,
97 VOL_1100 = 1100,
98 VOL_1200 = 1200,
99 VOL_1300 = 1300,
100 VOL_1350 = 1350,
101 VOL_1500 = 1500,
102 VOL_1800 = 1800,
103 VOL_2000 = 2000,
104 VOL_2100 = 2100,
105 VOL_2500 = 2500,
106 VOL_2800 = 2800,
107 VOL_3000 = 3000,
108 VOL_3300 = 3300,
109 VOL_3400 = 3400,
110 VOL_3500 = 3500,
111 VOL_3600 = 3600
112 } MT65XX_POWER_VOLTAGE;
113
114 typedef struct {
115 DWORD dwPowerCount;
116 BOOL bDefault_on;
117 char name[MAX_MOD_NAME];
118 char mod_name[MAX_DEVICE][MAX_MOD_NAME];
119 } DEVICE_POWER;
120
121 typedef struct
122 {
123 DEVICE_POWER Power[MT65XX_POWER_COUNT_END];
124 } ROOTBUS_HW;
125
126 //==============================================================================
127 // PMIC6320 Exported Function for power service
128 //==============================================================================
129 extern void pmic_ldo_enable(MT65XX_POWER powerId, kal_bool powerEnable);
130 extern void pmic_ldo_vol_sel(MT65XX_POWER powerId, MT65XX_POWER_VOLTAGE powerVolt);
131
132 extern bool hwPowerOn(MT65XX_POWER powerId, MT65XX_POWER_VOLTAGE powerVolt, char *mode_name);
133 extern bool hwPowerDown(MT65XX_POWER powerId, char *mode_name);
134
135 #endif // _MT_PMIC_LDO_H_
136