Commit 596d696a authored by Gregory Herrero's avatar Gregory Herrero Committed by Felipe Balbi

usb: dwc2: gadget: add vbus_draw support

This callback informs the driver about the total amount of current it
is allowed to draw. Share this information with the phy so that
current limits can be set for charging for example.
Tested-by: default avatarRobert Baldyga <r.baldyga@samsung.com>
Acked-by: default avatarPaul Zimmerman <paulz@synopsys.com>
Signed-off-by: default avatarGregory Herrero <gregory.herrero@intel.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 6d13673e
...@@ -3053,12 +3053,29 @@ static int s3c_hsotg_vbus_session(struct usb_gadget *gadget, int is_active) ...@@ -3053,12 +3053,29 @@ static int s3c_hsotg_vbus_session(struct usb_gadget *gadget, int is_active)
return 0; return 0;
} }
/**
* s3c_hsotg_vbus_draw - report bMaxPower field
* @gadget: The usb gadget state
* @mA: Amount of current
*
* Report how much power the device may consume to the phy.
*/
static int s3c_hsotg_vbus_draw(struct usb_gadget *gadget, unsigned mA)
{
struct dwc2_hsotg *hsotg = to_hsotg(gadget);
if (IS_ERR_OR_NULL(hsotg->uphy))
return -ENOTSUPP;
return usb_phy_set_power(hsotg->uphy, mA);
}
static const struct usb_gadget_ops s3c_hsotg_gadget_ops = { static const struct usb_gadget_ops s3c_hsotg_gadget_ops = {
.get_frame = s3c_hsotg_gadget_getframe, .get_frame = s3c_hsotg_gadget_getframe,
.udc_start = s3c_hsotg_udc_start, .udc_start = s3c_hsotg_udc_start,
.udc_stop = s3c_hsotg_udc_stop, .udc_stop = s3c_hsotg_udc_stop,
.pullup = s3c_hsotg_pullup, .pullup = s3c_hsotg_pullup,
.vbus_session = s3c_hsotg_vbus_session, .vbus_session = s3c_hsotg_vbus_session,
.vbus_draw = s3c_hsotg_vbus_draw,
}; };
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment