OSDN Git Service

usb: chipidea: do charger detection in vbus session
authorLi Jun <jun.li@nxp.com>
Mon, 4 Sep 2017 15:14:01 +0000 (23:14 +0800)
committerPeter Chen <peter.chen@nxp.com>
Thu, 21 Sep 2017 03:15:56 +0000 (11:15 +0800)
In case the usb phy has the capability to detect usb charger type,
do it when vbus is on.

Signed-off-by: Li Jun <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
drivers/usb/chipidea/udc.c

index fe8a905..daffa5e 100644 (file)
@@ -1526,6 +1526,10 @@ static int ci_udc_vbus_session(struct usb_gadget *_gadget, int is_active)
                gadget_ready = 1;
        spin_unlock_irqrestore(&ci->lock, flags);
 
+       if (ci->usb_phy)
+               usb_phy_set_charger_state(ci->usb_phy, is_active ?
+                       USB_CHARGER_PRESENT : USB_CHARGER_ABSENT);
+
        if (gadget_ready) {
                if (is_active) {
                        pm_runtime_get_sync(&_gadget->dev);