Current code overrides control1 variable when setting ramp delay bits.
Fix it by just setting ramp_delay bits.

Signed-off-by: Axel Lin <axel....@ingics.com>
---
 drivers/regulator/max8973-regulator.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/regulator/max8973-regulator.c 
b/drivers/regulator/max8973-regulator.c
index 9a8ea91..adb1414 100644
--- a/drivers/regulator/max8973-regulator.c
+++ b/drivers/regulator/max8973-regulator.c
@@ -274,15 +274,15 @@ static int max8973_init_dcdc(struct max8973_chip *max,
        if (pdata->reg_init_data &&
                        pdata->reg_init_data->constraints.ramp_delay) {
                if (pdata->reg_init_data->constraints.ramp_delay < 25000)
-                       control1 = MAX8973_RAMP_12mV_PER_US;
+                       control1 |= MAX8973_RAMP_12mV_PER_US;
                else if (pdata->reg_init_data->constraints.ramp_delay < 50000)
-                       control1 = MAX8973_RAMP_25mV_PER_US;
+                       control1 |= MAX8973_RAMP_25mV_PER_US;
                else if (pdata->reg_init_data->constraints.ramp_delay < 200000)
-                       control1 = MAX8973_RAMP_50mV_PER_US;
+                       control1 |= MAX8973_RAMP_50mV_PER_US;
                else
-                       control1 = MAX8973_RAMP_200mV_PER_US;
+                       control1 |= MAX8973_RAMP_200mV_PER_US;
        } else {
-               control1 = MAX8973_RAMP_12mV_PER_US;
+               control1 |= MAX8973_RAMP_12mV_PER_US;
                max->desc.ramp_delay = 12500;
        }
 
-- 
1.7.10.4



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to