diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /include/linux/regulator | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'include/linux/regulator')
-rw-r--r-- | include/linux/regulator/ab8500.h | 73 | ||||
-rw-r--r-- | include/linux/regulator/consumer.h | 3 | ||||
-rw-r--r-- | include/linux/regulator/db8500-prcmu.h | 45 | ||||
-rw-r--r-- | include/linux/regulator/driver.h | 30 | ||||
-rw-r--r-- | include/linux/regulator/lp3972.h | 48 | ||||
-rw-r--r-- | include/linux/regulator/machine.h | 13 | ||||
-rw-r--r-- | include/linux/regulator/max8952.h | 135 |
7 files changed, 326 insertions, 21 deletions
diff --git a/include/linux/regulator/ab8500.h b/include/linux/regulator/ab8500.h index f509877c2ed4..76579f964a29 100644 --- a/include/linux/regulator/ab8500.h +++ b/include/linux/regulator/ab8500.h | |||
@@ -3,23 +3,72 @@ | |||
3 | * | 3 | * |
4 | * License Terms: GNU General Public License v2 | 4 | * License Terms: GNU General Public License v2 |
5 | * | 5 | * |
6 | * Author: Sundar Iyer <sundar.iyer@stericsson.com> for ST-Ericsson | 6 | * Authors: Sundar Iyer <sundar.iyer@stericsson.com> for ST-Ericsson |
7 | * | 7 | * Bengt Jonsson <bengt.g.jonsson@stericsson.com> for ST-Ericsson |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #ifndef __LINUX_MFD_AB8500_REGULATOR_H | 10 | #ifndef __LINUX_MFD_AB8500_REGULATOR_H |
11 | #define __LINUX_MFD_AB8500_REGULATOR_H | 11 | #define __LINUX_MFD_AB8500_REGULATOR_H |
12 | 12 | ||
13 | /* AB8500 regulators */ | 13 | /* AB8500 regulators */ |
14 | #define AB8500_LDO_AUX1 0 | 14 | enum ab8500_regulator_id { |
15 | #define AB8500_LDO_AUX2 1 | 15 | AB8500_LDO_AUX1, |
16 | #define AB8500_LDO_AUX3 2 | 16 | AB8500_LDO_AUX2, |
17 | #define AB8500_LDO_INTCORE 3 | 17 | AB8500_LDO_AUX3, |
18 | #define AB8500_LDO_TVOUT 4 | 18 | AB8500_LDO_INTCORE, |
19 | #define AB8500_LDO_AUDIO 5 | 19 | AB8500_LDO_TVOUT, |
20 | #define AB8500_LDO_ANAMIC1 6 | 20 | AB8500_LDO_USB, |
21 | #define AB8500_LDO_ANAMIC2 7 | 21 | AB8500_LDO_AUDIO, |
22 | #define AB8500_LDO_DMIC 8 | 22 | AB8500_LDO_ANAMIC1, |
23 | #define AB8500_LDO_ANA 9 | 23 | AB8500_LDO_ANAMIC2, |
24 | AB8500_LDO_DMIC, | ||
25 | AB8500_LDO_ANA, | ||
26 | AB8500_NUM_REGULATORS, | ||
27 | }; | ||
28 | |||
29 | /* AB8500 register initialization */ | ||
30 | struct ab8500_regulator_reg_init { | ||
31 | int id; | ||
32 | u8 value; | ||
33 | }; | ||
34 | |||
35 | #define INIT_REGULATOR_REGISTER(_id, _value) \ | ||
36 | { \ | ||
37 | .id = _id, \ | ||
38 | .value = _value, \ | ||
39 | } | ||
40 | |||
41 | /* AB8500 registers */ | ||
42 | enum ab8500_regulator_reg { | ||
43 | AB8500_REGUREQUESTCTRL2, | ||
44 | AB8500_REGUREQUESTCTRL3, | ||
45 | AB8500_REGUREQUESTCTRL4, | ||
46 | AB8500_REGUSYSCLKREQ1HPVALID1, | ||
47 | AB8500_REGUSYSCLKREQ1HPVALID2, | ||
48 | AB8500_REGUHWHPREQ1VALID1, | ||
49 | AB8500_REGUHWHPREQ1VALID2, | ||
50 | AB8500_REGUHWHPREQ2VALID1, | ||
51 | AB8500_REGUHWHPREQ2VALID2, | ||
52 | AB8500_REGUSWHPREQVALID1, | ||
53 | AB8500_REGUSWHPREQVALID2, | ||
54 | AB8500_REGUSYSCLKREQVALID1, | ||
55 | AB8500_REGUSYSCLKREQVALID2, | ||
56 | AB8500_REGUMISC1, | ||
57 | AB8500_VAUDIOSUPPLY, | ||
58 | AB8500_REGUCTRL1VAMIC, | ||
59 | AB8500_VPLLVANAREGU, | ||
60 | AB8500_VREFDDR, | ||
61 | AB8500_EXTSUPPLYREGU, | ||
62 | AB8500_VAUX12REGU, | ||
63 | AB8500_VRF1VAUX3REGU, | ||
64 | AB8500_VAUX1SEL, | ||
65 | AB8500_VAUX2SEL, | ||
66 | AB8500_VRF1VAUX3SEL, | ||
67 | AB8500_REGUCTRL2SPARE, | ||
68 | AB8500_REGUCTRLDISCH, | ||
69 | AB8500_REGUCTRLDISCH2, | ||
70 | AB8500_VSMPS1SEL1, | ||
71 | AB8500_NUM_REGULATOR_REGISTERS, | ||
72 | }; | ||
24 | 73 | ||
25 | #endif | 74 | #endif |
diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h index ebd747265294..9e87c1cb7270 100644 --- a/include/linux/regulator/consumer.h +++ b/include/linux/regulator/consumer.h | |||
@@ -153,7 +153,10 @@ int regulator_list_voltage(struct regulator *regulator, unsigned selector); | |||
153 | int regulator_is_supported_voltage(struct regulator *regulator, | 153 | int regulator_is_supported_voltage(struct regulator *regulator, |
154 | int min_uV, int max_uV); | 154 | int min_uV, int max_uV); |
155 | int regulator_set_voltage(struct regulator *regulator, int min_uV, int max_uV); | 155 | int regulator_set_voltage(struct regulator *regulator, int min_uV, int max_uV); |
156 | int regulator_set_voltage_time(struct regulator *regulator, | ||
157 | int old_uV, int new_uV); | ||
156 | int regulator_get_voltage(struct regulator *regulator); | 158 | int regulator_get_voltage(struct regulator *regulator); |
159 | int regulator_sync_voltage(struct regulator *regulator); | ||
157 | int regulator_set_current_limit(struct regulator *regulator, | 160 | int regulator_set_current_limit(struct regulator *regulator, |
158 | int min_uA, int max_uA); | 161 | int min_uA, int max_uA); |
159 | int regulator_get_current_limit(struct regulator *regulator); | 162 | int regulator_get_current_limit(struct regulator *regulator); |
diff --git a/include/linux/regulator/db8500-prcmu.h b/include/linux/regulator/db8500-prcmu.h new file mode 100644 index 000000000000..612062313b68 --- /dev/null +++ b/include/linux/regulator/db8500-prcmu.h | |||
@@ -0,0 +1,45 @@ | |||
1 | /* | ||
2 | * Copyright (C) ST-Ericsson SA 2010 | ||
3 | * | ||
4 | * License Terms: GNU General Public License v2 | ||
5 | * | ||
6 | * Author: Bengt Jonsson <bengt.g.jonsson@stericsson.com> for ST-Ericsson | ||
7 | * | ||
8 | * Interface to power domain regulators on DB8500 | ||
9 | */ | ||
10 | |||
11 | #ifndef __REGULATOR_H__ | ||
12 | #define __REGULATOR_H__ | ||
13 | |||
14 | /* Number of DB8500 regulators and regulator enumeration */ | ||
15 | enum db8500_regulator_id { | ||
16 | DB8500_REGULATOR_VAPE, | ||
17 | DB8500_REGULATOR_VARM, | ||
18 | DB8500_REGULATOR_VMODEM, | ||
19 | DB8500_REGULATOR_VPLL, | ||
20 | DB8500_REGULATOR_VSMPS1, | ||
21 | DB8500_REGULATOR_VSMPS2, | ||
22 | DB8500_REGULATOR_VSMPS3, | ||
23 | DB8500_REGULATOR_VRF1, | ||
24 | DB8500_REGULATOR_SWITCH_SVAMMDSP, | ||
25 | DB8500_REGULATOR_SWITCH_SVAMMDSPRET, | ||
26 | DB8500_REGULATOR_SWITCH_SVAPIPE, | ||
27 | DB8500_REGULATOR_SWITCH_SIAMMDSP, | ||
28 | DB8500_REGULATOR_SWITCH_SIAMMDSPRET, | ||
29 | DB8500_REGULATOR_SWITCH_SIAPIPE, | ||
30 | DB8500_REGULATOR_SWITCH_SGA, | ||
31 | DB8500_REGULATOR_SWITCH_B2R2_MCDE, | ||
32 | DB8500_REGULATOR_SWITCH_ESRAM12, | ||
33 | DB8500_REGULATOR_SWITCH_ESRAM12RET, | ||
34 | DB8500_REGULATOR_SWITCH_ESRAM34, | ||
35 | DB8500_REGULATOR_SWITCH_ESRAM34RET, | ||
36 | DB8500_NUM_REGULATORS | ||
37 | }; | ||
38 | |||
39 | /* | ||
40 | * Exported interface for CPUIdle only. This function is called with all | ||
41 | * interrupts turned off. | ||
42 | */ | ||
43 | int power_state_active_is_enabled(void); | ||
44 | |||
45 | #endif | ||
diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h index 592cd7c642c2..6c433b89c80d 100644 --- a/include/linux/regulator/driver.h +++ b/include/linux/regulator/driver.h | |||
@@ -42,7 +42,11 @@ enum regulator_status { | |||
42 | * | 42 | * |
43 | * @set_voltage: Set the voltage for the regulator within the range specified. | 43 | * @set_voltage: Set the voltage for the regulator within the range specified. |
44 | * The driver should select the voltage closest to min_uV. | 44 | * The driver should select the voltage closest to min_uV. |
45 | * @set_voltage_sel: Set the voltage for the regulator using the specified | ||
46 | * selector. | ||
45 | * @get_voltage: Return the currently configured voltage for the regulator. | 47 | * @get_voltage: Return the currently configured voltage for the regulator. |
48 | * @get_voltage_sel: Return the currently configured voltage selector for the | ||
49 | * regulator. | ||
46 | * @list_voltage: Return one of the supported voltages, in microvolts; zero | 50 | * @list_voltage: Return one of the supported voltages, in microvolts; zero |
47 | * if the selector indicates a voltage that is unusable on this system; | 51 | * if the selector indicates a voltage that is unusable on this system; |
48 | * or negative errno. Selectors range from zero to one less than | 52 | * or negative errno. Selectors range from zero to one less than |
@@ -59,7 +63,11 @@ enum regulator_status { | |||
59 | * when running with the specified parameters. | 63 | * when running with the specified parameters. |
60 | * | 64 | * |
61 | * @enable_time: Time taken for the regulator voltage output voltage to | 65 | * @enable_time: Time taken for the regulator voltage output voltage to |
62 | * stabalise after being enabled, in microseconds. | 66 | * stabilise after being enabled, in microseconds. |
67 | * @set_voltage_time_sel: Time taken for the regulator voltage output voltage | ||
68 | * to stabilise after being set to a new value, in microseconds. | ||
69 | * The function provides the from and to voltage selector, the | ||
70 | * function should return the worst case. | ||
63 | * | 71 | * |
64 | * @set_suspend_voltage: Set the voltage for the regulator when the system | 72 | * @set_suspend_voltage: Set the voltage for the regulator when the system |
65 | * is suspended. | 73 | * is suspended. |
@@ -79,8 +87,11 @@ struct regulator_ops { | |||
79 | int (*list_voltage) (struct regulator_dev *, unsigned selector); | 87 | int (*list_voltage) (struct regulator_dev *, unsigned selector); |
80 | 88 | ||
81 | /* get/set regulator voltage */ | 89 | /* get/set regulator voltage */ |
82 | int (*set_voltage) (struct regulator_dev *, int min_uV, int max_uV); | 90 | int (*set_voltage) (struct regulator_dev *, int min_uV, int max_uV, |
91 | unsigned *selector); | ||
92 | int (*set_voltage_sel) (struct regulator_dev *, unsigned selector); | ||
83 | int (*get_voltage) (struct regulator_dev *); | 93 | int (*get_voltage) (struct regulator_dev *); |
94 | int (*get_voltage_sel) (struct regulator_dev *); | ||
84 | 95 | ||
85 | /* get/set regulator current */ | 96 | /* get/set regulator current */ |
86 | int (*set_current_limit) (struct regulator_dev *, | 97 | int (*set_current_limit) (struct regulator_dev *, |
@@ -96,8 +107,11 @@ struct regulator_ops { | |||
96 | int (*set_mode) (struct regulator_dev *, unsigned int mode); | 107 | int (*set_mode) (struct regulator_dev *, unsigned int mode); |
97 | unsigned int (*get_mode) (struct regulator_dev *); | 108 | unsigned int (*get_mode) (struct regulator_dev *); |
98 | 109 | ||
99 | /* Time taken to enable the regulator */ | 110 | /* Time taken to enable or set voltage on the regulator */ |
100 | int (*enable_time) (struct regulator_dev *); | 111 | int (*enable_time) (struct regulator_dev *); |
112 | int (*set_voltage_time_sel) (struct regulator_dev *, | ||
113 | unsigned int old_selector, | ||
114 | unsigned int new_selector); | ||
101 | 115 | ||
102 | /* report regulator status ... most other accessors report | 116 | /* report regulator status ... most other accessors report |
103 | * control inputs, this reports results of combining inputs | 117 | * control inputs, this reports results of combining inputs |
@@ -168,9 +182,9 @@ struct regulator_desc { | |||
168 | */ | 182 | */ |
169 | struct regulator_dev { | 183 | struct regulator_dev { |
170 | struct regulator_desc *desc; | 184 | struct regulator_desc *desc; |
171 | int use_count; | ||
172 | int open_count; | ||
173 | int exclusive; | 185 | int exclusive; |
186 | u32 use_count; | ||
187 | u32 open_count; | ||
174 | 188 | ||
175 | /* lists we belong to */ | 189 | /* lists we belong to */ |
176 | struct list_head list; /* list of all regulators */ | 190 | struct list_head list; /* list of all regulators */ |
@@ -188,10 +202,14 @@ struct regulator_dev { | |||
188 | struct regulator_dev *supply; /* for tree */ | 202 | struct regulator_dev *supply; /* for tree */ |
189 | 203 | ||
190 | void *reg_data; /* regulator_dev data */ | 204 | void *reg_data; /* regulator_dev data */ |
205 | |||
206 | #ifdef CONFIG_DEBUG_FS | ||
207 | struct dentry *debugfs; | ||
208 | #endif | ||
191 | }; | 209 | }; |
192 | 210 | ||
193 | struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc, | 211 | struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc, |
194 | struct device *dev, struct regulator_init_data *init_data, | 212 | struct device *dev, const struct regulator_init_data *init_data, |
195 | void *driver_data); | 213 | void *driver_data); |
196 | void regulator_unregister(struct regulator_dev *rdev); | 214 | void regulator_unregister(struct regulator_dev *rdev); |
197 | 215 | ||
diff --git a/include/linux/regulator/lp3972.h b/include/linux/regulator/lp3972.h new file mode 100644 index 000000000000..9bb7389b7a1e --- /dev/null +++ b/include/linux/regulator/lp3972.h | |||
@@ -0,0 +1,48 @@ | |||
1 | /* | ||
2 | * National Semiconductors LP3972 PMIC chip client interface | ||
3 | * | ||
4 | * Based on lp3971.h | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __LINUX_REGULATOR_LP3972_H | ||
22 | #define __LINUX_REGULATOR_LP3972_H | ||
23 | |||
24 | #include <linux/regulator/machine.h> | ||
25 | |||
26 | #define LP3972_LDO1 0 | ||
27 | #define LP3972_LDO2 1 | ||
28 | #define LP3972_LDO3 2 | ||
29 | #define LP3972_LDO4 3 | ||
30 | #define LP3972_LDO5 4 | ||
31 | |||
32 | #define LP3972_DCDC1 5 | ||
33 | #define LP3972_DCDC2 6 | ||
34 | #define LP3972_DCDC3 7 | ||
35 | |||
36 | #define LP3972_NUM_REGULATORS 8 | ||
37 | |||
38 | struct lp3972_regulator_subdev { | ||
39 | int id; | ||
40 | struct regulator_init_data *initdata; | ||
41 | }; | ||
42 | |||
43 | struct lp3972_platform_data { | ||
44 | int num_regulators; | ||
45 | struct lp3972_regulator_subdev *regulators; | ||
46 | }; | ||
47 | |||
48 | #endif | ||
diff --git a/include/linux/regulator/machine.h b/include/linux/regulator/machine.h index e2980287245e..ce3127a75c88 100644 --- a/include/linux/regulator/machine.h +++ b/include/linux/regulator/machine.h | |||
@@ -68,6 +68,8 @@ struct regulator_state { | |||
68 | * | 68 | * |
69 | * @min_uV: Smallest voltage consumers may set. | 69 | * @min_uV: Smallest voltage consumers may set. |
70 | * @max_uV: Largest voltage consumers may set. | 70 | * @max_uV: Largest voltage consumers may set. |
71 | * @uV_offset: Offset applied to voltages from consumer to compensate for | ||
72 | * voltage drops. | ||
71 | * | 73 | * |
72 | * @min_uA: Smallest consumers consumers may set. | 74 | * @min_uA: Smallest consumers consumers may set. |
73 | * @max_uA: Largest current consumers may set. | 75 | * @max_uA: Largest current consumers may set. |
@@ -99,6 +101,8 @@ struct regulation_constraints { | |||
99 | int min_uV; | 101 | int min_uV; |
100 | int max_uV; | 102 | int max_uV; |
101 | 103 | ||
104 | int uV_offset; | ||
105 | |||
102 | /* current output range (inclusive) - for current control */ | 106 | /* current output range (inclusive) - for current control */ |
103 | int min_uA; | 107 | int min_uA; |
104 | int max_uA; | 108 | int max_uA; |
@@ -160,8 +164,6 @@ struct regulator_consumer_supply { | |||
160 | * @supply_regulator: Parent regulator. Specified using the regulator name | 164 | * @supply_regulator: Parent regulator. Specified using the regulator name |
161 | * as it appears in the name field in sysfs, which can | 165 | * as it appears in the name field in sysfs, which can |
162 | * be explicitly set using the constraints field 'name'. | 166 | * be explicitly set using the constraints field 'name'. |
163 | * @supply_regulator_dev: Parent regulator (if any) - DEPRECATED in favour | ||
164 | * of supply_regulator. | ||
165 | * | 167 | * |
166 | * @constraints: Constraints. These must be specified for the regulator to | 168 | * @constraints: Constraints. These must be specified for the regulator to |
167 | * be usable. | 169 | * be usable. |
@@ -173,7 +175,6 @@ struct regulator_consumer_supply { | |||
173 | */ | 175 | */ |
174 | struct regulator_init_data { | 176 | struct regulator_init_data { |
175 | const char *supply_regulator; /* or NULL for system supply */ | 177 | const char *supply_regulator; /* or NULL for system supply */ |
176 | struct device *supply_regulator_dev; /* or NULL for system supply */ | ||
177 | 178 | ||
178 | struct regulation_constraints constraints; | 179 | struct regulation_constraints constraints; |
179 | 180 | ||
@@ -186,13 +187,19 @@ struct regulator_init_data { | |||
186 | }; | 187 | }; |
187 | 188 | ||
188 | int regulator_suspend_prepare(suspend_state_t state); | 189 | int regulator_suspend_prepare(suspend_state_t state); |
190 | int regulator_suspend_finish(void); | ||
189 | 191 | ||
190 | #ifdef CONFIG_REGULATOR | 192 | #ifdef CONFIG_REGULATOR |
191 | void regulator_has_full_constraints(void); | 193 | void regulator_has_full_constraints(void); |
194 | void regulator_use_dummy_regulator(void); | ||
192 | #else | 195 | #else |
193 | static inline void regulator_has_full_constraints(void) | 196 | static inline void regulator_has_full_constraints(void) |
194 | { | 197 | { |
195 | } | 198 | } |
199 | |||
200 | static inline void regulator_use_dummy_regulator(void) | ||
201 | { | ||
202 | } | ||
196 | #endif | 203 | #endif |
197 | 204 | ||
198 | #endif | 205 | #endif |
diff --git a/include/linux/regulator/max8952.h b/include/linux/regulator/max8952.h new file mode 100644 index 000000000000..45e42855ad05 --- /dev/null +++ b/include/linux/regulator/max8952.h | |||
@@ -0,0 +1,135 @@ | |||
1 | /* | ||
2 | * max8952.h - Voltage regulation for the Maxim 8952 | ||
3 | * | ||
4 | * Copyright (C) 2010 Samsung Electrnoics | ||
5 | * MyungJoo Ham <myungjoo.ham@samsung.com> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License as published by | ||
9 | * the Free Software Foundation; either version 2 of the License, or | ||
10 | * (at your option) any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
20 | */ | ||
21 | |||
22 | #ifndef REGULATOR_MAX8952 | ||
23 | #define REGULATOR_MAX8952 | ||
24 | |||
25 | #include <linux/regulator/machine.h> | ||
26 | |||
27 | enum { | ||
28 | MAX8952_DVS_MODE0, | ||
29 | MAX8952_DVS_MODE1, | ||
30 | MAX8952_DVS_MODE2, | ||
31 | MAX8952_DVS_MODE3, | ||
32 | }; | ||
33 | |||
34 | enum { | ||
35 | MAX8952_DVS_770mV = 0, | ||
36 | MAX8952_DVS_780mV, | ||
37 | MAX8952_DVS_790mV, | ||
38 | MAX8952_DVS_800mV, | ||
39 | MAX8952_DVS_810mV, | ||
40 | MAX8952_DVS_820mV, | ||
41 | MAX8952_DVS_830mV, | ||
42 | MAX8952_DVS_840mV, | ||
43 | MAX8952_DVS_850mV, | ||
44 | MAX8952_DVS_860mV, | ||
45 | MAX8952_DVS_870mV, | ||
46 | MAX8952_DVS_880mV, | ||
47 | MAX8952_DVS_890mV, | ||
48 | MAX8952_DVS_900mV, | ||
49 | MAX8952_DVS_910mV, | ||
50 | MAX8952_DVS_920mV, | ||
51 | MAX8952_DVS_930mV, | ||
52 | MAX8952_DVS_940mV, | ||
53 | MAX8952_DVS_950mV, | ||
54 | MAX8952_DVS_960mV, | ||
55 | MAX8952_DVS_970mV, | ||
56 | MAX8952_DVS_980mV, | ||
57 | MAX8952_DVS_990mV, | ||
58 | MAX8952_DVS_1000mV, | ||
59 | MAX8952_DVS_1010mV, | ||
60 | MAX8952_DVS_1020mV, | ||
61 | MAX8952_DVS_1030mV, | ||
62 | MAX8952_DVS_1040mV, | ||
63 | MAX8952_DVS_1050mV, | ||
64 | MAX8952_DVS_1060mV, | ||
65 | MAX8952_DVS_1070mV, | ||
66 | MAX8952_DVS_1080mV, | ||
67 | MAX8952_DVS_1090mV, | ||
68 | MAX8952_DVS_1100mV, | ||
69 | MAX8952_DVS_1110mV, | ||
70 | MAX8952_DVS_1120mV, | ||
71 | MAX8952_DVS_1130mV, | ||
72 | MAX8952_DVS_1140mV, | ||
73 | MAX8952_DVS_1150mV, | ||
74 | MAX8952_DVS_1160mV, | ||
75 | MAX8952_DVS_1170mV, | ||
76 | MAX8952_DVS_1180mV, | ||
77 | MAX8952_DVS_1190mV, | ||
78 | MAX8952_DVS_1200mV, | ||
79 | MAX8952_DVS_1210mV, | ||
80 | MAX8952_DVS_1220mV, | ||
81 | MAX8952_DVS_1230mV, | ||
82 | MAX8952_DVS_1240mV, | ||
83 | MAX8952_DVS_1250mV, | ||
84 | MAX8952_DVS_1260mV, | ||
85 | MAX8952_DVS_1270mV, | ||
86 | MAX8952_DVS_1280mV, | ||
87 | MAX8952_DVS_1290mV, | ||
88 | MAX8952_DVS_1300mV, | ||
89 | MAX8952_DVS_1310mV, | ||
90 | MAX8952_DVS_1320mV, | ||
91 | MAX8952_DVS_1330mV, | ||
92 | MAX8952_DVS_1340mV, | ||
93 | MAX8952_DVS_1350mV, | ||
94 | MAX8952_DVS_1360mV, | ||
95 | MAX8952_DVS_1370mV, | ||
96 | MAX8952_DVS_1380mV, | ||
97 | MAX8952_DVS_1390mV, | ||
98 | MAX8952_DVS_1400mV, | ||
99 | }; | ||
100 | |||
101 | enum { | ||
102 | MAX8952_SYNC_FREQ_26MHZ, /* Default */ | ||
103 | MAX8952_SYNC_FREQ_13MHZ, | ||
104 | MAX8952_SYNC_FREQ_19_2MHZ, | ||
105 | }; | ||
106 | |||
107 | enum { | ||
108 | MAX8952_RAMP_32mV_us = 0, /* Default */ | ||
109 | MAX8952_RAMP_16mV_us, | ||
110 | MAX8952_RAMP_8mV_us, | ||
111 | MAX8952_RAMP_4mV_us, | ||
112 | MAX8952_RAMP_2mV_us, | ||
113 | MAX8952_RAMP_1mV_us, | ||
114 | MAX8952_RAMP_0_5mV_us, | ||
115 | MAX8952_RAMP_0_25mV_us, | ||
116 | }; | ||
117 | |||
118 | #define MAX8952_NUM_DVS_MODE 4 | ||
119 | |||
120 | struct max8952_platform_data { | ||
121 | int gpio_vid0; | ||
122 | int gpio_vid1; | ||
123 | int gpio_en; | ||
124 | |||
125 | u8 default_mode; | ||
126 | u8 dvs_mode[MAX8952_NUM_DVS_MODE]; /* MAX8952_DVS_MODEx_XXXXmV */ | ||
127 | |||
128 | u8 sync_freq; | ||
129 | u8 ramp_speed; | ||
130 | |||
131 | struct regulator_init_data reg_data; | ||
132 | }; | ||
133 | |||
134 | |||
135 | #endif /* REGULATOR_MAX8952 */ | ||