regulator: Fix the logic of tps65910_get_mode
authorAxel Lin <axel.lin@gmail.com>
Mon, 12 Mar 2012 23:15:27 +0000 (07:15 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 13 Mar 2012 23:18:03 +0000 (23:18 +0000)
We actually clear LDO_ST_ON_BIT for standby mode in tps65910_set_mode.
Fix the logic in tps65910_get_mode.

Supply state (EEPROM bits):
ST[1:0] = 00 : Off
ST[1:0] = 01 : On high power (ACTIVE)
ST[1:0] = 10 : Off
ST[1:0] = 11 : On low power (SLEEP)

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
drivers/regulator/tps65910-regulator.c

index 4ac0058dbf828d90407eeceb8a4a85cf6ae458c6..aa11ce86ec64f0bc0c90577ec6528f0bf6babf54 100644 (file)
@@ -520,7 +520,7 @@ static unsigned int tps65910_get_mode(struct regulator_dev *dev)
        if (value < 0)
                return value;
 
-       if (value & LDO_ST_ON_BIT)
+       if (!(value & LDO_ST_ON_BIT))
                return REGULATOR_MODE_STANDBY;
        else if (value & LDO_ST_MODE_BIT)
                return REGULATOR_MODE_IDLE;