Commit 39fe3b45d3951c3633ddb7aafb29ceef3f012761

Authored by Mark Brown

Merge remote-tracking branch 'regulator/topic/palmas' into regulator-next

Showing 3 changed files Side-by-side Diff

Documentation/devicetree/bindings/regulator/palmas-pmic.txt
... ... @@ -25,8 +25,8 @@
25 25 Additional custom properties are listed below.
26 26  
27 27 For ti,palmas-pmic - smps12, smps123, smps3 depending on OTP,
28   - smps45, smps457, smps7 depending on variant, smps6, smps[8-10],
29   - ldo[1-9], ldoln, ldousb.
  28 + smps45, smps457, smps7 depending on variant, smps6, smps[8-9],
  29 + smps10_out2, smps10_out1, do[1-9], ldoln, ldousb.
30 30  
31 31 Optional sub-node properties:
32 32 ti,warm-reset - maintain voltage during warm reset(boolean)
drivers/regulator/palmas-regulator.c
... ... @@ -97,11 +97,16 @@
97 97 .ctrl_addr = PALMAS_SMPS9_CTRL,
98 98 },
99 99 {
100   - .name = "SMPS10",
  100 + .name = "SMPS10_OUT2",
101 101 .sname = "smps10-in",
102 102 .ctrl_addr = PALMAS_SMPS10_CTRL,
103 103 },
104 104 {
  105 + .name = "SMPS10_OUT1",
  106 + .sname = "smps10-out2",
  107 + .ctrl_addr = PALMAS_SMPS10_CTRL,
  108 + },
  109 + {
105 110 .name = "LDO1",
106 111 .sname = "ldo1-in",
107 112 .vsel_addr = PALMAS_LDO1_VOLTAGE,
... ... @@ -487,6 +492,8 @@
487 492 .set_voltage_sel = regulator_set_voltage_sel_regmap,
488 493 .list_voltage = regulator_list_voltage_linear,
489 494 .map_voltage = regulator_map_voltage_linear,
  495 + .set_bypass = regulator_set_bypass_regmap,
  496 + .get_bypass = regulator_get_bypass_regmap,
490 497 };
491 498  
492 499 static int palmas_is_enabled_ldo(struct regulator_dev *dev)
... ... @@ -538,7 +545,8 @@
538 545 return ret;
539 546  
540 547 switch (id) {
541   - case PALMAS_REG_SMPS10:
  548 + case PALMAS_REG_SMPS10_OUT1:
  549 + case PALMAS_REG_SMPS10_OUT2:
542 550 reg &= ~PALMAS_SMPS10_CTRL_MODE_SLEEP_MASK;
543 551 if (reg_init->mode_sleep)
544 552 reg |= reg_init->mode_sleep <<
... ... @@ -681,7 +689,8 @@
681 689 { .name = "smps7", },
682 690 { .name = "smps8", },
683 691 { .name = "smps9", },
684   - { .name = "smps10", },
  692 + { .name = "smps10_out2", },
  693 + { .name = "smps10_out1", },
685 694 { .name = "ldo1", },
686 695 { .name = "ldo2", },
687 696 { .name = "ldo3", },
... ... @@ -838,7 +847,8 @@
838 847 continue;
839 848 ramp_delay_support = true;
840 849 break;
841   - case PALMAS_REG_SMPS10:
  850 + case PALMAS_REG_SMPS10_OUT1:
  851 + case PALMAS_REG_SMPS10_OUT2:
842 852 if (!PALMAS_PMIC_HAS(palmas, SMPS10_BOOST))
843 853 continue;
844 854 }
... ... @@ -872,7 +882,8 @@
872 882 pmic->desc[id].id = id;
873 883  
874 884 switch (id) {
875   - case PALMAS_REG_SMPS10:
  885 + case PALMAS_REG_SMPS10_OUT1:
  886 + case PALMAS_REG_SMPS10_OUT2:
876 887 pmic->desc[id].n_voltages = PALMAS_SMPS10_NUM_VOLTAGES;
877 888 pmic->desc[id].ops = &palmas_ops_smps10;
878 889 pmic->desc[id].vsel_reg =
... ... @@ -882,7 +893,14 @@
882 893 pmic->desc[id].enable_reg =
883 894 PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
884 895 PALMAS_SMPS10_CTRL);
885   - pmic->desc[id].enable_mask = SMPS10_BOOST_EN;
  896 + if (id == PALMAS_REG_SMPS10_OUT1)
  897 + pmic->desc[id].enable_mask = SMPS10_SWITCH_EN;
  898 + else
  899 + pmic->desc[id].enable_mask = SMPS10_BOOST_EN;
  900 + pmic->desc[id].bypass_reg =
  901 + PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
  902 + PALMAS_SMPS10_CTRL);
  903 + pmic->desc[id].bypass_mask = SMPS10_BYPASS_EN;
886 904 pmic->desc[id].min_uV = 3750000;
887 905 pmic->desc[id].uV_step = 1250000;
888 906 break;
include/linux/mfd/palmas.h
... ... @@ -160,7 +160,8 @@
160 160 PALMAS_REG_SMPS7,
161 161 PALMAS_REG_SMPS8,
162 162 PALMAS_REG_SMPS9,
163   - PALMAS_REG_SMPS10,
  163 + PALMAS_REG_SMPS10_OUT2,
  164 + PALMAS_REG_SMPS10_OUT1,
164 165 /* LDO regulators */
165 166 PALMAS_REG_LDO1,
166 167 PALMAS_REG_LDO2,
... ... @@ -355,9 +356,9 @@
355 356 int smps123;
356 357 int smps457;
357 358  
358   - int range[PALMAS_REG_SMPS10];
359   - unsigned int ramp_delay[PALMAS_REG_SMPS10];
360   - unsigned int current_reg_mode[PALMAS_REG_SMPS10];
  359 + int range[PALMAS_REG_SMPS10_OUT1];
  360 + unsigned int ramp_delay[PALMAS_REG_SMPS10_OUT1];
  361 + unsigned int current_reg_mode[PALMAS_REG_SMPS10_OUT1];
361 362 };
362 363  
363 364 struct palmas_resource {