drm: bridge: dw-hdmi: optimize edid reading process
[firefly-linux-kernel-4.4.55.git] / drivers / regulator / lp8752.c
index 6222f72b6cf29d7e3bfdbf8aef4de9c102ffd32b..d5b163e95de0b655b43726df93f938fef3b0f9eb 100644 (file)
@@ -81,12 +81,16 @@ static int lp8752_buck_set_mode(struct regulator_dev *rdev, unsigned int mode)
                ret = regmap_update_bits(pchip->regmap,
                                         rdev->desc->enable_reg,
                                         msk, 0x1);
+               break;
        case REGULATOR_MODE_NORMAL:
                /* automatic pwm/pfm mode */
                ret = regmap_update_bits(pchip->regmap,
                                         rdev->desc->enable_reg,
                                         msk, 0x0);
+               break;
        default:
+               dev_err(pchip->dev, "error:lp8752 only support auto and pwm mode\n");
+               ret = -EINVAL;
                break;
        }
 
@@ -113,6 +117,7 @@ static struct regulator_ops lp8752_buck_ops = {
        .list_voltage = regulator_list_voltage_linear_range,
        .set_voltage_sel = regulator_set_voltage_sel_regmap,
        .get_voltage_sel = regulator_get_voltage_sel_regmap,
+       .set_voltage_time_sel = regulator_set_voltage_time_sel,
        .enable = regulator_enable_regmap,
        .disable = regulator_disable_regmap,
        .is_enabled = regulator_is_enabled_regmap,
@@ -256,10 +261,10 @@ static int lp8752_probe(struct i2c_client *client,
 
        ret = regmap_update_bits(pchip->regmap,
                                 LP8752_CTRL_BUCK0,
-                                (1 << 0), 0x1);
+                                (1 << 0), 0);
        ret = regmap_update_bits(pchip->regmap,
                                 LP8752_CTRL_BUCK2,
-                                (1 << 0), 0x1);
+                                (1 << 0), 0);
 
        if (!pdata) {
                pchip->pdata = devm_kzalloc(pchip->dev,