lkml.org 
[lkml]   [2012]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH] regulator: Make s5m8767_get_voltage_register always return correct register
    From
    Date
    Check s5m8767->buck[2|3|4]_gpiodvs status in s5m8767_get_voltage_register
    and return correct register accordingly.

    Signed-off-by: Axel Lin <axel.lin@gmail.com>
    ---
    drivers/regulator/s5m8767.c | 27 +++++++++------------------
    1 files changed, 9 insertions(+), 18 deletions(-)

    diff --git a/drivers/regulator/s5m8767.c b/drivers/regulator/s5m8767.c
    index 611d02d..58447db 100644
    --- a/drivers/regulator/s5m8767.c
    +++ b/drivers/regulator/s5m8767.c
    @@ -219,6 +219,7 @@ static int s5m8767_reg_disable(struct regulator_dev *rdev)

    static int s5m8767_get_voltage_register(struct regulator_dev *rdev, int *_reg)
    {
    + struct s5m8767_info *s5m8767 = rdev_get_drvdata(rdev);
    int reg_id = rdev_get_id(rdev);
    int reg;

    @@ -234,12 +235,18 @@ static int s5m8767_get_voltage_register(struct regulator_dev *rdev, int *_reg)
    break;
    case S5M8767_BUCK2:
    reg = S5M8767_REG_BUCK2DVS1;
    + if (s5m8767->buck2_gpiodvs)
    + reg += s5m8767->buck_gpioindex;
    break;
    case S5M8767_BUCK3:
    reg = S5M8767_REG_BUCK3DVS1;
    + if (s5m8767->buck3_gpiodvs)
    + reg += s5m8767->buck_gpioindex;
    break;
    case S5M8767_BUCK4:
    reg = S5M8767_REG_BUCK4DVS1;
    + if (s5m8767->buck4_gpiodvs)
    + reg += s5m8767->buck_gpioindex;
    break;
    case S5M8767_BUCK5:
    reg = S5M8767_REG_BUCK5CTRL2;
    @@ -259,7 +266,7 @@ static int s5m8767_get_voltage_register(struct regulator_dev *rdev, int *_reg)
    static int s5m8767_get_voltage_sel(struct regulator_dev *rdev)
    {
    struct s5m8767_info *s5m8767 = rdev_get_drvdata(rdev);
    - int reg, mask = 0xff, ret;
    + int reg, mask, ret;
    int reg_id = rdev_get_id(rdev);
    u8 val;

    @@ -267,23 +274,7 @@ static int s5m8767_get_voltage_sel(struct regulator_dev *rdev)
    if (ret)
    return ret;

    - switch (reg_id) {
    - case S5M8767_LDO1 ... S5M8767_LDO28:
    - mask = 0x3f;
    - break;
    - case S5M8767_BUCK2:
    - if (s5m8767->buck2_gpiodvs)
    - reg += s5m8767->buck_gpioindex;
    - break;
    - case S5M8767_BUCK3:
    - if (s5m8767->buck3_gpiodvs)
    - reg += s5m8767->buck_gpioindex;
    - break;
    - case S5M8767_BUCK4:
    - if (s5m8767->buck4_gpiodvs)
    - reg += s5m8767->buck_gpioindex;
    - break;
    - }
    + mask = (reg_id < S5M8767_BUCK1) ? 0x3f : 0xff;

    ret = s5m_reg_read(s5m8767->iodev, reg, &val);
    if (ret)
    --
    1.7.5.4




    \
     
     \ /
      Last update: 2012-03-10 04:03    [W:0.026 / U:0.076 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site