diff options
author | Mark Brown <broonie@sirena.org.uk> | 2013-04-27 21:13:42 -0400 |
---|---|---|
committer | Mark Brown <broonie@sirena.org.uk> | 2013-04-27 21:13:42 -0400 |
commit | c4578da56a022867acea2d6c6caf0301de0ff7ba (patch) | |
tree | 07702d06e89a759ba840859aa88a11efac382424 | |
parent | 388128ffd69e09306b8f17c626fd565120c416de (diff) | |
parent | 3ecf198eab145d45624010e03db2e9dfd284cced (diff) |
Merge remote-tracking branch 'regulator/topic/max77686' into v3.9-rc8
-rw-r--r-- | drivers/regulator/max77686.c | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/drivers/regulator/max77686.c b/drivers/regulator/max77686.c index e4586ee8858d..20935b1a6ed4 100644 --- a/drivers/regulator/max77686.c +++ b/drivers/regulator/max77686.c | |||
@@ -75,17 +75,20 @@ static int max77686_buck_set_suspend_disable(struct regulator_dev *rdev) | |||
75 | { | 75 | { |
76 | unsigned int val; | 76 | unsigned int val; |
77 | struct max77686_data *max77686 = rdev_get_drvdata(rdev); | 77 | struct max77686_data *max77686 = rdev_get_drvdata(rdev); |
78 | int id = rdev_get_id(rdev); | 78 | int ret, id = rdev_get_id(rdev); |
79 | 79 | ||
80 | if (id == MAX77686_BUCK1) | 80 | if (id == MAX77686_BUCK1) |
81 | val = 0x1; | 81 | val = 0x1; |
82 | else | 82 | else |
83 | val = 0x1 << MAX77686_OPMODE_BUCK234_SHIFT; | 83 | val = 0x1 << MAX77686_OPMODE_BUCK234_SHIFT; |
84 | 84 | ||
85 | ret = regmap_update_bits(rdev->regmap, rdev->desc->enable_reg, | ||
86 | rdev->desc->enable_mask, val); | ||
87 | if (ret) | ||
88 | return ret; | ||
89 | |||
85 | max77686->opmode[id] = val; | 90 | max77686->opmode[id] = val; |
86 | return regmap_update_bits(rdev->regmap, rdev->desc->enable_reg, | 91 | return 0; |
87 | rdev->desc->enable_mask, | ||
88 | val); | ||
89 | } | 92 | } |
90 | 93 | ||
91 | /* Some LDOs supports [LPM/Normal]ON mode during suspend state */ | 94 | /* Some LDOs supports [LPM/Normal]ON mode during suspend state */ |
@@ -94,7 +97,7 @@ static int max77686_set_suspend_mode(struct regulator_dev *rdev, | |||
94 | { | 97 | { |
95 | struct max77686_data *max77686 = rdev_get_drvdata(rdev); | 98 | struct max77686_data *max77686 = rdev_get_drvdata(rdev); |
96 | unsigned int val; | 99 | unsigned int val; |
97 | int id = rdev_get_id(rdev); | 100 | int ret, id = rdev_get_id(rdev); |
98 | 101 | ||
99 | /* BUCK[5-9] doesn't support this feature */ | 102 | /* BUCK[5-9] doesn't support this feature */ |
100 | if (id >= MAX77686_BUCK5) | 103 | if (id >= MAX77686_BUCK5) |
@@ -113,10 +116,13 @@ static int max77686_set_suspend_mode(struct regulator_dev *rdev, | |||
113 | return -EINVAL; | 116 | return -EINVAL; |
114 | } | 117 | } |
115 | 118 | ||
119 | ret = regmap_update_bits(rdev->regmap, rdev->desc->enable_reg, | ||
120 | rdev->desc->enable_mask, val); | ||
121 | if (ret) | ||
122 | return ret; | ||
123 | |||
116 | max77686->opmode[id] = val; | 124 | max77686->opmode[id] = val; |
117 | return regmap_update_bits(rdev->regmap, rdev->desc->enable_reg, | 125 | return 0; |
118 | rdev->desc->enable_mask, | ||
119 | val); | ||
120 | } | 126 | } |
121 | 127 | ||
122 | /* Some LDOs supports LPM-ON/OFF/Normal-ON mode during suspend state */ | 128 | /* Some LDOs supports LPM-ON/OFF/Normal-ON mode during suspend state */ |
@@ -125,6 +131,7 @@ static int max77686_ldo_set_suspend_mode(struct regulator_dev *rdev, | |||
125 | { | 131 | { |
126 | unsigned int val; | 132 | unsigned int val; |
127 | struct max77686_data *max77686 = rdev_get_drvdata(rdev); | 133 | struct max77686_data *max77686 = rdev_get_drvdata(rdev); |
134 | int ret; | ||
128 | 135 | ||
129 | switch (mode) { | 136 | switch (mode) { |
130 | case REGULATOR_MODE_STANDBY: /* switch off */ | 137 | case REGULATOR_MODE_STANDBY: /* switch off */ |
@@ -142,10 +149,13 @@ static int max77686_ldo_set_suspend_mode(struct regulator_dev *rdev, | |||
142 | return -EINVAL; | 149 | return -EINVAL; |
143 | } | 150 | } |
144 | 151 | ||
152 | ret = regmap_update_bits(rdev->regmap, rdev->desc->enable_reg, | ||
153 | rdev->desc->enable_mask, val); | ||
154 | if (ret) | ||
155 | return ret; | ||
156 | |||
145 | max77686->opmode[rdev_get_id(rdev)] = val; | 157 | max77686->opmode[rdev_get_id(rdev)] = val; |
146 | return regmap_update_bits(rdev->regmap, rdev->desc->enable_reg, | 158 | return 0; |
147 | rdev->desc->enable_mask, | ||
148 | val); | ||
149 | } | 159 | } |
150 | 160 | ||
151 | static int max77686_enable(struct regulator_dev *rdev) | 161 | static int max77686_enable(struct regulator_dev *rdev) |