return 0;
 }
 
+static void max77843_charger_set_otg_vbus(struct max77843_muic_info *info,
+                bool on)
+{
+       struct max77693_dev *max77843 = info->max77843;
+       unsigned int cnfg00;
+
+       if (on)
+               cnfg00 = MAX77843_CHG_OTG_MASK | MAX77843_CHG_BOOST_MASK;
+       else
+               cnfg00 = MAX77843_CHG_ENABLE | MAX77843_CHG_BUCK_MASK;
+
+       regmap_update_bits(max77843->regmap_chg, MAX77843_CHG_REG_CHG_CNFG_00,
+                          MAX77843_CHG_MODE_MASK, cnfg00);
+}
+
 static int max77843_muic_get_cable_type(struct max77843_muic_info *info,
                enum max77843_muic_cable_group group, bool *attached)
 {
                        return ret;
 
                extcon_set_state_sync(info->edev, EXTCON_USB_HOST, attached);
+               max77843_charger_set_otg_vbus(info, attached);
                break;
        case MAX77843_MUIC_GND_MHL_VB:
        case MAX77843_MUIC_GND_MHL:
 
 #define MAX77843_CHG_OVER_CURRENT_BAT          (0x06 << 4)
 
 /* MAX77843 CHG_CNFG_00 register */
+#define MAX77843_CHG_MODE_MASK                 0x0f
 #define MAX77843_CHG_DISABLE                   0x00
 #define MAX77843_CHG_ENABLE                    0x05
 #define MAX77843_CHG_MASK                      0x01
+#define MAX77843_CHG_OTG_MASK                  0x02
 #define MAX77843_CHG_BUCK_MASK                 0x04
+#define MAX77843_CHG_BOOST_MASK                        0x08
 
 /* MAX77843 CHG_CNFG_01 register */
 #define MAX77843_CHG_RESTART_THRESHOLD_100     0x00