diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-13 15:04:35 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-13 15:04:35 -0500 |
commit | 8b0cab14951fbf8126795ab301835a8f8126a988 (patch) | |
tree | 2bf23662944ac9bfcd34d13ef81a6e331266ebf9 /include | |
parent | fd62c5450324af7f6cc12897b09b77285cd48a92 (diff) | |
parent | 4ffc45c3604dd8e283884ce006faf0e955cbd9e6 (diff) |
Merge tag 'regulator-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
Pull regulator updates from Mark Brown:
"A fairly quiet release again, a couple of relatively small new
features and a bunch of driver specific work including yet more code
elimination and fixes from Axel Lin.
- Addidion of linear_min_sel for offsetting linear selectors in the
helpers.
- Support for continuous voltage ranges for regulators with extremely
high resolution.
- Drivers for AS3711, DA9055, MAX9873, TPS51632, TPS80031 and ARM
vexpress."
Fix up trivial conflict (due to typo fix) in palmas-regulator.c
* tag 'regulator-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (80 commits)
regulator: core: Fix logic to determinate if regulator can change voltage
regulator: s5m8767: Fix to work even if no DVS gpio present
regulator: s5m8767: Fix to read the first DVS register.
regulator: s5m8767: Fix to work when platform registers less regulators
regulator: gpio-regulator: gpio_set_value should use cansleep
regulator: gpio-regulator: Fix logical error in for() loop
regulator: anatop: Use regulator_[get|set]_voltage_sel_regmap
regulator: anatop: Use linear_min_sel with linear mapping
regulator: max1586: Implement get_voltage_sel callback
regulator: lp8788-buck: Kill _gpio_request function
regulator: tps80031: Convert tps80031_ldo_ops to linear_min_sel and list_voltage_linear
regulator: lp8788-ldo: Remove val array in lp8788_config_ldo_enable_mode
regulator: gpio-regulator: Add ifdef CONFIG_OF guard for regulator_gpio_of_match
regulator: palmas: Convert palmas_ops_smps to regulator_[get|set]_voltage_sel_regmap
regulator: palmas: Return raw register values as the selectors in [get|set]_voltage_sel
regulators: add regulator_can_change_voltage() function
regulator: tps51632: Ensure [base|max]_voltage_uV pdata settings are valid
regulator: wm831x-dcdc: Add MODULE_ALIAS for wm831x-boostp
regulator: wm831x-dcdc: Ensure selected voltage falls within requested range
regulator: tps51632: Use linear_min_sel and regulator_[map|list]_voltage_linear
...
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/mfd/arizona/registers.h | 16 | ||||
-rw-r--r-- | include/linux/mfd/da9055/pdata.h | 27 | ||||
-rw-r--r-- | include/linux/mfd/max8997-private.h | 1 | ||||
-rw-r--r-- | include/linux/mfd/max8997.h | 1 | ||||
-rw-r--r-- | include/linux/mfd/tps65090.h | 35 | ||||
-rw-r--r-- | include/linux/mfd/tps6586x.h | 3 | ||||
-rw-r--r-- | include/linux/regulator/consumer.h | 13 | ||||
-rw-r--r-- | include/linux/regulator/driver.h | 5 | ||||
-rw-r--r-- | include/linux/regulator/max8973-regulator.h | 72 | ||||
-rw-r--r-- | include/linux/regulator/tps51632-regulator.h | 47 | ||||
-rw-r--r-- | include/linux/regulator/tps65090-regulator.h | 50 |
11 files changed, 217 insertions, 53 deletions
diff --git a/include/linux/mfd/arizona/registers.h b/include/linux/mfd/arizona/registers.h index 7671a287dfee..ba26e99c388d 100644 --- a/include/linux/mfd/arizona/registers.h +++ b/include/linux/mfd/arizona/registers.h | |||
@@ -76,6 +76,7 @@ | |||
76 | #define ARIZONA_RATE_ESTIMATOR_3 0x154 | 76 | #define ARIZONA_RATE_ESTIMATOR_3 0x154 |
77 | #define ARIZONA_RATE_ESTIMATOR_4 0x155 | 77 | #define ARIZONA_RATE_ESTIMATOR_4 0x155 |
78 | #define ARIZONA_RATE_ESTIMATOR_5 0x156 | 78 | #define ARIZONA_RATE_ESTIMATOR_5 0x156 |
79 | #define ARIZONA_DYNAMIC_FREQUENCY_SCALING_1 0x161 | ||
79 | #define ARIZONA_FLL1_CONTROL_1 0x171 | 80 | #define ARIZONA_FLL1_CONTROL_1 0x171 |
80 | #define ARIZONA_FLL1_CONTROL_2 0x172 | 81 | #define ARIZONA_FLL1_CONTROL_2 0x172 |
81 | #define ARIZONA_FLL1_CONTROL_3 0x173 | 82 | #define ARIZONA_FLL1_CONTROL_3 0x173 |
@@ -110,6 +111,7 @@ | |||
110 | #define ARIZONA_FLL2_GPIO_CLOCK 0x1AA | 111 | #define ARIZONA_FLL2_GPIO_CLOCK 0x1AA |
111 | #define ARIZONA_MIC_CHARGE_PUMP_1 0x200 | 112 | #define ARIZONA_MIC_CHARGE_PUMP_1 0x200 |
112 | #define ARIZONA_LDO1_CONTROL_1 0x210 | 113 | #define ARIZONA_LDO1_CONTROL_1 0x210 |
114 | #define ARIZONA_LDO1_CONTROL_2 0x212 | ||
113 | #define ARIZONA_LDO2_CONTROL_1 0x213 | 115 | #define ARIZONA_LDO2_CONTROL_1 0x213 |
114 | #define ARIZONA_MIC_BIAS_CTRL_1 0x218 | 116 | #define ARIZONA_MIC_BIAS_CTRL_1 0x218 |
115 | #define ARIZONA_MIC_BIAS_CTRL_2 0x219 | 117 | #define ARIZONA_MIC_BIAS_CTRL_2 0x219 |
@@ -1574,6 +1576,13 @@ | |||
1574 | #define ARIZONA_SAMPLE_RATE_DETECT_D_WIDTH 5 /* SAMPLE_RATE_DETECT_D - [4:0] */ | 1576 | #define ARIZONA_SAMPLE_RATE_DETECT_D_WIDTH 5 /* SAMPLE_RATE_DETECT_D - [4:0] */ |
1575 | 1577 | ||
1576 | /* | 1578 | /* |
1579 | * R353 (0x161) - Dynamic Frequency Scaling 1 | ||
1580 | */ | ||
1581 | #define ARIZONA_SUBSYS_MAX_FREQ 0x0001 /* SUBSYS_MAX_FREQ */ | ||
1582 | #define ARIZONA_SUBSYS_MAX_FREQ_SHIFT 0 /* SUBSYS_MAX_FREQ */ | ||
1583 | #define ARIZONA_SUBSYS_MAX_FREQ_WIDTH 1 /* SUBSYS_MAX_FREQ */ | ||
1584 | |||
1585 | /* | ||
1577 | * R369 (0x171) - FLL1 Control 1 | 1586 | * R369 (0x171) - FLL1 Control 1 |
1578 | */ | 1587 | */ |
1579 | #define ARIZONA_FLL1_FREERUN 0x0002 /* FLL1_FREERUN */ | 1588 | #define ARIZONA_FLL1_FREERUN 0x0002 /* FLL1_FREERUN */ |
@@ -1889,6 +1898,13 @@ | |||
1889 | #define ARIZONA_LDO1_ENA_WIDTH 1 /* LDO1_ENA */ | 1898 | #define ARIZONA_LDO1_ENA_WIDTH 1 /* LDO1_ENA */ |
1890 | 1899 | ||
1891 | /* | 1900 | /* |
1901 | * R530 (0x212) - LDO1 Control 2 | ||
1902 | */ | ||
1903 | #define ARIZONA_LDO1_HI_PWR 0x0001 /* LDO1_HI_PWR */ | ||
1904 | #define ARIZONA_LDO1_HI_PWR_SHIFT 0 /* LDO1_HI_PWR */ | ||
1905 | #define ARIZONA_LDO1_HI_PWR_WIDTH 1 /* LDO1_HI_PWR */ | ||
1906 | |||
1907 | /* | ||
1892 | * R531 (0x213) - LDO2 Control 1 | 1908 | * R531 (0x213) - LDO2 Control 1 |
1893 | */ | 1909 | */ |
1894 | #define ARIZONA_LDO2_VSEL_MASK 0x07E0 /* LDO2_VSEL - [10:5] */ | 1910 | #define ARIZONA_LDO2_VSEL_MASK 0x07E0 /* LDO2_VSEL - [10:5] */ |
diff --git a/include/linux/mfd/da9055/pdata.h b/include/linux/mfd/da9055/pdata.h index 147293b4471d..f87a6c172a91 100644 --- a/include/linux/mfd/da9055/pdata.h +++ b/include/linux/mfd/da9055/pdata.h | |||
@@ -25,8 +25,29 @@ struct da9055_pdata { | |||
25 | int gpio_base; | 25 | int gpio_base; |
26 | 26 | ||
27 | struct regulator_init_data *regulators[DA9055_MAX_REGULATORS]; | 27 | struct regulator_init_data *regulators[DA9055_MAX_REGULATORS]; |
28 | bool reset_enable; /* Enable RTC in RESET Mode */ | 28 | /* Enable RTC in RESET Mode */ |
29 | enum gpio_select *gpio_rsel; /* Select regulator set thru GPIO 1/2 */ | 29 | bool reset_enable; |
30 | enum gpio_select *gpio_ren; /* Enable regulator thru GPIO 1/2 */ | 30 | /* |
31 | * GPI muxed pin to control | ||
32 | * regulator state A/B, 0 if not available. | ||
33 | */ | ||
34 | int *gpio_ren; | ||
35 | /* | ||
36 | * GPI muxed pin to control | ||
37 | * regulator set, 0 if not available. | ||
38 | */ | ||
39 | int *gpio_rsel; | ||
40 | /* | ||
41 | * Regulator mode control bits value (GPI offset) that | ||
42 | * that controls the regulator state, 0 if not available. | ||
43 | */ | ||
44 | enum gpio_select *reg_ren; | ||
45 | /* | ||
46 | * Regulator mode control bits value (GPI offset) that | ||
47 | * controls the regulator set A/B, 0 if not available. | ||
48 | */ | ||
49 | enum gpio_select *reg_rsel; | ||
50 | /* GPIOs to enable regulator, 0 if not available */ | ||
51 | int *ena_gpio; | ||
31 | }; | 52 | }; |
32 | #endif /* __DA9055_PDATA_H */ | 53 | #endif /* __DA9055_PDATA_H */ |
diff --git a/include/linux/mfd/max8997-private.h b/include/linux/mfd/max8997-private.h index 830152cfae33..6ae21bf47d64 100644 --- a/include/linux/mfd/max8997-private.h +++ b/include/linux/mfd/max8997-private.h | |||
@@ -316,6 +316,7 @@ enum max8997_irq { | |||
316 | #define MAX8997_NUM_GPIO 12 | 316 | #define MAX8997_NUM_GPIO 12 |
317 | struct max8997_dev { | 317 | struct max8997_dev { |
318 | struct device *dev; | 318 | struct device *dev; |
319 | struct max8997_platform_data *pdata; | ||
319 | struct i2c_client *i2c; /* 0xcc / PMIC, Battery Control, and FLASH */ | 320 | struct i2c_client *i2c; /* 0xcc / PMIC, Battery Control, and FLASH */ |
320 | struct i2c_client *rtc; /* slave addr 0x0c */ | 321 | struct i2c_client *rtc; /* slave addr 0x0c */ |
321 | struct i2c_client *haptic; /* slave addr 0x90 */ | 322 | struct i2c_client *haptic; /* slave addr 0x90 */ |
diff --git a/include/linux/mfd/max8997.h b/include/linux/mfd/max8997.h index 328d8e24b533..1d4a4fe6ac33 100644 --- a/include/linux/mfd/max8997.h +++ b/include/linux/mfd/max8997.h | |||
@@ -75,6 +75,7 @@ enum max8998_regulators { | |||
75 | struct max8997_regulator_data { | 75 | struct max8997_regulator_data { |
76 | int id; | 76 | int id; |
77 | struct regulator_init_data *initdata; | 77 | struct regulator_init_data *initdata; |
78 | struct device_node *reg_node; | ||
78 | }; | 79 | }; |
79 | 80 | ||
80 | enum max8997_muic_usb_type { | 81 | enum max8997_muic_usb_type { |
diff --git a/include/linux/mfd/tps65090.h b/include/linux/mfd/tps65090.h index 6bc31d854626..804e280c1e1d 100644 --- a/include/linux/mfd/tps65090.h +++ b/include/linux/mfd/tps65090.h | |||
@@ -24,6 +24,25 @@ | |||
24 | 24 | ||
25 | #include <linux/irq.h> | 25 | #include <linux/irq.h> |
26 | 26 | ||
27 | /* TPS65090 Regulator ID */ | ||
28 | enum { | ||
29 | TPS65090_REGULATOR_DCDC1, | ||
30 | TPS65090_REGULATOR_DCDC2, | ||
31 | TPS65090_REGULATOR_DCDC3, | ||
32 | TPS65090_REGULATOR_FET1, | ||
33 | TPS65090_REGULATOR_FET2, | ||
34 | TPS65090_REGULATOR_FET3, | ||
35 | TPS65090_REGULATOR_FET4, | ||
36 | TPS65090_REGULATOR_FET5, | ||
37 | TPS65090_REGULATOR_FET6, | ||
38 | TPS65090_REGULATOR_FET7, | ||
39 | TPS65090_REGULATOR_LDO1, | ||
40 | TPS65090_REGULATOR_LDO2, | ||
41 | |||
42 | /* Last entry for maximum ID */ | ||
43 | TPS65090_REGULATOR_MAX, | ||
44 | }; | ||
45 | |||
27 | struct tps65090 { | 46 | struct tps65090 { |
28 | struct mutex lock; | 47 | struct mutex lock; |
29 | struct device *dev; | 48 | struct device *dev; |
@@ -41,10 +60,26 @@ struct tps65090_subdev_info { | |||
41 | void *platform_data; | 60 | void *platform_data; |
42 | }; | 61 | }; |
43 | 62 | ||
63 | /* | ||
64 | * struct tps65090_regulator_plat_data | ||
65 | * | ||
66 | * @reg_init_data: The regulator init data. | ||
67 | * @enable_ext_control: Enable extrenal control or not. Only available for | ||
68 | * DCDC1, DCDC2 and DCDC3. | ||
69 | * @gpio: Gpio number if external control is enabled and controlled through | ||
70 | * gpio. | ||
71 | */ | ||
72 | struct tps65090_regulator_plat_data { | ||
73 | struct regulator_init_data *reg_init_data; | ||
74 | bool enable_ext_control; | ||
75 | int gpio; | ||
76 | }; | ||
77 | |||
44 | struct tps65090_platform_data { | 78 | struct tps65090_platform_data { |
45 | int irq_base; | 79 | int irq_base; |
46 | int num_subdevs; | 80 | int num_subdevs; |
47 | struct tps65090_subdev_info *subdevs; | 81 | struct tps65090_subdev_info *subdevs; |
82 | struct tps65090_regulator_plat_data *reg_pdata[TPS65090_REGULATOR_MAX]; | ||
48 | }; | 83 | }; |
49 | 84 | ||
50 | /* | 85 | /* |
diff --git a/include/linux/mfd/tps6586x.h b/include/linux/mfd/tps6586x.h index 2dd123194958..f8da0e152567 100644 --- a/include/linux/mfd/tps6586x.h +++ b/include/linux/mfd/tps6586x.h | |||
@@ -29,6 +29,7 @@ enum { | |||
29 | TPS6586X_ID_LDO_8, | 29 | TPS6586X_ID_LDO_8, |
30 | TPS6586X_ID_LDO_9, | 30 | TPS6586X_ID_LDO_9, |
31 | TPS6586X_ID_LDO_RTC, | 31 | TPS6586X_ID_LDO_RTC, |
32 | TPS6586X_ID_MAX_REGULATOR, | ||
32 | }; | 33 | }; |
33 | 34 | ||
34 | enum { | 35 | enum { |
@@ -79,6 +80,8 @@ struct tps6586x_platform_data { | |||
79 | int gpio_base; | 80 | int gpio_base; |
80 | int irq_base; | 81 | int irq_base; |
81 | bool pm_off; | 82 | bool pm_off; |
83 | |||
84 | struct regulator_init_data *reg_init_data[TPS6586X_ID_MAX_REGULATOR]; | ||
82 | }; | 85 | }; |
83 | 86 | ||
84 | /* | 87 | /* |
diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h index c43cd3556b1f..7bc732ce6e50 100644 --- a/include/linux/regulator/consumer.h +++ b/include/linux/regulator/consumer.h | |||
@@ -160,6 +160,7 @@ int regulator_bulk_force_disable(int num_consumers, | |||
160 | void regulator_bulk_free(int num_consumers, | 160 | void regulator_bulk_free(int num_consumers, |
161 | struct regulator_bulk_data *consumers); | 161 | struct regulator_bulk_data *consumers); |
162 | 162 | ||
163 | int regulator_can_change_voltage(struct regulator *regulator); | ||
163 | int regulator_count_voltages(struct regulator *regulator); | 164 | int regulator_count_voltages(struct regulator *regulator); |
164 | int regulator_list_voltage(struct regulator *regulator, unsigned selector); | 165 | int regulator_list_voltage(struct regulator *regulator, unsigned selector); |
165 | int regulator_is_supported_voltage(struct regulator *regulator, | 166 | int regulator_is_supported_voltage(struct regulator *regulator, |
@@ -358,6 +359,10 @@ static inline void regulator_set_drvdata(struct regulator *regulator, | |||
358 | { | 359 | { |
359 | } | 360 | } |
360 | 361 | ||
362 | static inline int regulator_count_voltages(struct regulator *regulator) | ||
363 | { | ||
364 | return 0; | ||
365 | } | ||
361 | #endif | 366 | #endif |
362 | 367 | ||
363 | static inline int regulator_set_voltage_tol(struct regulator *regulator, | 368 | static inline int regulator_set_voltage_tol(struct regulator *regulator, |
@@ -367,4 +372,12 @@ static inline int regulator_set_voltage_tol(struct regulator *regulator, | |||
367 | new_uV - tol_uV, new_uV + tol_uV); | 372 | new_uV - tol_uV, new_uV + tol_uV); |
368 | } | 373 | } |
369 | 374 | ||
375 | static inline int regulator_is_supported_voltage_tol(struct regulator *regulator, | ||
376 | int target_uV, int tol_uV) | ||
377 | { | ||
378 | return regulator_is_supported_voltage(regulator, | ||
379 | target_uV - tol_uV, | ||
380 | target_uV + tol_uV); | ||
381 | } | ||
382 | |||
370 | #endif | 383 | #endif |
diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h index 7932a3bf21bd..d10bb0f39c5e 100644 --- a/include/linux/regulator/driver.h +++ b/include/linux/regulator/driver.h | |||
@@ -181,10 +181,13 @@ enum regulator_type { | |||
181 | * @type: Indicates if the regulator is a voltage or current regulator. | 181 | * @type: Indicates if the regulator is a voltage or current regulator. |
182 | * @owner: Module providing the regulator, used for refcounting. | 182 | * @owner: Module providing the regulator, used for refcounting. |
183 | * | 183 | * |
184 | * @continuous_voltage_range: Indicates if the regulator can set any | ||
185 | * voltage within constrains range. | ||
184 | * @n_voltages: Number of selectors available for ops.list_voltage(). | 186 | * @n_voltages: Number of selectors available for ops.list_voltage(). |
185 | * | 187 | * |
186 | * @min_uV: Voltage given by the lowest selector (if linear mapping) | 188 | * @min_uV: Voltage given by the lowest selector (if linear mapping) |
187 | * @uV_step: Voltage increase with each selector (if linear mapping) | 189 | * @uV_step: Voltage increase with each selector (if linear mapping) |
190 | * @linear_min_sel: Minimal selector for starting linear mapping | ||
188 | * @ramp_delay: Time to settle down after voltage change (unit: uV/us) | 191 | * @ramp_delay: Time to settle down after voltage change (unit: uV/us) |
189 | * @volt_table: Voltage mapping table (if table based mapping) | 192 | * @volt_table: Voltage mapping table (if table based mapping) |
190 | * | 193 | * |
@@ -199,6 +202,7 @@ struct regulator_desc { | |||
199 | const char *name; | 202 | const char *name; |
200 | const char *supply_name; | 203 | const char *supply_name; |
201 | int id; | 204 | int id; |
205 | bool continuous_voltage_range; | ||
202 | unsigned n_voltages; | 206 | unsigned n_voltages; |
203 | struct regulator_ops *ops; | 207 | struct regulator_ops *ops; |
204 | int irq; | 208 | int irq; |
@@ -207,6 +211,7 @@ struct regulator_desc { | |||
207 | 211 | ||
208 | unsigned int min_uV; | 212 | unsigned int min_uV; |
209 | unsigned int uV_step; | 213 | unsigned int uV_step; |
214 | unsigned int linear_min_sel; | ||
210 | unsigned int ramp_delay; | 215 | unsigned int ramp_delay; |
211 | 216 | ||
212 | const unsigned int *volt_table; | 217 | const unsigned int *volt_table; |
diff --git a/include/linux/regulator/max8973-regulator.h b/include/linux/regulator/max8973-regulator.h new file mode 100644 index 000000000000..f8acc052e353 --- /dev/null +++ b/include/linux/regulator/max8973-regulator.h | |||
@@ -0,0 +1,72 @@ | |||
1 | /* | ||
2 | * max8973-regulator.h -- MAXIM 8973 regulator | ||
3 | * | ||
4 | * Interface for regulator driver for MAXIM 8973 DC-DC step-down | ||
5 | * switching regulator. | ||
6 | * | ||
7 | * Copyright (C) 2012 NVIDIA Corporation | ||
8 | |||
9 | * Author: Laxman Dewangan <ldewangan@nvidia.com> | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or modify | ||
12 | * it under the terms of the GNU General Public License as published by | ||
13 | * the Free Software Foundation; either version 2 of the License, or | ||
14 | * (at your option) any later version. | ||
15 | * | ||
16 | * This program is distributed in the hope that it will be useful, but WITHOUT | ||
17 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
18 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
19 | * more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public License along | ||
22 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
23 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
24 | * | ||
25 | */ | ||
26 | |||
27 | #ifndef __LINUX_REGULATOR_MAX8973_H | ||
28 | #define __LINUX_REGULATOR_MAX8973_H | ||
29 | |||
30 | /* | ||
31 | * Control flags for configuration of the device. | ||
32 | * Client need to pass this information with ORed | ||
33 | */ | ||
34 | #define MAX8973_CONTROL_REMOTE_SENSE_ENABLE 0x00000001 | ||
35 | #define MAX8973_CONTROL_FALLING_SLEW_RATE_ENABLE 0x00000002 | ||
36 | #define MAX8973_CONTROL_OUTPUT_ACTIVE_DISCH_ENABLE 0x00000004 | ||
37 | #define MAX8973_CONTROL_BIAS_ENABLE 0x00000008 | ||
38 | #define MAX8973_CONTROL_PULL_DOWN_ENABLE 0x00000010 | ||
39 | #define MAX8973_CONTROL_FREQ_SHIFT_9PER_ENABLE 0x00000020 | ||
40 | |||
41 | #define MAX8973_CONTROL_CLKADV_TRIP_DISABLED 0x00000000 | ||
42 | #define MAX8973_CONTROL_CLKADV_TRIP_75mV_PER_US 0x00010000 | ||
43 | #define MAX8973_CONTROL_CLKADV_TRIP_150mV_PER_US 0x00020000 | ||
44 | #define MAX8973_CONTROL_CLKADV_TRIP_75mV_PER_US_HIST_DIS 0x00030000 | ||
45 | |||
46 | #define MAX8973_CONTROL_INDUCTOR_VALUE_NOMINAL 0x00000000 | ||
47 | #define MAX8973_CONTROL_INDUCTOR_VALUE_MINUS_30_PER 0x00100000 | ||
48 | #define MAX8973_CONTROL_INDUCTOR_VALUE_PLUS_30_PER 0x00200000 | ||
49 | #define MAX8973_CONTROL_INDUCTOR_VALUE_PLUS_60_PER 0x00300000 | ||
50 | |||
51 | /* | ||
52 | * struct max8973_regulator_platform_data - max8973 regulator platform data. | ||
53 | * | ||
54 | * @reg_init_data: The regulator init data. | ||
55 | * @control_flags: Control flags which are ORed value of above flags to | ||
56 | * configure device. | ||
57 | * @enable_ext_control: Enable the voltage enable/disable through external | ||
58 | * control signal from EN input pin. If it is false then | ||
59 | * voltage output will be enabled/disabled through EN bit of | ||
60 | * device register. | ||
61 | * @dvs_gpio: GPIO for dvs. It should be -1 if this is tied with fixed logic. | ||
62 | * @dvs_def_state: Default state of dvs. 1 if it is high else 0. | ||
63 | */ | ||
64 | struct max8973_regulator_platform_data { | ||
65 | struct regulator_init_data *reg_init_data; | ||
66 | unsigned long control_flags; | ||
67 | bool enable_ext_control; | ||
68 | int dvs_gpio; | ||
69 | unsigned dvs_def_state:1; | ||
70 | }; | ||
71 | |||
72 | #endif /* __LINUX_REGULATOR_MAX8973_H */ | ||
diff --git a/include/linux/regulator/tps51632-regulator.h b/include/linux/regulator/tps51632-regulator.h new file mode 100644 index 000000000000..d00841e1a75a --- /dev/null +++ b/include/linux/regulator/tps51632-regulator.h | |||
@@ -0,0 +1,47 @@ | |||
1 | /* | ||
2 | * tps51632-regulator.h -- TPS51632 regulator | ||
3 | * | ||
4 | * Interface for regulator driver for TPS51632 3-2-1 Phase D-Cap Step Down | ||
5 | * Driverless Controller with serial VID control and DVFS. | ||
6 | * | ||
7 | * Copyright (C) 2012 NVIDIA Corporation | ||
8 | |||
9 | * Author: Laxman Dewangan <ldewangan@nvidia.com> | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or modify | ||
12 | * it under the terms of the GNU General Public License as published by | ||
13 | * the Free Software Foundation; either version 2 of the License, or | ||
14 | * (at your option) any later version. | ||
15 | * | ||
16 | * This program is distributed in the hope that it will be useful, but WITHOUT | ||
17 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
18 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
19 | * more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public License along | ||
22 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
23 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
24 | * | ||
25 | */ | ||
26 | |||
27 | #ifndef __LINUX_REGULATOR_TPS51632_H | ||
28 | #define __LINUX_REGULATOR_TPS51632_H | ||
29 | |||
30 | /* | ||
31 | * struct tps51632_regulator_platform_data - tps51632 regulator platform data. | ||
32 | * | ||
33 | * @reg_init_data: The regulator init data. | ||
34 | * @enable_pwm_dvfs: Enable PWM DVFS or not. | ||
35 | * @dvfs_step_20mV: Step for DVFS is 20mV or 10mV. | ||
36 | * @max_voltage_uV: Maximum possible voltage in PWM-DVFS mode. | ||
37 | * @base_voltage_uV: Base voltage when PWM-DVFS enabled. | ||
38 | */ | ||
39 | struct tps51632_regulator_platform_data { | ||
40 | struct regulator_init_data *reg_init_data; | ||
41 | bool enable_pwm_dvfs; | ||
42 | bool dvfs_step_20mV; | ||
43 | int max_voltage_uV; | ||
44 | int base_voltage_uV; | ||
45 | }; | ||
46 | |||
47 | #endif /* __LINUX_REGULATOR_TPS51632_H */ | ||
diff --git a/include/linux/regulator/tps65090-regulator.h b/include/linux/regulator/tps65090-regulator.h deleted file mode 100644 index 0fa04b64db3e..000000000000 --- a/include/linux/regulator/tps65090-regulator.h +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | /* | ||
2 | * Regulator driver interface for TI TPS65090 PMIC family | ||
3 | * | ||
4 | * Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved. | ||
5 | |||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms and conditions of the GNU General Public License, | ||
8 | * version 2, as published by the Free Software Foundation. | ||
9 | |||
10 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
11 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
12 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
13 | * more details. | ||
14 | |||
15 | * You should have received a copy of the GNU General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | #ifndef __REGULATOR_TPS65090_H | ||
20 | #define __REGULATOR_TPS65090_H | ||
21 | |||
22 | #include <linux/regulator/machine.h> | ||
23 | |||
24 | #define tps65090_rails(_name) "tps65090_"#_name | ||
25 | |||
26 | enum { | ||
27 | TPS65090_ID_DCDC1, | ||
28 | TPS65090_ID_DCDC2, | ||
29 | TPS65090_ID_DCDC3, | ||
30 | TPS65090_ID_FET1, | ||
31 | TPS65090_ID_FET2, | ||
32 | TPS65090_ID_FET3, | ||
33 | TPS65090_ID_FET4, | ||
34 | TPS65090_ID_FET5, | ||
35 | TPS65090_ID_FET6, | ||
36 | TPS65090_ID_FET7, | ||
37 | }; | ||
38 | |||
39 | /* | ||
40 | * struct tps65090_regulator_platform_data | ||
41 | * | ||
42 | * @regulator: The regulator init data. | ||
43 | * @slew_rate_uV_per_us: Slew rate microvolt per microsec. | ||
44 | */ | ||
45 | |||
46 | struct tps65090_regulator_platform_data { | ||
47 | struct regulator_init_data regulator; | ||
48 | }; | ||
49 | |||
50 | #endif /* __REGULATOR_TPS65090_H */ | ||