diff options
-rw-r--r-- | drivers/extcon/extcon-max77693.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/drivers/extcon/extcon-max77693.c b/drivers/extcon/extcon-max77693.c index 903c5078f12..b08a1e882e4 100644 --- a/drivers/extcon/extcon-max77693.c +++ b/drivers/extcon/extcon-max77693.c @@ -293,18 +293,10 @@ static int max77693_muic_set_path(struct max77693_muic_info *info, return ret; } - if (attached) { - if (info->prev_cable_type == - MAX77693_MUIC_ADC_FACTORY_MODE_UART_OFF) { - /* if cable_type is jig, then force UART */ - dev_info(info->dev, "For jig force using UART path\n"); - ctrl1 = CONTROL1_SW_UART; - } else { - ctrl1 = val; - } - } else { + if (attached) + ctrl1 = val; + else ctrl1 = CONTROL1_SW_OPEN; - } ret = max77693_update_reg(info->max77693->regmap_muic, MAX77693_MUIC_REG_CTRL1, ctrl1, COMP_SW_MASK); @@ -922,6 +914,15 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info) */ break; case MAX77693_CHARGER_TYPE_USB: + /* If UART is still connected, do not set path to USB */ + if (cable_type == MAX77693_MUIC_ADC_FACTORY_MODE_UART_OFF) { + ret = max77693_muic_set_path(info, info->path_uart, + attached); + if (ret < 0) + return ret; + break; + } + /* Only USB cable, PATH:AP_USB */ ret = max77693_muic_set_path(info, info->path_usb, attached); if (ret < 0) |