]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
regulator: Fix restoring pmic.dcdcx_hib_mode settings in wm8350_dcdc_set_suspend_enable
authorAxel Lin <axel.lin@gmail.com>
Thu, 22 Mar 2012 22:25:05 +0000 (06:25 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 26 Mar 2012 17:35:35 +0000 (18:35 +0100)
What we want is to restore wm8350->pmic.dcdcx_hib_mode settings to
WM8350_DCDCx_LOW_POWER registers. Current code also clears all other
bits of WM8350_DCDCx_LOW_POWER registers which is wrong.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
drivers/regulator/wm8350-regulator.c

index ab1e183a74b51e3fcf779b4a07782d935e683105..1c548218e12a2c3a02ce775ad08e28544a8d4821 100644 (file)
@@ -495,25 +495,25 @@ static int wm8350_dcdc_set_suspend_enable(struct regulator_dev *rdev)
                val = wm8350_reg_read(wm8350, WM8350_DCDC1_LOW_POWER)
                        & ~WM8350_DCDC_HIB_MODE_MASK;
                wm8350_reg_write(wm8350, WM8350_DCDC1_LOW_POWER,
-                       wm8350->pmic.dcdc1_hib_mode);
+                       val | wm8350->pmic.dcdc1_hib_mode);
                break;
        case WM8350_DCDC_3:
                val = wm8350_reg_read(wm8350, WM8350_DCDC3_LOW_POWER)
                        & ~WM8350_DCDC_HIB_MODE_MASK;
                wm8350_reg_write(wm8350, WM8350_DCDC3_LOW_POWER,
-                       wm8350->pmic.dcdc3_hib_mode);
+                       val | wm8350->pmic.dcdc3_hib_mode);
                break;
        case WM8350_DCDC_4:
                val = wm8350_reg_read(wm8350, WM8350_DCDC4_LOW_POWER)
                        & ~WM8350_DCDC_HIB_MODE_MASK;
                wm8350_reg_write(wm8350, WM8350_DCDC4_LOW_POWER,
-                       wm8350->pmic.dcdc4_hib_mode);
+                       val | wm8350->pmic.dcdc4_hib_mode);
                break;
        case WM8350_DCDC_6:
                val = wm8350_reg_read(wm8350, WM8350_DCDC6_LOW_POWER)
                        & ~WM8350_DCDC_HIB_MODE_MASK;
                wm8350_reg_write(wm8350, WM8350_DCDC6_LOW_POWER,
-                       wm8350->pmic.dcdc6_hib_mode);
+                       val | wm8350->pmic.dcdc6_hib_mode);
                break;
        case WM8350_DCDC_2:
        case WM8350_DCDC_5: