--- bcbb68f0a8c477421af5d4c09c7bdfde59abb274 +++ d23ca038dcdc236fa1886dc339d97ae84be46962 @@ -36,6 +36,7 @@ #include #include #include +#include /* FSA9480 I2C registers */ #define FSA9485_REG_DEVID 0x01 @@ -645,8 +646,14 @@ static int fsa9485_detect_dev(struct fsa if (val1 & DEV_USB || val2 & DEV_T2_USB_MASK) { dev_info(&client->dev, "usb connect\n"); - if (pdata->usb_cb) - pdata->usb_cb(FSA9485_ATTACHED); + if (pdata->usb_cb) { + if (force_fast_charge != 0) { + pdata->charger_cb(FSA9485_ATTACHED); + } else { + pdata->usb_cb(FSA9485_ATTACHED); + } + } + if (usbsw->mansw) { ret = i2c_smbus_write_byte_data(client, FSA9485_REG_MANSW1, usbsw->mansw);