lkml.org 
[lkml]   [2019]   [Apr]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.0 223/246] regulator: act8865: Fix act8600_sudcdc_voltage_ranges setting
    Date
    5.0-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    [ Upstream commit f01a7beb6791f1c419424c1a6958b7d0a289c974 ]

    The act8600_sudcdc_voltage_ranges setting does not match the datasheet.

    The problems in below entry:
    REGULATOR_LINEAR_RANGE(19000000, 191, 255, 400000),

    1. The off-by-one min_sel causes wrong volatage calculation.
    The min_sel should be 192.
    2. According to the datasheet[1] Table 7. (on page 43):
    The selector 248 (0b11111000) ~ 255 (0b11111111) are 41.400V.

    Also fix off-by-one for ACT8600_SUDCDC_VOLTAGE_NUM.

    [1] https://active-semi.com/wp-content/uploads/ACT8600_Datasheet.pdf

    Fixes: df3a950e4e73 ("regulator: act8865: Add act8600 support")
    Signed-off-by: Axel Lin <axel.lin@ingics.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/regulator/act8865-regulator.c | 5 +++--
    1 file changed, 3 insertions(+), 2 deletions(-)

    diff --git a/drivers/regulator/act8865-regulator.c b/drivers/regulator/act8865-regulator.c
    index 21e20483bd91..e0239cf3f56d 100644
    --- a/drivers/regulator/act8865-regulator.c
    +++ b/drivers/regulator/act8865-regulator.c
    @@ -131,7 +131,7 @@
    * ACT8865 voltage number
    */
    #define ACT8865_VOLTAGE_NUM 64
    -#define ACT8600_SUDCDC_VOLTAGE_NUM 255
    +#define ACT8600_SUDCDC_VOLTAGE_NUM 256

    struct act8865 {
    struct regmap *regmap;
    @@ -222,7 +222,8 @@ static const struct regulator_linear_range act8600_sudcdc_voltage_ranges[] = {
    REGULATOR_LINEAR_RANGE(3000000, 0, 63, 0),
    REGULATOR_LINEAR_RANGE(3000000, 64, 159, 100000),
    REGULATOR_LINEAR_RANGE(12600000, 160, 191, 200000),
    - REGULATOR_LINEAR_RANGE(19000000, 191, 255, 400000),
    + REGULATOR_LINEAR_RANGE(19000000, 192, 247, 400000),
    + REGULATOR_LINEAR_RANGE(41400000, 248, 255, 0),
    };

    static struct regulator_ops act8865_ops = {
    --
    2.19.1


    \
     
     \ /
      Last update: 2019-04-04 11:20    [W:5.736 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site