USBOTG_INTR_OFFSET,     /* Bit 16       ID_WKUP                 */
        USBOTG_INTR_OFFSET,     /* Bit 17       VBUS_WKUP               */
        USBOTG_INTR_OFFSET,     /* Bit 18       ID                      */
-       USBOTG_INTR_OFFSET,     /* Bit 19       VBUS                    */
+       USB_PRES_INTR_OFFSET,   /* Bit 19       VBUS                    */
        CHARGER_INTR_OFFSET,    /* Bit 20       CHRG_CTRL               */
        CHARGER_INTR_OFFSET,    /* Bit 21       EXT_CHRG                */
        CHARGER_INTR_OFFSET,    /* Bit 22       INT_CHRG                */
 
                sts.bytes[3] = 0; /* Only 24 bits are valid*/
 
+               /*
+                * Since VBUS status bit is not reliable for VBUS disconnect
+                * use CHARGER VBUS detection status bit instead.
+                */
+               if (sts.bytes[2] & 0x10)
+                       sts.bytes[2] |= 0x08;
+
                for (i = 0; sts.int_sts; sts.int_sts >>= 1, i++) {
                        local_irq_disable();
                        if (sts.int_sts & 0x1) {