Commit 39fe3b45d3951c3633ddb7aafb29ceef3f012761
Exists in
smarc-imx_3.14.28_1.0.0_ga
and in
1 other branch
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 { |