summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/extcon/extcon-max77693.c23
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)