]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/regulator/anatop-regulator.c
Merge tag 'mfd-3.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
[karo-tx-linux.git] / drivers / regulator / anatop-regulator.c
index 596535dd917a7d061a48a648350b237885634f5f..1af97686f4448864d92b7dbfdf58e79c883edbb8 100644 (file)
@@ -67,14 +67,15 @@ static int anatop_regmap_set_voltage_sel(struct regulator_dev *reg,
 static int anatop_regmap_get_voltage_sel(struct regulator_dev *reg)
 {
        struct anatop_regulator *anatop_reg = rdev_get_drvdata(reg);
-       u32 val;
+       u32 val, mask;
 
        if (!anatop_reg->control_reg)
                return -ENOTSUPP;
 
        regmap_read(anatop_reg->anatop, anatop_reg->control_reg, &val);
-       val = (val & ((1 << anatop_reg->vol_bit_width) - 1)) >>
+       mask = ((1 << anatop_reg->vol_bit_width) - 1) <<
                anatop_reg->vol_bit_shift;
+       val = (val & mask) >> anatop_reg->vol_bit_shift;
 
        return val - anatop_reg->min_bit_val;
 }