diff --git a/drivers/regulator/s2mps11.c b/drivers/regulator/s2mps11.c index 4849b44..f0ccd33 100644 --- a/drivers/regulator/s2mps11.c +++ b/drivers/regulator/s2mps11.c @@ -1094,8 +1094,21 @@ static const struct regulator_desc s2mpu02_regulators[] = { static int s2mps11_pmic_ethonoff(struct platform_device *pdev, bool onoff) { struct sec_pmic_dev *iodev = dev_get_drvdata(pdev->dev.parent); + unsigned int reg_val = 0; int ret = 0; + ret = regmap_read(iodev->regmap_pmic, S2MPS11_REG_L15CTRL, ®_val); + if (ret) { + dev_err(&pdev->dev, "failed to read S2MPS11_REG_L15CTRL value\n"); + return ret; + } + + ret = regmap_read(iodev->regmap_pmic, S2MPS11_REG_L17CTRL, ®_val); + if (ret) { + dev_err(&pdev->dev, "failed to read S2MPS11_REG_L17CTRL value\n"); + return ret; + } + if (onoff) { /* ETH VDD0 ON */ ret = regmap_update_bits(iodev->regmap_pmic, S2MPS11_REG_L15CTRL, 0xFF, 0x72); @@ -1221,24 +1234,14 @@ static int s2mps11_wdt_enable(struct sec_pmic_dev *iodev) /* USB3.0 Hub Power OFF(GL3512) : BUCK9 */ static void s2mps11_buck9_reset(struct sec_pmic_dev *iodev) { - int ret; - unsigned int reg_val; - - ret = regmap_read(iodev->regmap_pmic, S2MPS11_REG_B9CTRL1, ®_val); - - if (ret < 0) { - pr_err("%s : could not read S2MPS11_REG_B9CTRL1 value\n", __func__); - return; - } - - mdelay (10); - if (regmap_update_bits(iodev->regmap_pmic, + if(regmap_update_bits(iodev->regmap_pmic, S2MPS11_REG_B9CTRL1, 0xC0, 0)) pr_err("%s : S2MPS11_REG_B9CTRL1 Error!!\n", __func__); - mdelay (10); + mdelay(10); + if (regmap_update_bits(iodev->regmap_pmic, - S2MPS11_REG_B9CTRL1, 0xFF, reg_val)) + S2MPS11_REG_B9CTRL1, 0xC0, 0xC0)) pr_err("%s : S2MPS11_REG_B9CTRL1 Error!!\n", __func__); }