regulator: ab8500: Clean out SoC registers
[firefly-linux-kernel-4.4.55.git] / include / linux / regulator / ab8500.h
1 /*
2  * Copyright (C) ST-Ericsson SA 2010
3  *
4  * License Terms: GNU General Public License v2
5  *
6  * Authors: Sundar Iyer <sundar.iyer@stericsson.com> for ST-Ericsson
7  *          Bengt Jonsson <bengt.g.jonsson@stericsson.com> for ST-Ericsson
8  */
9
10 #ifndef __LINUX_MFD_AB8500_REGULATOR_H
11 #define __LINUX_MFD_AB8500_REGULATOR_H
12
13 /* AB8500 regulators */
14 enum ab8500_regulator_id {
15         AB8500_LDO_AUX1,
16         AB8500_LDO_AUX2,
17         AB8500_LDO_AUX3,
18         AB8500_LDO_INTCORE,
19         AB8500_LDO_TVOUT,
20         AB8500_LDO_USB,
21         AB8500_LDO_AUDIO,
22         AB8500_LDO_ANAMIC1,
23         AB8500_LDO_ANAMIC2,
24         AB8500_LDO_DMIC,
25         AB8500_LDO_ANA,
26         AB8500_NUM_REGULATORS,
27 };
28
29 /* AB9450 regulators */
30 enum ab9540_regulator_id {
31         AB9540_LDO_AUX1,
32         AB9540_LDO_AUX2,
33         AB9540_LDO_AUX3,
34         AB9540_LDO_AUX4,
35         AB9540_LDO_INTCORE,
36         AB9540_LDO_TVOUT,
37         AB9540_LDO_USB,
38         AB9540_LDO_AUDIO,
39         AB9540_LDO_ANAMIC1,
40         AB9540_LDO_ANAMIC2,
41         AB9540_LDO_DMIC,
42         AB9540_LDO_ANA,
43         AB9540_SYSCLKREQ_2,
44         AB9540_SYSCLKREQ_4,
45         AB9540_NUM_REGULATORS,
46 };
47
48 /* AB8500 and AB9540 register initialization */
49 struct ab8500_regulator_reg_init {
50         int id;
51         u8 mask;
52         u8 value;
53 };
54
55 #define INIT_REGULATOR_REGISTER(_id, _mask, _value)     \
56         {                                               \
57                 .id = _id,                              \
58                 .mask = _mask,                          \
59                 .value = _value,                        \
60         }
61
62 /* AB8500 registers */
63 enum ab8500_regulator_reg {
64         AB8500_REGUREQUESTCTRL2,
65         AB8500_REGUREQUESTCTRL3,
66         AB8500_REGUREQUESTCTRL4,
67         AB8500_REGUSYSCLKREQ1HPVALID1,
68         AB8500_REGUSYSCLKREQ1HPVALID2,
69         AB8500_REGUHWHPREQ1VALID1,
70         AB8500_REGUHWHPREQ1VALID2,
71         AB8500_REGUHWHPREQ2VALID1,
72         AB8500_REGUHWHPREQ2VALID2,
73         AB8500_REGUSWHPREQVALID1,
74         AB8500_REGUSWHPREQVALID2,
75         AB8500_REGUSYSCLKREQVALID1,
76         AB8500_REGUSYSCLKREQVALID2,
77         AB8500_REGUMISC1,
78         AB8500_VAUDIOSUPPLY,
79         AB8500_REGUCTRL1VAMIC,
80         AB8500_VPLLVANAREGU,
81         AB8500_VREFDDR,
82         AB8500_EXTSUPPLYREGU,
83         AB8500_VAUX12REGU,
84         AB8500_VRF1VAUX3REGU,
85         AB8500_VAUX1SEL,
86         AB8500_VAUX2SEL,
87         AB8500_VRF1VAUX3SEL,
88         AB8500_REGUCTRL2SPARE,
89         AB8500_REGUCTRLDISCH,
90         AB8500_REGUCTRLDISCH2,
91         AB8500_NUM_REGULATOR_REGISTERS,
92 };
93
94
95 /* AB9540 registers */
96 enum ab9540_regulator_reg {
97         AB9540_REGUREQUESTCTRL1,
98         AB9540_REGUREQUESTCTRL2,
99         AB9540_REGUREQUESTCTRL3,
100         AB9540_REGUREQUESTCTRL4,
101         AB9540_REGUSYSCLKREQ1HPVALID1,
102         AB9540_REGUSYSCLKREQ1HPVALID2,
103         AB9540_REGUHWHPREQ1VALID1,
104         AB9540_REGUHWHPREQ1VALID2,
105         AB9540_REGUHWHPREQ2VALID1,
106         AB9540_REGUHWHPREQ2VALID2,
107         AB9540_REGUSWHPREQVALID1,
108         AB9540_REGUSWHPREQVALID2,
109         AB9540_REGUSYSCLKREQVALID1,
110         AB9540_REGUSYSCLKREQVALID2,
111         AB9540_REGUVAUX4REQVALID,
112         AB9540_REGUMISC1,
113         AB9540_VAUDIOSUPPLY,
114         AB9540_REGUCTRL1VAMIC,
115         AB9540_VSMPS1REGU,
116         AB9540_VSMPS2REGU,
117         AB9540_VSMPS3REGU, /* NOTE! PRCMU register */
118         AB9540_VPLLVANAREGU,
119         AB9540_EXTSUPPLYREGU,
120         AB9540_VAUX12REGU,
121         AB9540_VRF1VAUX3REGU,
122         AB9540_VSMPS1SEL1,
123         AB9540_VSMPS1SEL2,
124         AB9540_VSMPS1SEL3,
125         AB9540_VSMPS2SEL1,
126         AB9540_VSMPS2SEL2,
127         AB9540_VSMPS2SEL3,
128         AB9540_VSMPS3SEL1, /* NOTE! PRCMU register */
129         AB9540_VSMPS3SEL2, /* NOTE! PRCMU register */
130         AB9540_VAUX1SEL,
131         AB9540_VAUX2SEL,
132         AB9540_VRF1VAUX3SEL,
133         AB9540_REGUCTRL2SPARE,
134         AB9540_VAUX4REQCTRL,
135         AB9540_VAUX4REGU,
136         AB9540_VAUX4SEL,
137         AB9540_REGUCTRLDISCH,
138         AB9540_REGUCTRLDISCH2,
139         AB9540_REGUCTRLDISCH3,
140         AB9540_NUM_REGULATOR_REGISTERS,
141 };
142
143 struct ab8500_regulator_platform_data {
144         int num_reg_init;
145         struct ab8500_regulator_reg_init *reg_init;
146         int num_regulator;
147         struct regulator_init_data *regulator;
148 };
149
150 #endif