4.14-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Hans de Goede <[email protected]>

commit ad49aee401dd1997ec71360df6e51a91ad3cf516 upstream.

Sometimes (firmware bug?) the V5 boost GPIO is not configured as output
by the BIOS, leading to the 5V boost convertor being permanently on,

Explicitly set the direction and drv flags rather then inheriting them
from the firmware to fix this.

Fixes: 585cb239f4de ("extcon: intel-cht-wc: Disable external 5v boost ...")
Cc: [email protected]
Reviewed-by: Andy Shevchenko <[email protected]>
Signed-off-by: Hans de Goede <[email protected]>
Signed-off-by: Chanwoo Choi <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 drivers/extcon/extcon-intel-cht-wc.c |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

--- a/drivers/extcon/extcon-intel-cht-wc.c
+++ b/drivers/extcon/extcon-intel-cht-wc.c
@@ -66,6 +66,8 @@
 
 #define CHT_WC_VBUS_GPIO_CTLO          0x6e2d
 #define CHT_WC_VBUS_GPIO_CTLO_OUTPUT   BIT(0)
+#define CHT_WC_VBUS_GPIO_CTLO_DRV_OD   BIT(4)
+#define CHT_WC_VBUS_GPIO_CTLO_DIR_OUT  BIT(5)
 
 enum cht_wc_usb_id {
        USB_ID_OTG,
@@ -183,14 +185,15 @@ static void cht_wc_extcon_set_5v_boost(s
 {
        int ret, val;
 
-       val = enable ? CHT_WC_VBUS_GPIO_CTLO_OUTPUT : 0;
-
        /*
         * The 5V boost converter is enabled through a gpio on the PMIC, since
         * there currently is no gpio driver we access the gpio reg directly.
         */
-       ret = regmap_update_bits(ext->regmap, CHT_WC_VBUS_GPIO_CTLO,
-                                CHT_WC_VBUS_GPIO_CTLO_OUTPUT, val);
+       val = CHT_WC_VBUS_GPIO_CTLO_DRV_OD | CHT_WC_VBUS_GPIO_CTLO_DIR_OUT;
+       if (enable)
+               val |= CHT_WC_VBUS_GPIO_CTLO_OUTPUT;
+
+       ret = regmap_write(ext->regmap, CHT_WC_VBUS_GPIO_CTLO, val);
        if (ret)
                dev_err(ext->dev, "Error writing Vbus GPIO CTLO: %d\n", ret);
 }


Reply via email to