Re: [PATCH 1/3] usb: dwc3: gadget: Introduce a DWC3 VBUS draw callback
From: Peter Chen
Date: Mon Nov 16 2020 - 08:43:30 EST
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