regulator: max8973: make default/unset dvs gpio as invalid gpio
[firefly-linux-kernel-4.4.55.git] / drivers / regulator / max8973-regulator.c
index c3d55c2db593b8f37a253c4a07bd21130db99353..3df5a84f819cddc065c59bb0cbe2f092665d5b60 100644 (file)
@@ -266,8 +266,12 @@ static int max8973_init_dcdc(struct max8973_chip *max,
        if (pdata->control_flags & MAX8973_CONTROL_OUTPUT_ACTIVE_DISCH_ENABLE)
                control1 |= MAX8973_AD_ENABLE;
 
-       if (pdata->control_flags & MAX8973_CONTROL_BIAS_ENABLE)
+       if (pdata->control_flags & MAX8973_CONTROL_BIAS_ENABLE) {
                control1 |= MAX8973_BIAS_ENABLE;
+               max->desc.enable_time = 20;
+       } else {
+               max->desc.enable_time = 240;
+       }
 
        if (pdata->control_flags & MAX8973_CONTROL_FREQ_SHIFT_9PER_ENABLE)
                control1 |= MAX8973_FREQSHIFT_9PER;
@@ -409,7 +413,7 @@ static int max8973_probe(struct i2c_client *client,
        }
 
        if (pdata) {
-               max->dvs_gpio = pdata->dvs_gpio;
+               max->dvs_gpio = (pdata->dvs_gpio) ? pdata->dvs_gpio : -EINVAL;
                max->enable_external_control = pdata->enable_ext_control;
                max->curr_gpio_val = pdata->dvs_def_state;
                max->curr_vout_reg = MAX8973_VOUT + pdata->dvs_def_state;