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#ifndef __LINUX_REGULATOR_CONSUMER_H_
36#define __LINUX_REGULATOR_CONSUMER_H_
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#define REGULATOR_MODE_FAST 0x1
78#define REGULATOR_MODE_NORMAL 0x2
79#define REGULATOR_MODE_IDLE 0x4
80#define REGULATOR_MODE_STANDBY 0x8
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96#define REGULATOR_EVENT_UNDER_VOLTAGE 0x01
97#define REGULATOR_EVENT_OVER_CURRENT 0x02
98#define REGULATOR_EVENT_REGULATION_OUT 0x04
99#define REGULATOR_EVENT_FAIL 0x08
100#define REGULATOR_EVENT_OVER_TEMP 0x10
101#define REGULATOR_EVENT_FORCE_DISABLE 0x20
102#define REGULATOR_EVENT_VOLTAGE_CHANGE 0x40
103
104struct regulator;
105
106
107
108
109
110
111
112
113
114
115
116
117
118struct regulator_bulk_data {
119 const char *supply;
120 struct regulator *consumer;
121};
122
123#if defined(CONFIG_REGULATOR)
124
125
126struct regulator *__must_check regulator_get(struct device *dev,
127 const char *id);
128struct regulator *__must_check regulator_get_exclusive(struct device *dev,
129 const char *id);
130void regulator_put(struct regulator *regulator);
131
132
133int regulator_enable(struct regulator *regulator);
134int regulator_disable(struct regulator *regulator);
135int regulator_force_disable(struct regulator *regulator);
136int regulator_is_enabled(struct regulator *regulator);
137
138int regulator_bulk_get(struct device *dev, int num_consumers,
139 struct regulator_bulk_data *consumers);
140int regulator_bulk_enable(int num_consumers,
141 struct regulator_bulk_data *consumers);
142int regulator_bulk_disable(int num_consumers,
143 struct regulator_bulk_data *consumers);
144void regulator_bulk_free(int num_consumers,
145 struct regulator_bulk_data *consumers);
146
147int regulator_count_voltages(struct regulator *regulator);
148int regulator_list_voltage(struct regulator *regulator, unsigned selector);
149int regulator_is_supported_voltage(struct regulator *regulator,
150 int min_uV, int max_uV);
151int regulator_set_voltage(struct regulator *regulator, int min_uV, int max_uV);
152int regulator_get_voltage(struct regulator *regulator);
153int regulator_set_current_limit(struct regulator *regulator,
154 int min_uA, int max_uA);
155int regulator_get_current_limit(struct regulator *regulator);
156
157int regulator_set_mode(struct regulator *regulator, unsigned int mode);
158unsigned int regulator_get_mode(struct regulator *regulator);
159int regulator_set_optimum_mode(struct regulator *regulator, int load_uA);
160
161
162int regulator_register_notifier(struct regulator *regulator,
163 struct notifier_block *nb);
164int regulator_unregister_notifier(struct regulator *regulator,
165 struct notifier_block *nb);
166
167
168void *regulator_get_drvdata(struct regulator *regulator);
169void regulator_set_drvdata(struct regulator *regulator, void *data);
170
171#else
172
173
174
175
176
177static inline struct regulator *__must_check regulator_get(struct device *dev,
178 const char *id)
179{
180
181
182
183
184 return (struct regulator *)id;
185}
186static inline void regulator_put(struct regulator *regulator)
187{
188}
189
190static inline int regulator_enable(struct regulator *regulator)
191{
192 return 0;
193}
194
195static inline int regulator_disable(struct regulator *regulator)
196{
197 return 0;
198}
199
200static inline int regulator_is_enabled(struct regulator *regulator)
201{
202 return 1;
203}
204
205static inline int regulator_bulk_get(struct device *dev,
206 int num_consumers,
207 struct regulator_bulk_data *consumers)
208{
209 return 0;
210}
211
212static inline int regulator_bulk_enable(int num_consumers,
213 struct regulator_bulk_data *consumers)
214{
215 return 0;
216}
217
218static inline int regulator_bulk_disable(int num_consumers,
219 struct regulator_bulk_data *consumers)
220{
221 return 0;
222}
223
224static inline void regulator_bulk_free(int num_consumers,
225 struct regulator_bulk_data *consumers)
226{
227}
228
229static inline int regulator_set_voltage(struct regulator *regulator,
230 int min_uV, int max_uV)
231{
232 return 0;
233}
234
235static inline int regulator_get_voltage(struct regulator *regulator)
236{
237 return 0;
238}
239
240static inline int regulator_set_current_limit(struct regulator *regulator,
241 int min_uA, int max_uA)
242{
243 return 0;
244}
245
246static inline int regulator_get_current_limit(struct regulator *regulator)
247{
248 return 0;
249}
250
251static inline int regulator_set_mode(struct regulator *regulator,
252 unsigned int mode)
253{
254 return 0;
255}
256
257static inline unsigned int regulator_get_mode(struct regulator *regulator)
258{
259 return REGULATOR_MODE_NORMAL;
260}
261
262static inline int regulator_set_optimum_mode(struct regulator *regulator,
263 int load_uA)
264{
265 return REGULATOR_MODE_NORMAL;
266}
267
268static inline int regulator_register_notifier(struct regulator *regulator,
269 struct notifier_block *nb)
270{
271 return 0;
272}
273
274static inline int regulator_unregister_notifier(struct regulator *regulator,
275 struct notifier_block *nb)
276{
277 return 0;
278}
279
280static inline void *regulator_get_drvdata(struct regulator *regulator)
281{
282 return NULL;
283}
284
285static inline void regulator_set_drvdata(struct regulator *regulator,
286 void *data)
287{
288}
289
290#endif
291
292#endif
293