From 29b3dea1279a7ca33220cc99594a44296fee1ba0 Mon Sep 17 00:00:00 2001 From: Jianqun Xu Date: Wed, 12 Aug 2020 10:20:03 +0800 Subject: [PATCH] MFD: fsusb302: set gpio desc to null if invalid Change-Id: Ic1ae7512be308360558ca838ab4595a54a697072 Signed-off-by: Jianqun Xu --- drivers/mfd/fusb302.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/mfd/fusb302.c b/drivers/mfd/fusb302.c index a7d460ae224d..205739f2af6f 100644 --- a/drivers/mfd/fusb302.c +++ b/drivers/mfd/fusb302.c @@ -355,8 +355,8 @@ static void platform_set_vbus_lvl_enable(struct fusb30x_chip *chip, int vbus_5v, { bool gpio_vbus_value = false; - gpio_vbus_value = gpiod_get_value(chip->gpio_vbus_5v); if (chip->gpio_vbus_5v) { + gpio_vbus_value = gpiod_get_value(chip->gpio_vbus_5v); gpiod_set_value(chip->gpio_vbus_5v, vbus_5v); /* Only set state here, don't sync notifier to PMIC */ extcon_set_state(chip->extcon, EXTCON_USB_VBUS_EN, vbus_5v); @@ -3217,20 +3217,24 @@ static int fusb_initialize_gpio(struct fusb30x_chip *chip) /* some board support vbus with other ways */ chip->gpio_vbus_5v = devm_gpiod_get_optional(chip->dev, "vbus-5v", GPIOD_OUT_LOW); - if (IS_ERR(chip->gpio_vbus_5v)) + if (IS_ERR(chip->gpio_vbus_5v)) { dev_warn(chip->dev, "Could not get named GPIO for VBus5V!\n"); - else + chip->gpio_vbus_5v = NULL; + } else { gpiod_set_value(chip->gpio_vbus_5v, 0); + } chip->gpio_vbus_other = devm_gpiod_get_optional(chip->dev, "vbus-other", GPIOD_OUT_LOW); - if (IS_ERR(chip->gpio_vbus_other)) + if (IS_ERR(chip->gpio_vbus_other)) { dev_warn(chip->dev, "Could not get named GPIO for VBusOther!\n"); - else + chip->gpio_vbus_other = NULL; + } else { gpiod_set_value(chip->gpio_vbus_other, 0); + } chip->gpio_discharge = devm_gpiod_get_optional(chip->dev, "discharge", GPIOD_OUT_LOW);