well, if you have access to twl5031 docs you'd understand what I'm
talking about, the charger detection involves at least 3 blocks on
twl5031 plus musb to enable/disable pullups. The sequence is pretty much
as below:
1. vbus irq
2. usb_gadget_disconnect()
3. disable usb ldos
4. switch usb3v1 supply from vbat to vbus (to let charger detection work
on low bat)
5. enable usb3v1 *only*
6. call the notifier chain
7. BCC module kicks charger detection
8. disable usb3v1
9. switch usb3v1 supply back to vbat
10. enable usb ldos
11. usb_gadget_connect() (necessary since we might be connected to
charging port)