diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-17 20:21:07 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-17 20:21:07 -0400 |
| commit | 5cfb277d660b8b285fc831701e91f01ec933c7b4 (patch) | |
| tree | 19ce05cf7ad84cb8494360031c2b66c882ae469b | |
| parent | 66a521bdda5681db255d4ce323c0de1a30e08f04 (diff) | |
| parent | c9ac065928d887e26da33a84210a3e3610052d31 (diff) | |
Merge tag 'regulator-v3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
Pull regulator fixes from Mark Brown:
"A few small fixes:
- Fixes for bugs in Palmas and as3722 exposed by recent changes in
the core - the drivers weren't allowing the current configuration
to be read sometimes.
- Provide a stub for regulator_can_change_voltage() for !REGULATOR.
- Make sure ltc3589 only looks at its child nodes in the device tree
rather than searching the whole tree"
* tag 'regulator-v3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
regulator: ltc3589: Use of_get_child_by_name
regulator: palmas: Fix SMPS list for 0V
regulator: add regulator_can_change_voltage stub
regulator: as3722: Make 0 a valid selector
| -rw-r--r-- | drivers/regulator/as3722-regulator.c | 2 | ||||
| -rw-r--r-- | drivers/regulator/ltc3589.c | 2 | ||||
| -rw-r--r-- | drivers/regulator/palmas-regulator.c | 2 | ||||
| -rw-r--r-- | include/linux/regulator/consumer.h | 5 |
4 files changed, 10 insertions, 1 deletions
diff --git a/drivers/regulator/as3722-regulator.c b/drivers/regulator/as3722-regulator.c index 85585219ce82..ad9e0c9b7daf 100644 --- a/drivers/regulator/as3722-regulator.c +++ b/drivers/regulator/as3722-regulator.c | |||
| @@ -433,6 +433,7 @@ static struct regulator_ops as3722_ldo3_extcntrl_ops = { | |||
| 433 | }; | 433 | }; |
| 434 | 434 | ||
| 435 | static const struct regulator_linear_range as3722_ldo_ranges[] = { | 435 | static const struct regulator_linear_range as3722_ldo_ranges[] = { |
| 436 | REGULATOR_LINEAR_RANGE(0, 0x00, 0x00, 0), | ||
| 436 | REGULATOR_LINEAR_RANGE(825000, 0x01, 0x24, 25000), | 437 | REGULATOR_LINEAR_RANGE(825000, 0x01, 0x24, 25000), |
| 437 | REGULATOR_LINEAR_RANGE(1725000, 0x40, 0x7F, 25000), | 438 | REGULATOR_LINEAR_RANGE(1725000, 0x40, 0x7F, 25000), |
| 438 | }; | 439 | }; |
| @@ -609,6 +610,7 @@ static bool as3722_sd0_is_low_voltage(struct as3722_regulators *as3722_regs) | |||
| 609 | } | 610 | } |
| 610 | 611 | ||
| 611 | static const struct regulator_linear_range as3722_sd2345_ranges[] = { | 612 | static const struct regulator_linear_range as3722_sd2345_ranges[] = { |
| 613 | REGULATOR_LINEAR_RANGE(0, 0x00, 0x00, 0), | ||
| 612 | REGULATOR_LINEAR_RANGE(612500, 0x01, 0x40, 12500), | 614 | REGULATOR_LINEAR_RANGE(612500, 0x01, 0x40, 12500), |
| 613 | REGULATOR_LINEAR_RANGE(1425000, 0x41, 0x70, 25000), | 615 | REGULATOR_LINEAR_RANGE(1425000, 0x41, 0x70, 25000), |
| 614 | REGULATOR_LINEAR_RANGE(2650000, 0x71, 0x7F, 50000), | 616 | REGULATOR_LINEAR_RANGE(2650000, 0x71, 0x7F, 50000), |
diff --git a/drivers/regulator/ltc3589.c b/drivers/regulator/ltc3589.c index 110a99ee1162..c8105182b8b8 100644 --- a/drivers/regulator/ltc3589.c +++ b/drivers/regulator/ltc3589.c | |||
| @@ -255,7 +255,7 @@ static int ltc3589_parse_regulators_dt(struct ltc3589 *ltc3589) | |||
| 255 | struct device_node *node; | 255 | struct device_node *node; |
| 256 | int i, ret; | 256 | int i, ret; |
| 257 | 257 | ||
| 258 | node = of_find_node_by_name(dev->of_node, "regulators"); | 258 | node = of_get_child_by_name(dev->of_node, "regulators"); |
| 259 | if (!node) { | 259 | if (!node) { |
| 260 | dev_err(dev, "regulators node not found\n"); | 260 | dev_err(dev, "regulators node not found\n"); |
| 261 | return -EINVAL; | 261 | return -EINVAL; |
diff --git a/drivers/regulator/palmas-regulator.c b/drivers/regulator/palmas-regulator.c index 864ed02ce4b7..b982f0ff4e01 100644 --- a/drivers/regulator/palmas-regulator.c +++ b/drivers/regulator/palmas-regulator.c | |||
| @@ -37,12 +37,14 @@ struct regs_info { | |||
| 37 | }; | 37 | }; |
| 38 | 38 | ||
| 39 | static const struct regulator_linear_range smps_low_ranges[] = { | 39 | static const struct regulator_linear_range smps_low_ranges[] = { |
| 40 | REGULATOR_LINEAR_RANGE(0, 0x0, 0x0, 0), | ||
| 40 | REGULATOR_LINEAR_RANGE(500000, 0x1, 0x6, 0), | 41 | REGULATOR_LINEAR_RANGE(500000, 0x1, 0x6, 0), |
| 41 | REGULATOR_LINEAR_RANGE(510000, 0x7, 0x79, 10000), | 42 | REGULATOR_LINEAR_RANGE(510000, 0x7, 0x79, 10000), |
| 42 | REGULATOR_LINEAR_RANGE(1650000, 0x7A, 0x7f, 0), | 43 | REGULATOR_LINEAR_RANGE(1650000, 0x7A, 0x7f, 0), |
| 43 | }; | 44 | }; |
| 44 | 45 | ||
| 45 | static const struct regulator_linear_range smps_high_ranges[] = { | 46 | static const struct regulator_linear_range smps_high_ranges[] = { |
| 47 | REGULATOR_LINEAR_RANGE(0, 0x0, 0x0, 0), | ||
| 46 | REGULATOR_LINEAR_RANGE(1000000, 0x1, 0x6, 0), | 48 | REGULATOR_LINEAR_RANGE(1000000, 0x1, 0x6, 0), |
| 47 | REGULATOR_LINEAR_RANGE(1020000, 0x7, 0x79, 20000), | 49 | REGULATOR_LINEAR_RANGE(1020000, 0x7, 0x79, 20000), |
| 48 | REGULATOR_LINEAR_RANGE(3300000, 0x7A, 0x7f, 0), | 50 | REGULATOR_LINEAR_RANGE(3300000, 0x7A, 0x7f, 0), |
diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h index a2d9d81038d1..14ec18d5e18b 100644 --- a/include/linux/regulator/consumer.h +++ b/include/linux/regulator/consumer.h | |||
| @@ -395,6 +395,11 @@ static inline void regulator_bulk_free(int num_consumers, | |||
| 395 | { | 395 | { |
| 396 | } | 396 | } |
| 397 | 397 | ||
| 398 | static inline int regulator_can_change_voltage(struct regulator *regulator) | ||
| 399 | { | ||
| 400 | return 0; | ||
| 401 | } | ||
| 402 | |||
| 398 | static inline int regulator_set_voltage(struct regulator *regulator, | 403 | static inline int regulator_set_voltage(struct regulator *regulator, |
| 399 | int min_uV, int max_uV) | 404 | int min_uV, int max_uV) |
| 400 | { | 405 | { |
