From: Linus Walleij <[email protected]>

This encodes the voltage shifts (the number of bits to shift
the register to get to the selector) into the regulator info.
We have several new variants of the AB8500 so this varies a
lot.

Cc: Axel Lin <[email protected]>
Signed-off-by: Linus Walleij <[email protected]>
---
 drivers/regulator/ab8500.c | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/drivers/regulator/ab8500.c b/drivers/regulator/ab8500.c
index 8807166..c659127 100644
--- a/drivers/regulator/ab8500.c
+++ b/drivers/regulator/ab8500.c
@@ -195,17 +195,14 @@ static int ab8500_regulator_get_voltage_sel(struct 
regulator_dev *rdev)
        }
 
        dev_vdbg(rdev_get_dev(rdev),
-               "%s-get_voltage (bank, reg, mask, value): 0x%x, 0x%x, 0x%x,"
-               " 0x%x\n",
-               info->desc.name, info->voltage_bank, info->voltage_reg,
-               info->voltage_mask, regval);
+               "%s-get_voltage (bank, reg, mask, shift, value): "
+               "0x%x, 0x%x, 0x%x, 0x%x, 0x%x\n",
+               info->desc.name, info->voltage_bank,
+               info->voltage_reg, info->voltage_mask,
+               info->voltage_shift, regval);
 
-       /* vintcore has a different layout */
        val = regval & info->voltage_mask;
-       if (info->desc.id == AB8500_LDO_INTCORE)
-               return val >> 0x3;
-       else
-               return val;
+       return val >> info->voltage_shift;
 }
 
 static int ab8500_regulator_set_voltage_sel(struct regulator_dev *rdev,
@@ -221,7 +218,7 @@ static int ab8500_regulator_set_voltage_sel(struct 
regulator_dev *rdev,
        }
 
        /* set the registers for the request */
-       regval = (u8)selector;
+       regval = (u8)selector << info->voltage_shift;
        ret = abx500_mask_and_set_register_interruptible(info->dev,
                        info->voltage_bank, info->voltage_reg,
                        info->voltage_mask, regval);
-- 
1.7.11.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
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