Message ID | 20240723131817.262596-7-zli@ogga.fr |
---|---|
State | Changes Requested |
Delegated to: | Mattijs Korpershoek |
Headers | show |
Series | usb: gadget: atmel: Code refactor and DM_USB_GADGET support | expand |
On 7/23/24 3:18 PM, Zixun LI wrote: > Add controller attach/detach support by using > usb_gadget_ops.pullup() method. It is called 'function' in C, not 'method'. I think 'method' is C++ or maybe Java ? In any case: Reviewed-by: Marek Vasut <marex@denx.de> Thanks !
Hi Zixun, Thank you for the patch. On mar., juil. 23, 2024 at 15:18, Zixun LI <admin@hifiphile.com> wrote: > Add controller attach/detach support by using > usb_gadget_ops.pullup() method. > > Signed-off-by: Zixun LI <zli@ogga.fr> Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> > --- > drivers/usb/gadget/atmel_usba_udc.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c > index ea9ad7585e..a7b96449f8 100644 > --- a/drivers/usb/gadget/atmel_usba_udc.c > +++ b/drivers/usb/gadget/atmel_usba_udc.c > @@ -506,10 +506,28 @@ usba_udc_set_selfpowered(struct usb_gadget *gadget, int is_selfpowered) > return 0; > } > > +static int usba_udc_pullup(struct usb_gadget *gadget, int is_on) > +{ > + struct usba_udc *udc = to_usba_udc(gadget); > + u32 ctrl; > + > + ctrl = usba_readl(udc, CTRL); > + > + if (is_on) > + ctrl &= ~USBA_DETACH; > + else > + ctrl |= USBA_DETACH; > + > + usba_writel(udc, CTRL, ctrl); > + > + return 0; > +} > + > static const struct usb_gadget_ops usba_udc_ops = { > .get_frame = usba_udc_get_frame, > .wakeup = usba_udc_wakeup, > .set_selfpowered = usba_udc_set_selfpowered, > + .pullup = usba_udc_pullup, > }; > > static struct usb_endpoint_descriptor usba_ep0_desc = { > -- > 2.45.2
On mar., juil. 23, 2024 at 15:36, Marek Vasut <marex@denx.de> wrote: > On 7/23/24 3:18 PM, Zixun LI wrote: >> Add controller attach/detach support by using >> usb_gadget_ops.pullup() method. > > It is called 'function' in C, not 'method'. I think 'method' is C++ or > maybe Java ? Agreed, 'function' is more appropriate wording. Zixun, if you need to respin a v4 please consider using 'function'. Otherwise I can fix it up while applying ! > > In any case: > > Reviewed-by: Marek Vasut <marex@denx.de> > > Thanks !
diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c index ea9ad7585e..a7b96449f8 100644 --- a/drivers/usb/gadget/atmel_usba_udc.c +++ b/drivers/usb/gadget/atmel_usba_udc.c @@ -506,10 +506,28 @@ usba_udc_set_selfpowered(struct usb_gadget *gadget, int is_selfpowered) return 0; } +static int usba_udc_pullup(struct usb_gadget *gadget, int is_on) +{ + struct usba_udc *udc = to_usba_udc(gadget); + u32 ctrl; + + ctrl = usba_readl(udc, CTRL); + + if (is_on) + ctrl &= ~USBA_DETACH; + else + ctrl |= USBA_DETACH; + + usba_writel(udc, CTRL, ctrl); + + return 0; +} + static const struct usb_gadget_ops usba_udc_ops = { .get_frame = usba_udc_get_frame, .wakeup = usba_udc_wakeup, .set_selfpowered = usba_udc_set_selfpowered, + .pullup = usba_udc_pullup, }; static struct usb_endpoint_descriptor usba_ep0_desc = {
Add controller attach/detach support by using usb_gadget_ops.pullup() method. Signed-off-by: Zixun LI <zli@ogga.fr> --- drivers/usb/gadget/atmel_usba_udc.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)