diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-20 12:22:19 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-20 12:22:19 -0500 |
| commit | 8909ff652ddfc83ecdf450f96629c25489d88f77 (patch) | |
| tree | 01023e82481e027b7454e97ac2500d214b6cff08 /include/linux | |
| parent | 88cff241596f29122e9125a41b20d21dfed873cd (diff) | |
| parent | 2730fd82cbb922e6be8df08ba32c21be41757d3d (diff) | |
Merge tag 'regulator-3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
Pull regulator updates from Mark Brown:
"A fairly quiet release for the regulator API, the bulk of the changes
being lots of small cleanups and API updates contributed by Axel Lin
with just a small set of larger changes:
- New driver for LP8755
- DT support for S5M8767, TPS51632, TPS6507x and TPS65090
- Support for writing a "commit changes" bit in the regmap helper
functions."
* tag 'regulator-3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (60 commits)
regulator: Fix memory garbage dev_err printout.
regulator: max77686: Reuse rdev_get_id() function.
regulator: tps51632: Use regulator_[get|set]_voltage_sel_regmap
regulator: as3711: Fix checking if no platform initialization data
regulator: s5m8767: Prevent possible NULL pointer dereference
regulator: s5m8767: Fix dev argument for devm_kzalloc and of_get_regulator_init_data
regulator: core: Optimize _regulator_do_set_voltage if voltage does not change
regulator: max8998: Let regulator core handle the case selector == old_selector
regulator: s5m8767: Use of_get_child_count()
regulator: anatop: improve precision of delay time
regulator: show state for GPIO-controlled regulators
regulator: s5m8767: Fix build in non-DT case
regulator: add device tree support for s5m8767
regulator: palmas: Remove a redundant setting for warm_reset
regulator: mc13xxx: Use of_get_child_count()
regulator: max8997: Use of_get_child_count()
regulator: tps65090: Fix using wrong dev argument for calling of_regulator_match
regulators: anatop: add set_voltage_time_sel interface
regulator: Add missing of_node_put()
regulator: tps6507x: Fix using wrong dev argument for calling of_regulator_match
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mfd/samsung/core.h | 11 | ||||
| -rw-r--r-- | include/linux/platform_data/lp8755.h | 71 | ||||
| -rw-r--r-- | include/linux/regulator/driver.h | 6 |
3 files changed, 84 insertions, 4 deletions
diff --git a/include/linux/mfd/samsung/core.h b/include/linux/mfd/samsung/core.h index b50c38f8bc48..f0f4de3b4ccc 100644 --- a/include/linux/mfd/samsung/core.h +++ b/include/linux/mfd/samsung/core.h | |||
| @@ -26,6 +26,7 @@ enum sec_device_type { | |||
| 26 | /** | 26 | /** |
| 27 | * struct sec_pmic_dev - s5m87xx master device for sub-drivers | 27 | * struct sec_pmic_dev - s5m87xx master device for sub-drivers |
| 28 | * @dev: master device of the chip (can be used to access platform data) | 28 | * @dev: master device of the chip (can be used to access platform data) |
| 29 | * @pdata: pointer to private data used to pass platform data to child | ||
| 29 | * @i2c: i2c client private data for regulator | 30 | * @i2c: i2c client private data for regulator |
| 30 | * @rtc: i2c client private data for rtc | 31 | * @rtc: i2c client private data for rtc |
| 31 | * @iolock: mutex for serializing io access | 32 | * @iolock: mutex for serializing io access |
| @@ -39,6 +40,7 @@ enum sec_device_type { | |||
| 39 | */ | 40 | */ |
| 40 | struct sec_pmic_dev { | 41 | struct sec_pmic_dev { |
| 41 | struct device *dev; | 42 | struct device *dev; |
| 43 | struct sec_platform_data *pdata; | ||
| 42 | struct regmap *regmap; | 44 | struct regmap *regmap; |
| 43 | struct i2c_client *i2c; | 45 | struct i2c_client *i2c; |
| 44 | struct i2c_client *rtc; | 46 | struct i2c_client *rtc; |
| @@ -82,11 +84,11 @@ struct sec_platform_data { | |||
| 82 | 84 | ||
| 83 | int buck_gpios[3]; | 85 | int buck_gpios[3]; |
| 84 | int buck_ds[3]; | 86 | int buck_ds[3]; |
| 85 | int buck2_voltage[8]; | 87 | unsigned int buck2_voltage[8]; |
| 86 | bool buck2_gpiodvs; | 88 | bool buck2_gpiodvs; |
| 87 | int buck3_voltage[8]; | 89 | unsigned int buck3_voltage[8]; |
| 88 | bool buck3_gpiodvs; | 90 | bool buck3_gpiodvs; |
| 89 | int buck4_voltage[8]; | 91 | unsigned int buck4_voltage[8]; |
| 90 | bool buck4_gpiodvs; | 92 | bool buck4_gpiodvs; |
| 91 | 93 | ||
| 92 | int buck_set1; | 94 | int buck_set1; |
| @@ -127,6 +129,7 @@ struct sec_platform_data { | |||
| 127 | struct sec_regulator_data { | 129 | struct sec_regulator_data { |
| 128 | int id; | 130 | int id; |
| 129 | struct regulator_init_data *initdata; | 131 | struct regulator_init_data *initdata; |
| 132 | struct device_node *reg_node; | ||
| 130 | }; | 133 | }; |
| 131 | 134 | ||
| 132 | /* | 135 | /* |
| @@ -136,7 +139,7 @@ struct sec_regulator_data { | |||
| 136 | */ | 139 | */ |
| 137 | struct sec_opmode_data { | 140 | struct sec_opmode_data { |
| 138 | int id; | 141 | int id; |
| 139 | int mode; | 142 | unsigned int mode; |
| 140 | }; | 143 | }; |
| 141 | 144 | ||
| 142 | /* | 145 | /* |
diff --git a/include/linux/platform_data/lp8755.h b/include/linux/platform_data/lp8755.h new file mode 100644 index 000000000000..a7fd0776c9bf --- /dev/null +++ b/include/linux/platform_data/lp8755.h | |||
| @@ -0,0 +1,71 @@ | |||
| 1 | /* | ||
| 2 | * LP8755 High Performance Power Management Unit Driver:System Interface Driver | ||
| 3 | * | ||
| 4 | * Copyright (C) 2012 Texas Instruments | ||
| 5 | * | ||
| 6 | * Author: Daniel(Geon Si) Jeong <daniel.jeong@ti.com> | ||
| 7 | * G.Shark Jeong <gshark.jeong@gmail.com> | ||
| 8 | * | ||
| 9 | * This program is free software; you can redistribute it and/or modify | ||
| 10 | * it under the terms of the GNU General Public License version 2 as | ||
| 11 | * published by the Free Software Foundation. | ||
| 12 | * | ||
| 13 | */ | ||
| 14 | |||
| 15 | #ifndef _LP8755_H | ||
| 16 | #define _LP8755_H | ||
| 17 | |||
| 18 | #include <linux/regulator/consumer.h> | ||
| 19 | |||
| 20 | #define LP8755_NAME "lp8755-regulator" | ||
| 21 | /* | ||
| 22 | *PWR FAULT : power fault detected | ||
| 23 | *OCP : over current protect activated | ||
| 24 | *OVP : over voltage protect activated | ||
| 25 | *TEMP_WARN : thermal warning | ||
| 26 | *TEMP_SHDN : thermal shutdonw detected | ||
| 27 | *I_LOAD : current measured | ||
| 28 | */ | ||
| 29 | #define LP8755_EVENT_PWR_FAULT REGULATOR_EVENT_FAIL | ||
| 30 | #define LP8755_EVENT_OCP REGULATOR_EVENT_OVER_CURRENT | ||
| 31 | #define LP8755_EVENT_OVP 0x10000 | ||
| 32 | #define LP8755_EVENT_TEMP_WARN 0x2000 | ||
| 33 | #define LP8755_EVENT_TEMP_SHDN REGULATOR_EVENT_OVER_TEMP | ||
| 34 | #define LP8755_EVENT_I_LOAD 0x40000 | ||
| 35 | |||
| 36 | enum lp8755_bucks { | ||
| 37 | LP8755_BUCK0 = 0, | ||
| 38 | LP8755_BUCK1, | ||
| 39 | LP8755_BUCK2, | ||
| 40 | LP8755_BUCK3, | ||
| 41 | LP8755_BUCK4, | ||
| 42 | LP8755_BUCK5, | ||
| 43 | LP8755_BUCK_MAX, | ||
| 44 | }; | ||
| 45 | |||
| 46 | /** | ||
| 47 | * multiphase configuration options | ||
| 48 | */ | ||
| 49 | enum lp8755_mphase_config { | ||
| 50 | MPHASE_CONF0, | ||
| 51 | MPHASE_CONF1, | ||
| 52 | MPHASE_CONF2, | ||
| 53 | MPHASE_CONF3, | ||
| 54 | MPHASE_CONF4, | ||
| 55 | MPHASE_CONF5, | ||
| 56 | MPHASE_CONF6, | ||
| 57 | MPHASE_CONF7, | ||
| 58 | MPHASE_CONF8, | ||
| 59 | MPHASE_CONF_MAX | ||
| 60 | }; | ||
| 61 | |||
| 62 | /** | ||
| 63 | * struct lp8755_platform_data | ||
| 64 | * @mphase_type : Multiphase Switcher Configurations. | ||
| 65 | * @buck_data : buck0~6 init voltage in uV | ||
| 66 | */ | ||
| 67 | struct lp8755_platform_data { | ||
| 68 | int mphase; | ||
| 69 | struct regulator_init_data *buck_data[LP8755_BUCK_MAX]; | ||
| 70 | }; | ||
| 71 | #endif | ||
diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h index d10bb0f39c5e..23070fd83872 100644 --- a/include/linux/regulator/driver.h +++ b/include/linux/regulator/driver.h | |||
| @@ -193,6 +193,10 @@ enum regulator_type { | |||
| 193 | * | 193 | * |
| 194 | * @vsel_reg: Register for selector when using regulator_regmap_X_voltage_ | 194 | * @vsel_reg: Register for selector when using regulator_regmap_X_voltage_ |
| 195 | * @vsel_mask: Mask for register bitfield used for selector | 195 | * @vsel_mask: Mask for register bitfield used for selector |
| 196 | * @apply_reg: Register for initiate voltage change on the output when | ||
| 197 | * using regulator_set_voltage_sel_regmap | ||
| 198 | * @apply_bit: Register bitfield used for initiate voltage change on the | ||
| 199 | * output when using regulator_set_voltage_sel_regmap | ||
| 196 | * @enable_reg: Register for control when using regmap enable/disable ops | 200 | * @enable_reg: Register for control when using regmap enable/disable ops |
| 197 | * @enable_mask: Mask for control when using regmap enable/disable ops | 201 | * @enable_mask: Mask for control when using regmap enable/disable ops |
| 198 | * | 202 | * |
| @@ -218,6 +222,8 @@ struct regulator_desc { | |||
| 218 | 222 | ||
| 219 | unsigned int vsel_reg; | 223 | unsigned int vsel_reg; |
| 220 | unsigned int vsel_mask; | 224 | unsigned int vsel_mask; |
| 225 | unsigned int apply_reg; | ||
| 226 | unsigned int apply_bit; | ||
| 221 | unsigned int enable_reg; | 227 | unsigned int enable_reg; |
| 222 | unsigned int enable_mask; | 228 | unsigned int enable_mask; |
| 223 | unsigned int bypass_reg; | 229 | unsigned int bypass_reg; |
