regulator: max77620: Initialize values for DT properties
authorMark Zhang <markz@nvidia.com>
Thu, 10 Jan 2019 04:11:16 +0000 (12:11 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 Mar 2019 19:09:58 +0000 (20:09 +0100)
commit 0ab66b3c326ef8f77dae9f528118966365757c0c upstream.

If regulator DT node doesn't exist, its of_parse_cb callback
function isn't called. Then all values for DT properties are
filled with zero. This leads to wrong register update for
FPS and POK settings.

Signed-off-by: Jinyoung Park <jinyoungp@nvidia.com>
Signed-off-by: Mark Zhang <markz@nvidia.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/regulator/max77620-regulator.c

index b94e3a7..cd93cf5 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Maxim MAX77620 Regulator driver
  *
- * Copyright (c) 2016, NVIDIA CORPORATION.  All rights reserved.
+ * Copyright (c) 2016-2018, NVIDIA CORPORATION.  All rights reserved.
  *
  * Author: Mallikarjun Kasoju <mkasoju@nvidia.com>
  *     Laxman Dewangan <ldewangan@nvidia.com>
@@ -803,6 +803,14 @@ static int max77620_regulator_probe(struct platform_device *pdev)
                rdesc = &rinfo[id].desc;
                pmic->rinfo[id] = &max77620_regs_info[id];
                pmic->enable_power_mode[id] = MAX77620_POWER_MODE_NORMAL;
+               pmic->reg_pdata[id].active_fps_src = -1;
+               pmic->reg_pdata[id].active_fps_pd_slot = -1;
+               pmic->reg_pdata[id].active_fps_pu_slot = -1;
+               pmic->reg_pdata[id].suspend_fps_src = -1;
+               pmic->reg_pdata[id].suspend_fps_pd_slot = -1;
+               pmic->reg_pdata[id].suspend_fps_pu_slot = -1;
+               pmic->reg_pdata[id].power_ok = -1;
+               pmic->reg_pdata[id].ramp_rate_setting = -1;
 
                ret = max77620_read_slew_rate(pmic, id);
                if (ret < 0)