On 20-11-14 00:12:45, Wesley Cheng wrote: > Some devices support charging while in device mode. In these situations, > the USB gadget will notify the DWC3 gadget driver to modify the current > based on the enumeration and device state. The usb_phy_set_power() API > will allow external charger entities to adjust the charge current through > the notifier block. > > Signed-off-by: Wesley Cheng <wcheng@xxxxxxxxxxxxxx> > --- > drivers/usb/dwc3/gadget.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c > index c145da1d8ba5..69122f66978e 100644 > --- a/drivers/usb/dwc3/gadget.c > +++ b/drivers/usb/dwc3/gadget.c > @@ -2387,6 +2387,16 @@ static void dwc3_gadget_set_speed(struct usb_gadget *g, > spin_unlock_irqrestore(&dwc->lock, flags); > } > > +static int dwc3_gadget_vbus_draw(struct usb_gadget *g, unsigned int mA) > +{ > + struct dwc3 *dwc = gadget_to_dwc(g); > + > + if (dwc->usb2_phy) > + return usb_phy_set_power(dwc->usb2_phy, mA); > + > + return 0; > +} > + > static const struct usb_gadget_ops dwc3_gadget_ops = { > .get_frame = dwc3_gadget_get_frame, > .wakeup = dwc3_gadget_wakeup, > @@ -2396,6 +2406,7 @@ static const struct usb_gadget_ops dwc3_gadget_ops = { > .udc_stop = dwc3_gadget_stop, > .udc_set_speed = dwc3_gadget_set_speed, > .get_config_params = dwc3_gadget_config_params, > + .vbus_draw = dwc3_gadget_vbus_draw, > }; > Reviewed-by: Peter Chen <peter.chen@xxxxxxx> -- Thanks, Peter Chen