diff mbox

[U-Boot,V4,06/17] usb: udc: add udc.h include file

Message ID 1379647780-2623-7-git-send-email-troy.kisky@boundarydevices.com
State Superseded
Delegated to: Marek Vasut
Headers show

Commit Message

Troy Kisky Sept. 20, 2013, 3:29 a.m. UTC
Move common definitions to udc.h
This allows musb_udc.h to be removed as well.

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>

---
v4: updated commit message
removed ifdef UDC_BULK_HS_PACKET_SIZE since 512
is the only legal value, it shouldn't be overridden.
---
 drivers/serial/usbtty.h             |  3 +-
 drivers/usb/gadget/designware_udc.c |  1 +
 drivers/usb/gadget/mpc8xx_udc.c     |  1 +
 drivers/usb/gadget/omap1510_udc.c   |  1 +
 drivers/usb/gadget/pxa27x_udc.c     |  1 +
 drivers/usb/musb/musb_udc.c         |  3 +-
 include/usb/designware_udc.h        | 31 -------------------
 include/usb/mpc8xx_udc.h            | 19 +-----------
 include/usb/musb_udc.h              | 40 ------------------------
 include/usb/omap1510_udc.h          | 27 ++--------------
 include/usb/pxa27x_udc.h            | 26 +---------------
 include/usb/udc.h                   | 61 +++++++++++++++++++++++++++++++++++++
 12 files changed, 73 insertions(+), 141 deletions(-)
 delete mode 100644 include/usb/musb_udc.h
 create mode 100644 include/usb/udc.h

Comments

Marek Vasut Sept. 20, 2013, 10:55 a.m. UTC | #1
Dear Troy Kisky,

> Move common definitions to udc.h
> This allows musb_udc.h to be removed as well.
> 
> Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
> 
> ---
> v4: updated commit message
> removed ifdef UDC_BULK_HS_PACKET_SIZE since 512
> is the only legal value, it shouldn't be overridden.

[...]

>  #endif
> diff --git a/include/usb/udc.h b/include/usb/udc.h
> new file mode 100644
> index 0000000..3bcbbbc
> --- /dev/null
> +++ b/include/usb/udc.h
> @@ -0,0 +1,61 @@
> +/*
> + * SPDX-License-Identifier:	GPL-2.0+
> + */
> +#ifndef USB_UDC_H
> +#define USB_UDC_H
> +
> +#ifndef EP0_MAX_PACKET_SIZE
> +#define EP0_MAX_PACKET_SIZE     64
> +#endif
> +
> +#ifndef EP_MAX_PACKET_SIZE
> +#define EP_MAX_PACKET_SIZE	64
> +#endif
> +
> +#ifndef UDC_OUT_PACKET_SIZE
> +#define UDC_OUT_PACKET_SIZE     EP_MAX_PACKET_SIZE
> +#endif
> +
> +#ifndef UDC_IN_PACKET_SIZE
> +#define UDC_IN_PACKET_SIZE      EP_MAX_PACKET_SIZE
> +#endif
> +
> +#ifndef UDC_INT_PACKET_SIZE
> +#define UDC_INT_PACKET_SIZE     EP_MAX_PACKET_SIZE
> +#endif
> +
> +#ifndef UDC_BULK_PACKET_SIZE
> +#define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
> +#endif

Do you expect these values to change on per-controller basis? Or why do you have 
these ifndefs here ?

> +#define UDC_BULK_HS_PACKET_SIZE	512
> +
> +#ifndef UDC_INT_ENDPOINT
> +#define UDC_INT_ENDPOINT	1
> +#endif
> +
> +#ifndef UDC_OUT_ENDPOINT
> +#define UDC_OUT_ENDPOINT	2
> +#endif
> +
> +#ifndef UDC_IN_ENDPOINT
> +#define UDC_IN_ENDPOINT		3
> +#endif

[...]

Best regards,
Marek Vasut
Troy Kisky Sept. 20, 2013, 6:46 p.m. UTC | #2
On 9/20/2013 3:55 AM, Marek Vasut wrote:
> Dear Troy Kisky,
>
>> Move common definitions to udc.h
>> This allows musb_udc.h to be removed as well.
>>
>> Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
>>
>> ---
>> v4: updated commit message
>> removed ifdef UDC_BULK_HS_PACKET_SIZE since 512
>> is the only legal value, it shouldn't be overridden.
> [...]
>
>>   #endif
>> diff --git a/include/usb/udc.h b/include/usb/udc.h
>> new file mode 100644
>> index 0000000..3bcbbbc
>> --- /dev/null
>> +++ b/include/usb/udc.h
>> @@ -0,0 +1,61 @@
>> +/*
>> + * SPDX-License-Identifier:	GPL-2.0+
>> + */
>> +#ifndef USB_UDC_H
>> +#define USB_UDC_H
>> +
>> +#ifndef EP0_MAX_PACKET_SIZE
>> +#define EP0_MAX_PACKET_SIZE     64
>> +#endif
>> +
>> +#ifndef EP_MAX_PACKET_SIZE
>> +#define EP_MAX_PACKET_SIZE	64
>> +#endif
>> +
>> +#ifndef UDC_OUT_PACKET_SIZE
>> +#define UDC_OUT_PACKET_SIZE     EP_MAX_PACKET_SIZE
>> +#endif
>> +
>> +#ifndef UDC_IN_PACKET_SIZE
>> +#define UDC_IN_PACKET_SIZE      EP_MAX_PACKET_SIZE
>> +#endif
>> +
>> +#ifndef UDC_INT_PACKET_SIZE
>> +#define UDC_INT_PACKET_SIZE     EP_MAX_PACKET_SIZE
>> +#endif
>> +
>> +#ifndef UDC_BULK_PACKET_SIZE
>> +#define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
>> +#endif
> Do you expect these values to change on per-controller basis? Or why do you have
> these ifndefs here ?

I don't know why they change but

include/usb/mpc8xx_udc.h:#define UDC_BULK_PACKET_SIZE 
EP_MIN_PACKET_SIZE    /* 8 */
include/usb/omap1510_udc.h:#define UDC_BULK_PACKET_SIZE 16

include/usb/mpc8xx_udc.h:#define UDC_INT_PACKET_SIZE 
UDC_IN_PACKET_SIZE   /* 8 */
include/usb/omap1510_udc.h:#define UDC_INT_PACKET_SIZE  16

include/usb/mpc8xx_udc.h:#define UDC_OUT_PACKET_SIZE 
EP_MIN_PACKET_SIZE    /* */

>> +#define UDC_BULK_HS_PACKET_SIZE	512
>> +
>> +#ifndef UDC_INT_ENDPOINT
>> +#define UDC_INT_ENDPOINT	1
>> +#endif
>> +
>> +#ifndef UDC_OUT_ENDPOINT
>> +#define UDC_OUT_ENDPOINT	2
>> +#endif
>> +
>> +#ifndef UDC_IN_ENDPOINT
>> +#define UDC_IN_ENDPOINT		3
>> +#endif
> [...]
>
> Best regards,
> Marek Vasut
>
Marek Vasut Sept. 20, 2013, 6:52 p.m. UTC | #3
Dear Troy Kisky,

> On 9/20/2013 3:55 AM, Marek Vasut wrote:
> > Dear Troy Kisky,
> > 
> >> Move common definitions to udc.h
> >> This allows musb_udc.h to be removed as well.
> >> 
> >> Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
> >> 
> >> ---
> >> v4: updated commit message
> >> removed ifdef UDC_BULK_HS_PACKET_SIZE since 512
> >> is the only legal value, it shouldn't be overridden.
> > 
> > [...]
> > 
> >>   #endif
> >> 
> >> diff --git a/include/usb/udc.h b/include/usb/udc.h
> >> new file mode 100644
> >> index 0000000..3bcbbbc
> >> --- /dev/null
> >> +++ b/include/usb/udc.h
> >> @@ -0,0 +1,61 @@
> >> +/*
> >> + * SPDX-License-Identifier:	GPL-2.0+
> >> + */
> >> +#ifndef USB_UDC_H
> >> +#define USB_UDC_H
> >> +
> >> +#ifndef EP0_MAX_PACKET_SIZE
> >> +#define EP0_MAX_PACKET_SIZE     64
> >> +#endif
> >> +
> >> +#ifndef EP_MAX_PACKET_SIZE
> >> +#define EP_MAX_PACKET_SIZE	64
> >> +#endif
> >> +
> >> +#ifndef UDC_OUT_PACKET_SIZE
> >> +#define UDC_OUT_PACKET_SIZE     EP_MAX_PACKET_SIZE
> >> +#endif
> >> +
> >> +#ifndef UDC_IN_PACKET_SIZE
> >> +#define UDC_IN_PACKET_SIZE      EP_MAX_PACKET_SIZE
> >> +#endif
> >> +
> >> +#ifndef UDC_INT_PACKET_SIZE
> >> +#define UDC_INT_PACKET_SIZE     EP_MAX_PACKET_SIZE
> >> +#endif
> >> +
> >> +#ifndef UDC_BULK_PACKET_SIZE
> >> +#define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
> >> +#endif
> > 
> > Do you expect these values to change on per-controller basis? Or why do
> > you have these ifndefs here ?
> 
> I don't know why they change but
> 
> include/usb/mpc8xx_udc.h:#define UDC_BULK_PACKET_SIZE
> EP_MIN_PACKET_SIZE    /* 8 */
> include/usb/omap1510_udc.h:#define UDC_BULK_PACKET_SIZE 16
> 
> include/usb/mpc8xx_udc.h:#define UDC_INT_PACKET_SIZE
> UDC_IN_PACKET_SIZE   /* 8 */
> include/usb/omap1510_udc.h:#define UDC_INT_PACKET_SIZE  16
> 
> include/usb/mpc8xx_udc.h:#define UDC_OUT_PACKET_SIZE
> EP_MIN_PACKET_SIZE    /* */

Are you sure this is not OHCI ?

Best regards,
Marek Vasut
Troy Kisky Sept. 20, 2013, 7:37 p.m. UTC | #4
On 9/20/2013 11:52 AM, Marek Vasut wrote:
> Dear Troy Kisky,
>
>> On 9/20/2013 3:55 AM, Marek Vasut wrote:
>>> Dear Troy Kisky,
>>>
>>>> Move common definitions to udc.h
>>>> This allows musb_udc.h to be removed as well.
>>>>
>>>> Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
>>>>
>>>> ---
>>>> v4: updated commit message
>>>> removed ifdef UDC_BULK_HS_PACKET_SIZE since 512
>>>> is the only legal value, it shouldn't be overridden.
>>> [...]
>>>
>>>>    #endif
>>>>
>>>> diff --git a/include/usb/udc.h b/include/usb/udc.h
>>>> new file mode 100644
>>>> index 0000000..3bcbbbc
>>>> --- /dev/null
>>>> +++ b/include/usb/udc.h
>>>> @@ -0,0 +1,61 @@
>>>> +/*
>>>> + * SPDX-License-Identifier:	GPL-2.0+
>>>> + */
>>>> +#ifndef USB_UDC_H
>>>> +#define USB_UDC_H
>>>> +
>>>> +#ifndef EP0_MAX_PACKET_SIZE
>>>> +#define EP0_MAX_PACKET_SIZE     64
>>>> +#endif
>>>> +
>>>> +#ifndef EP_MAX_PACKET_SIZE
>>>> +#define EP_MAX_PACKET_SIZE	64
>>>> +#endif
>>>> +
>>>> +#ifndef UDC_OUT_PACKET_SIZE
>>>> +#define UDC_OUT_PACKET_SIZE     EP_MAX_PACKET_SIZE
>>>> +#endif
>>>> +
>>>> +#ifndef UDC_IN_PACKET_SIZE
>>>> +#define UDC_IN_PACKET_SIZE      EP_MAX_PACKET_SIZE
>>>> +#endif
>>>> +
>>>> +#ifndef UDC_INT_PACKET_SIZE
>>>> +#define UDC_INT_PACKET_SIZE     EP_MAX_PACKET_SIZE
>>>> +#endif
>>>> +
>>>> +#ifndef UDC_BULK_PACKET_SIZE
>>>> +#define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
>>>> +#endif
>>> Do you expect these values to change on per-controller basis? Or why do
>>> you have these ifndefs here ?
>> I don't know why they change but
>>
>> include/usb/mpc8xx_udc.h:#define UDC_BULK_PACKET_SIZE
>> EP_MIN_PACKET_SIZE    /* 8 */
>> include/usb/omap1510_udc.h:#define UDC_BULK_PACKET_SIZE 16
>>
>> include/usb/mpc8xx_udc.h:#define UDC_INT_PACKET_SIZE
>> UDC_IN_PACKET_SIZE   /* 8 */
>> include/usb/omap1510_udc.h:#define UDC_INT_PACKET_SIZE  16
>>
>> include/usb/mpc8xx_udc.h:#define UDC_OUT_PACKET_SIZE
>> EP_MIN_PACKET_SIZE    /* */
> Are you sure this is not OHCI ?
>
> Best regards,
> Marek Vasut
>

I don't know.
I don't understand the relevance of the question. Can you explain the 
issue a little more
for me.

Thanks
Troy
Marek Vasut Sept. 20, 2013, 7:53 p.m. UTC | #5
Dear Troy Kisky,

> On 9/20/2013 11:52 AM, Marek Vasut wrote:
> > Dear Troy Kisky,
> > 
> >> On 9/20/2013 3:55 AM, Marek Vasut wrote:
> >>> Dear Troy Kisky,
> >>> 
> >>>> Move common definitions to udc.h
> >>>> This allows musb_udc.h to be removed as well.
> >>>> 
> >>>> Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
> >>>> 
> >>>> ---
> >>>> v4: updated commit message
> >>>> removed ifdef UDC_BULK_HS_PACKET_SIZE since 512
> >>>> is the only legal value, it shouldn't be overridden.
> >>> 
> >>> [...]
> >>> 
> >>>>    #endif
> >>>> 
> >>>> diff --git a/include/usb/udc.h b/include/usb/udc.h
> >>>> new file mode 100644
> >>>> index 0000000..3bcbbbc
> >>>> --- /dev/null
> >>>> +++ b/include/usb/udc.h
> >>>> @@ -0,0 +1,61 @@
> >>>> +/*
> >>>> + * SPDX-License-Identifier:	GPL-2.0+
> >>>> + */
> >>>> +#ifndef USB_UDC_H
> >>>> +#define USB_UDC_H
> >>>> +
> >>>> +#ifndef EP0_MAX_PACKET_SIZE
> >>>> +#define EP0_MAX_PACKET_SIZE     64
> >>>> +#endif
> >>>> +
> >>>> +#ifndef EP_MAX_PACKET_SIZE
> >>>> +#define EP_MAX_PACKET_SIZE	64
> >>>> +#endif
> >>>> +
> >>>> +#ifndef UDC_OUT_PACKET_SIZE
> >>>> +#define UDC_OUT_PACKET_SIZE     EP_MAX_PACKET_SIZE
> >>>> +#endif
> >>>> +
> >>>> +#ifndef UDC_IN_PACKET_SIZE
> >>>> +#define UDC_IN_PACKET_SIZE      EP_MAX_PACKET_SIZE
> >>>> +#endif
> >>>> +
> >>>> +#ifndef UDC_INT_PACKET_SIZE
> >>>> +#define UDC_INT_PACKET_SIZE     EP_MAX_PACKET_SIZE
> >>>> +#endif
> >>>> +
> >>>> +#ifndef UDC_BULK_PACKET_SIZE
> >>>> +#define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
> >>>> +#endif
> >>> 
> >>> Do you expect these values to change on per-controller basis? Or why do
> >>> you have these ifndefs here ?
> >> 
> >> I don't know why they change but
> >> 
> >> include/usb/mpc8xx_udc.h:#define UDC_BULK_PACKET_SIZE
> >> EP_MIN_PACKET_SIZE    /* 8 */
> >> include/usb/omap1510_udc.h:#define UDC_BULK_PACKET_SIZE 16
> >> 
> >> include/usb/mpc8xx_udc.h:#define UDC_INT_PACKET_SIZE
> >> UDC_IN_PACKET_SIZE   /* 8 */
> >> include/usb/omap1510_udc.h:#define UDC_INT_PACKET_SIZE  16
> >> 
> >> include/usb/mpc8xx_udc.h:#define UDC_OUT_PACKET_SIZE
> >> EP_MIN_PACKET_SIZE    /* */
> > 
> > Are you sure this is not OHCI ?
> > 
> > Best regards,
> > Marek Vasut
> 
> I don't know.
> I don't understand the relevance of the question. Can you explain the
> issue a little more
> for me.

OMAP1510 has only OHCI controller in it, dunno about MPC8xx, but that seems to 
be the case as well. Therefore, in OHCI case, the max packet is 16 and in ehci 
it's 64 . Check the specs ;-)

Best regards,
Marek Vasut
Troy Kisky Sept. 20, 2013, 9:15 p.m. UTC | #6
On 9/20/2013 12:53 PM, Marek Vasut wrote:
> Dear Troy Kisky,
>
>> On 9/20/2013 11:52 AM, Marek Vasut wrote:
>>> Dear Troy Kisky,
>>>
>>>> On 9/20/2013 3:55 AM, Marek Vasut wrote:
>>>>> Dear Troy Kisky,
>>>>>
>>>>>> Move common definitions to udc.h
>>>>>> This allows musb_udc.h to be removed as well.
>>>>>>
>>>>>> Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
>>>>>>
>>>>>> ---
>>>>>> v4: updated commit message
>>>>>> removed ifdef UDC_BULK_HS_PACKET_SIZE since 512
>>>>>> is the only legal value, it shouldn't be overridden.
>>>>> [...]
>>>>>
>>>>>>     #endif
>>>>>>
>>>>>> diff --git a/include/usb/udc.h b/include/usb/udc.h
>>>>>> new file mode 100644
>>>>>> index 0000000..3bcbbbc
>>>>>> --- /dev/null
>>>>>> +++ b/include/usb/udc.h
>>>>>> @@ -0,0 +1,61 @@
>>>>>> +/*
>>>>>> + * SPDX-License-Identifier:	GPL-2.0+
>>>>>> + */
>>>>>> +#ifndef USB_UDC_H
>>>>>> +#define USB_UDC_H
>>>>>> +
>>>>>> +#ifndef EP0_MAX_PACKET_SIZE
>>>>>> +#define EP0_MAX_PACKET_SIZE     64
>>>>>> +#endif
>>>>>> +
>>>>>> +#ifndef EP_MAX_PACKET_SIZE
>>>>>> +#define EP_MAX_PACKET_SIZE	64
>>>>>> +#endif
>>>>>> +
>>>>>> +#ifndef UDC_OUT_PACKET_SIZE
>>>>>> +#define UDC_OUT_PACKET_SIZE     EP_MAX_PACKET_SIZE
>>>>>> +#endif
>>>>>> +
>>>>>> +#ifndef UDC_IN_PACKET_SIZE
>>>>>> +#define UDC_IN_PACKET_SIZE      EP_MAX_PACKET_SIZE
>>>>>> +#endif
>>>>>> +
>>>>>> +#ifndef UDC_INT_PACKET_SIZE
>>>>>> +#define UDC_INT_PACKET_SIZE     EP_MAX_PACKET_SIZE
>>>>>> +#endif
>>>>>> +
>>>>>> +#ifndef UDC_BULK_PACKET_SIZE
>>>>>> +#define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
>>>>>> +#endif
>>>>> Do you expect these values to change on per-controller basis? Or why do
>>>>> you have these ifndefs here ?
>>>> I don't know why they change but
>>>>
>>>> include/usb/mpc8xx_udc.h:#define UDC_BULK_PACKET_SIZE
>>>> EP_MIN_PACKET_SIZE    /* 8 */
>>>> include/usb/omap1510_udc.h:#define UDC_BULK_PACKET_SIZE 16
>>>>
>>>> include/usb/mpc8xx_udc.h:#define UDC_INT_PACKET_SIZE
>>>> UDC_IN_PACKET_SIZE   /* 8 */
>>>> include/usb/omap1510_udc.h:#define UDC_INT_PACKET_SIZE  16
>>>>
>>>> include/usb/mpc8xx_udc.h:#define UDC_OUT_PACKET_SIZE
>>>> EP_MIN_PACKET_SIZE    /* */
>>> Are you sure this is not OHCI ?
>>>
>>> Best regards,
>>> Marek Vasut
>> I don't know.
>> I don't understand the relevance of the question. Can you explain the
>> issue a little more
>> for me.
> OMAP1510 has only OHCI controller in it, dunno about MPC8xx, but that seems to
> be the case as well. Therefore, in OHCI case, the max packet is 16 and in ehci
> it's 64 . Check the specs ;-)
>
> Best regards,
> Marek Vasut
>
Ok, I checked the spec for the OMAP1510, and found "Table 14–23. 
Endpoint n Size Values"
lists maximum packet sizes of 8, 16, 32, or 64 bytes for Non-isochronous
endpoints, and 8, 16, 32, 64, 128, 256, 512 for Isochronous endpoints

So, I still don't understand the limit of 16, but that isn't required.


So, are you saying I should edit omap1510_udc.h and add

#define EP_MAX_PACKET_SIZE 16


and remove
#ifndef UDC_BULK_PACKET_SIZE

in udc.h and do

#define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE

unconditionally?


Thanks
Troy
Marek Vasut Sept. 20, 2013, 9:20 p.m. UTC | #7
Dear Troy Kisky,

> On 9/20/2013 12:53 PM, Marek Vasut wrote:
> > Dear Troy Kisky,
> > 
> >> On 9/20/2013 11:52 AM, Marek Vasut wrote:
> >>> Dear Troy Kisky,
> >>> 
> >>>> On 9/20/2013 3:55 AM, Marek Vasut wrote:
> >>>>> Dear Troy Kisky,
> >>>>> 
> >>>>>> Move common definitions to udc.h
> >>>>>> This allows musb_udc.h to be removed as well.
> >>>>>> 
> >>>>>> Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
> >>>>>> 
> >>>>>> ---
> >>>>>> v4: updated commit message
> >>>>>> removed ifdef UDC_BULK_HS_PACKET_SIZE since 512
> >>>>>> is the only legal value, it shouldn't be overridden.
> >>>>> 
> >>>>> [...]
> >>>>> 
> >>>>>>     #endif
> >>>>>> 
> >>>>>> diff --git a/include/usb/udc.h b/include/usb/udc.h
> >>>>>> new file mode 100644
> >>>>>> index 0000000..3bcbbbc
> >>>>>> --- /dev/null
> >>>>>> +++ b/include/usb/udc.h
> >>>>>> @@ -0,0 +1,61 @@
> >>>>>> +/*
> >>>>>> + * SPDX-License-Identifier:	GPL-2.0+
> >>>>>> + */
> >>>>>> +#ifndef USB_UDC_H
> >>>>>> +#define USB_UDC_H
> >>>>>> +
> >>>>>> +#ifndef EP0_MAX_PACKET_SIZE
> >>>>>> +#define EP0_MAX_PACKET_SIZE     64
> >>>>>> +#endif
> >>>>>> +
> >>>>>> +#ifndef EP_MAX_PACKET_SIZE
> >>>>>> +#define EP_MAX_PACKET_SIZE	64
> >>>>>> +#endif
> >>>>>> +
> >>>>>> +#ifndef UDC_OUT_PACKET_SIZE
> >>>>>> +#define UDC_OUT_PACKET_SIZE     EP_MAX_PACKET_SIZE
> >>>>>> +#endif
> >>>>>> +
> >>>>>> +#ifndef UDC_IN_PACKET_SIZE
> >>>>>> +#define UDC_IN_PACKET_SIZE      EP_MAX_PACKET_SIZE
> >>>>>> +#endif
> >>>>>> +
> >>>>>> +#ifndef UDC_INT_PACKET_SIZE
> >>>>>> +#define UDC_INT_PACKET_SIZE     EP_MAX_PACKET_SIZE
> >>>>>> +#endif
> >>>>>> +
> >>>>>> +#ifndef UDC_BULK_PACKET_SIZE
> >>>>>> +#define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
> >>>>>> +#endif
> >>>>> 
> >>>>> Do you expect these values to change on per-controller basis? Or why
> >>>>> do you have these ifndefs here ?
> >>>> 
> >>>> I don't know why they change but
> >>>> 
> >>>> include/usb/mpc8xx_udc.h:#define UDC_BULK_PACKET_SIZE
> >>>> EP_MIN_PACKET_SIZE    /* 8 */
> >>>> include/usb/omap1510_udc.h:#define UDC_BULK_PACKET_SIZE 16
> >>>> 
> >>>> include/usb/mpc8xx_udc.h:#define UDC_INT_PACKET_SIZE
> >>>> UDC_IN_PACKET_SIZE   /* 8 */
> >>>> include/usb/omap1510_udc.h:#define UDC_INT_PACKET_SIZE  16
> >>>> 
> >>>> include/usb/mpc8xx_udc.h:#define UDC_OUT_PACKET_SIZE
> >>>> EP_MIN_PACKET_SIZE    /* */
> >>> 
> >>> Are you sure this is not OHCI ?
> >>> 
> >>> Best regards,
> >>> Marek Vasut
> >> 
> >> I don't know.
> >> I don't understand the relevance of the question. Can you explain the
> >> issue a little more
> >> for me.
> > 
> > OMAP1510 has only OHCI controller in it, dunno about MPC8xx, but that
> > seems to be the case as well. Therefore, in OHCI case, the max packet is
> > 16 and in ehci it's 64 . Check the specs ;-)
> > 
> > Best regards,
> > Marek Vasut
> 
> Ok, I checked the spec for the OMAP1510, and found "Table 14–23.
> Endpoint n Size Values"
> lists maximum packet sizes of 8, 16, 32, or 64 bytes for Non-isochronous
> endpoints, and 8, 16, 32, 64, 128, 256, 512 for Isochronous endpoints
> 
> So, I still don't understand the limit of 16, but that isn't required.
> 
> 
> So, are you saying I should edit omap1510_udc.h and add
> 
> #define EP_MAX_PACKET_SIZE 16
> 
> 
> and remove
> #ifndef UDC_BULK_PACKET_SIZE
> 
> in udc.h and do
> 
> #define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
> 
> unconditionally?

I'd say you should check if the controller is OHCI or EHCI , check what kind of 
endpoint it is and based on that , configure the max packet size. Or is this 
really controller specific ? What do the OHCI and EHCI specs say ?

Best regards,
Marek Vasut
Troy Kisky Sept. 20, 2013, 9:33 p.m. UTC | #8
On 9/20/2013 2:20 PM, Marek Vasut wrote:
> Dear Troy Kisky,
>
>> On 9/20/2013 12:53 PM, Marek Vasut wrote:
>>> Dear Troy Kisky,
>>>
>>>> On 9/20/2013 11:52 AM, Marek Vasut wrote:
>>>>> Dear Troy Kisky,
>>>>>
>>>>>> On 9/20/2013 3:55 AM, Marek Vasut wrote:
>>>>>>> Dear Troy Kisky,
>>>>>>>
>>>>>>>> Move common definitions to udc.h
>>>>>>>> This allows musb_udc.h to be removed as well.
>>>>>>>>
>>>>>>>> Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
>>>>>>>>
>>>>>>>> ---
>>>>>>>> v4: updated commit message
>>>>>>>> removed ifdef UDC_BULK_HS_PACKET_SIZE since 512
>>>>>>>> is the only legal value, it shouldn't be overridden.
>>>>>>> [...]
>>>>>>>
>>>>>>>>      #endif
>>>>>>>>
>>>>>>>> diff --git a/include/usb/udc.h b/include/usb/udc.h
>>>>>>>> new file mode 100644
>>>>>>>> index 0000000..3bcbbbc
>>>>>>>> --- /dev/null
>>>>>>>> +++ b/include/usb/udc.h
>>>>>>>> @@ -0,0 +1,61 @@
>>>>>>>> +/*
>>>>>>>> + * SPDX-License-Identifier:	GPL-2.0+
>>>>>>>> + */
>>>>>>>> +#ifndef USB_UDC_H
>>>>>>>> +#define USB_UDC_H
>>>>>>>> +
>>>>>>>> +#ifndef EP0_MAX_PACKET_SIZE
>>>>>>>> +#define EP0_MAX_PACKET_SIZE     64
>>>>>>>> +#endif
>>>>>>>> +
>>>>>>>> +#ifndef EP_MAX_PACKET_SIZE
>>>>>>>> +#define EP_MAX_PACKET_SIZE	64
>>>>>>>> +#endif
>>>>>>>> +
>>>>>>>> +#ifndef UDC_OUT_PACKET_SIZE
>>>>>>>> +#define UDC_OUT_PACKET_SIZE     EP_MAX_PACKET_SIZE
>>>>>>>> +#endif
>>>>>>>> +
>>>>>>>> +#ifndef UDC_IN_PACKET_SIZE
>>>>>>>> +#define UDC_IN_PACKET_SIZE      EP_MAX_PACKET_SIZE
>>>>>>>> +#endif
>>>>>>>> +
>>>>>>>> +#ifndef UDC_INT_PACKET_SIZE
>>>>>>>> +#define UDC_INT_PACKET_SIZE     EP_MAX_PACKET_SIZE
>>>>>>>> +#endif
>>>>>>>> +
>>>>>>>> +#ifndef UDC_BULK_PACKET_SIZE
>>>>>>>> +#define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
>>>>>>>> +#endif
>>>>>>> Do you expect these values to change on per-controller basis? Or why
>>>>>>> do you have these ifndefs here ?
>>>>>> I don't know why they change but
>>>>>>
>>>>>> include/usb/mpc8xx_udc.h:#define UDC_BULK_PACKET_SIZE
>>>>>> EP_MIN_PACKET_SIZE    /* 8 */
>>>>>> include/usb/omap1510_udc.h:#define UDC_BULK_PACKET_SIZE 16
>>>>>>
>>>>>> include/usb/mpc8xx_udc.h:#define UDC_INT_PACKET_SIZE
>>>>>> UDC_IN_PACKET_SIZE   /* 8 */
>>>>>> include/usb/omap1510_udc.h:#define UDC_INT_PACKET_SIZE  16
>>>>>>
>>>>>> include/usb/mpc8xx_udc.h:#define UDC_OUT_PACKET_SIZE
>>>>>> EP_MIN_PACKET_SIZE    /* */
>>>>> Are you sure this is not OHCI ?
>>>>>
>>>>> Best regards,
>>>>> Marek Vasut
>>>> I don't know.
>>>> I don't understand the relevance of the question. Can you explain the
>>>> issue a little more
>>>> for me.
>>> OMAP1510 has only OHCI controller in it, dunno about MPC8xx, but that
>>> seems to be the case as well. Therefore, in OHCI case, the max packet is
>>> 16 and in ehci it's 64 . Check the specs ;-)
>>>
>>> Best regards,
>>> Marek Vasut
>> Ok, I checked the spec for the OMAP1510, and found "Table 14–23.
>> Endpoint n Size Values"
>> lists maximum packet sizes of 8, 16, 32, or 64 bytes for Non-isochronous
>> endpoints, and 8, 16, 32, 64, 128, 256, 512 for Isochronous endpoints
>>
>> So, I still don't understand the limit of 16, but that isn't required.
>>
>>
>> So, are you saying I should edit omap1510_udc.h and add
>>
>> #define EP_MAX_PACKET_SIZE 16
>>
>>
>> and remove
>> #ifndef UDC_BULK_PACKET_SIZE
>>
>> in udc.h and do
>>
>> #define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
>>
>> unconditionally?
> I'd say you should check if the controller is OHCI or EHCI , check what kind of
> endpoint it is and based on that , configure the max packet size. Or is this
> really controller specific ? What do the OHCI and EHCI specs say ?
>
> Best regards,
> Marek Vasut
>

The omap1510 does have an OHCI host controller, I don't know how that 
relates to the device
controller so I think a check would just be confusing.

Troy
Marek Vasut Sept. 20, 2013, 10:01 p.m. UTC | #9
Dear Troy Kisky,

> On 9/20/2013 2:20 PM, Marek Vasut wrote:
> > Dear Troy Kisky,
> > 
> >> On 9/20/2013 12:53 PM, Marek Vasut wrote:
> >>> Dear Troy Kisky,
> >>> 
> >>>> On 9/20/2013 11:52 AM, Marek Vasut wrote:
> >>>>> Dear Troy Kisky,
> >>>>> 
> >>>>>> On 9/20/2013 3:55 AM, Marek Vasut wrote:
> >>>>>>> Dear Troy Kisky,
> >>>>>>> 
> >>>>>>>> Move common definitions to udc.h
> >>>>>>>> This allows musb_udc.h to be removed as well.
> >>>>>>>> 
> >>>>>>>> Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
> >>>>>>>> 
> >>>>>>>> ---
> >>>>>>>> v4: updated commit message
> >>>>>>>> removed ifdef UDC_BULK_HS_PACKET_SIZE since 512
> >>>>>>>> is the only legal value, it shouldn't be overridden.
> >>>>>>> 
> >>>>>>> [...]
> >>>>>>> 
> >>>>>>>>      #endif
> >>>>>>>> 
> >>>>>>>> diff --git a/include/usb/udc.h b/include/usb/udc.h
> >>>>>>>> new file mode 100644
> >>>>>>>> index 0000000..3bcbbbc
> >>>>>>>> --- /dev/null
> >>>>>>>> +++ b/include/usb/udc.h
> >>>>>>>> @@ -0,0 +1,61 @@
> >>>>>>>> +/*
> >>>>>>>> + * SPDX-License-Identifier:	GPL-2.0+
> >>>>>>>> + */
> >>>>>>>> +#ifndef USB_UDC_H
> >>>>>>>> +#define USB_UDC_H
> >>>>>>>> +
> >>>>>>>> +#ifndef EP0_MAX_PACKET_SIZE
> >>>>>>>> +#define EP0_MAX_PACKET_SIZE     64
> >>>>>>>> +#endif
> >>>>>>>> +
> >>>>>>>> +#ifndef EP_MAX_PACKET_SIZE
> >>>>>>>> +#define EP_MAX_PACKET_SIZE	64
> >>>>>>>> +#endif
> >>>>>>>> +
> >>>>>>>> +#ifndef UDC_OUT_PACKET_SIZE
> >>>>>>>> +#define UDC_OUT_PACKET_SIZE     EP_MAX_PACKET_SIZE
> >>>>>>>> +#endif
> >>>>>>>> +
> >>>>>>>> +#ifndef UDC_IN_PACKET_SIZE
> >>>>>>>> +#define UDC_IN_PACKET_SIZE      EP_MAX_PACKET_SIZE
> >>>>>>>> +#endif
> >>>>>>>> +
> >>>>>>>> +#ifndef UDC_INT_PACKET_SIZE
> >>>>>>>> +#define UDC_INT_PACKET_SIZE     EP_MAX_PACKET_SIZE
> >>>>>>>> +#endif
> >>>>>>>> +
> >>>>>>>> +#ifndef UDC_BULK_PACKET_SIZE
> >>>>>>>> +#define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
> >>>>>>>> +#endif
> >>>>>>> 
> >>>>>>> Do you expect these values to change on per-controller basis? Or
> >>>>>>> why do you have these ifndefs here ?
> >>>>>> 
> >>>>>> I don't know why they change but
> >>>>>> 
> >>>>>> include/usb/mpc8xx_udc.h:#define UDC_BULK_PACKET_SIZE
> >>>>>> EP_MIN_PACKET_SIZE    /* 8 */
> >>>>>> include/usb/omap1510_udc.h:#define UDC_BULK_PACKET_SIZE 16
> >>>>>> 
> >>>>>> include/usb/mpc8xx_udc.h:#define UDC_INT_PACKET_SIZE
> >>>>>> UDC_IN_PACKET_SIZE   /* 8 */
> >>>>>> include/usb/omap1510_udc.h:#define UDC_INT_PACKET_SIZE  16
> >>>>>> 
> >>>>>> include/usb/mpc8xx_udc.h:#define UDC_OUT_PACKET_SIZE
> >>>>>> EP_MIN_PACKET_SIZE    /* */
> >>>>> 
> >>>>> Are you sure this is not OHCI ?
> >>>>> 
> >>>>> Best regards,
> >>>>> Marek Vasut
> >>>> 
> >>>> I don't know.
> >>>> I don't understand the relevance of the question. Can you explain the
> >>>> issue a little more
> >>>> for me.
> >>> 
> >>> OMAP1510 has only OHCI controller in it, dunno about MPC8xx, but that
> >>> seems to be the case as well. Therefore, in OHCI case, the max packet
> >>> is 16 and in ehci it's 64 . Check the specs ;-)
> >>> 
> >>> Best regards,
> >>> Marek Vasut
> >> 
> >> Ok, I checked the spec for the OMAP1510, and found "Table 14–23.
> >> Endpoint n Size Values"
> >> lists maximum packet sizes of 8, 16, 32, or 64 bytes for Non-isochronous
> >> endpoints, and 8, 16, 32, 64, 128, 256, 512 for Isochronous endpoints
> >> 
> >> So, I still don't understand the limit of 16, but that isn't required.
> >> 
> >> 
> >> So, are you saying I should edit omap1510_udc.h and add
> >> 
> >> #define EP_MAX_PACKET_SIZE 16
> >> 
> >> 
> >> and remove
> >> #ifndef UDC_BULK_PACKET_SIZE
> >> 
> >> in udc.h and do
> >> 
> >> #define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
> >> 
> >> unconditionally?
> > 
> > I'd say you should check if the controller is OHCI or EHCI , check what
> > kind of endpoint it is and based on that , configure the max packet
> > size. Or is this really controller specific ? What do the OHCI and EHCI
> > specs say ?
> > 
> > Best regards,
> > Marek Vasut
> 
> The omap1510 does have an OHCI host controller, I don't know how that
> relates to the device
> controller so I think a check would just be confusing.

I see the difference now. For EHCI UDC, the max packet sizes are as they are. 
For OMAP/MPC8xx, these are non-standard arbitrary values, it's just that the 
name is the same.

This is pretty ugly and confusing, ick. I'd say you #ifdef this stuff like this:
#ifdef OMAP1510 ... 
#elif MPC8xx
#elif ....
#endif

And put a comment around it that the old UDCs simply follow no standard.

Best regards,
Troy Kisky Sept. 21, 2013, 12:25 a.m. UTC | #10
On 9/20/2013 3:01 PM, Marek Vasut wrote:
> Dear Troy Kisky,
>
>> On 9/20/2013 2:20 PM, Marek Vasut wrote:
>>> Dear Troy Kisky,
>>>
>>>> On 9/20/2013 12:53 PM, Marek Vasut wrote:
>>>>> Dear Troy Kisky,
>>>>>
>>>>>> On 9/20/2013 11:52 AM, Marek Vasut wrote:
>>>>>>> Dear Troy Kisky,
>>>>>>>
>>>>>>>> On 9/20/2013 3:55 AM, Marek Vasut wrote:
>>>>>>>>> Dear Troy Kisky,
>>>>>>>>>
>>>>>>>>>> Move common definitions to udc.h
>>>>>>>>>> This allows musb_udc.h to be removed as well.
>>>>>>>>>>
>>>>>>>>>> Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
>>>>>>>>>>
>>>>>>>>>> ---
>>>>>>>>>> v4: updated commit message
>>>>>>>>>> removed ifdef UDC_BULK_HS_PACKET_SIZE since 512
>>>>>>>>>> is the only legal value, it shouldn't be overridden.
>>>>>>>>> [...]
>>>>>>>>>
>>>>>>>>>>       #endif
>>>>>>>>>>
>>>>>>>>>> diff --git a/include/usb/udc.h b/include/usb/udc.h
>>>>>>>>>> new file mode 100644
>>>>>>>>>> index 0000000..3bcbbbc
>>>>>>>>>> --- /dev/null
>>>>>>>>>> +++ b/include/usb/udc.h
>>>>>>>>>> @@ -0,0 +1,61 @@
>>>>>>>>>> +/*
>>>>>>>>>> + * SPDX-License-Identifier:	GPL-2.0+
>>>>>>>>>> + */
>>>>>>>>>> +#ifndef USB_UDC_H
>>>>>>>>>> +#define USB_UDC_H
>>>>>>>>>> +
>>>>>>>>>> +#ifndef EP0_MAX_PACKET_SIZE
>>>>>>>>>> +#define EP0_MAX_PACKET_SIZE     64
>>>>>>>>>> +#endif
>>>>>>>>>> +
>>>>>>>>>> +#ifndef EP_MAX_PACKET_SIZE
>>>>>>>>>> +#define EP_MAX_PACKET_SIZE	64
>>>>>>>>>> +#endif
>>>>>>>>>> +
>>>>>>>>>> +#ifndef UDC_OUT_PACKET_SIZE
>>>>>>>>>> +#define UDC_OUT_PACKET_SIZE     EP_MAX_PACKET_SIZE
>>>>>>>>>> +#endif
>>>>>>>>>> +
>>>>>>>>>> +#ifndef UDC_IN_PACKET_SIZE
>>>>>>>>>> +#define UDC_IN_PACKET_SIZE      EP_MAX_PACKET_SIZE
>>>>>>>>>> +#endif
>>>>>>>>>> +
>>>>>>>>>> +#ifndef UDC_INT_PACKET_SIZE
>>>>>>>>>> +#define UDC_INT_PACKET_SIZE     EP_MAX_PACKET_SIZE
>>>>>>>>>> +#endif
>>>>>>>>>> +
>>>>>>>>>> +#ifndef UDC_BULK_PACKET_SIZE
>>>>>>>>>> +#define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
>>>>>>>>>> +#endif
>>>>>>>>> Do you expect these values to change on per-controller basis? Or
>>>>>>>>> why do you have these ifndefs here ?
>>>>>>>> I don't know why they change but
>>>>>>>>
>>>>>>>> include/usb/mpc8xx_udc.h:#define UDC_BULK_PACKET_SIZE
>>>>>>>> EP_MIN_PACKET_SIZE    /* 8 */
>>>>>>>> include/usb/omap1510_udc.h:#define UDC_BULK_PACKET_SIZE 16
>>>>>>>>
>>>>>>>> include/usb/mpc8xx_udc.h:#define UDC_INT_PACKET_SIZE
>>>>>>>> UDC_IN_PACKET_SIZE   /* 8 */
>>>>>>>> include/usb/omap1510_udc.h:#define UDC_INT_PACKET_SIZE  16
>>>>>>>>
>>>>>>>> include/usb/mpc8xx_udc.h:#define UDC_OUT_PACKET_SIZE
>>>>>>>> EP_MIN_PACKET_SIZE    /* */
>>>>>>> Are you sure this is not OHCI ?
>>>>>>>
>>>>>>> Best regards,
>>>>>>> Marek Vasut
>>>>>> I don't know.
>>>>>> I don't understand the relevance of the question. Can you explain the
>>>>>> issue a little more
>>>>>> for me.
>>>>> OMAP1510 has only OHCI controller in it, dunno about MPC8xx, but that
>>>>> seems to be the case as well. Therefore, in OHCI case, the max packet
>>>>> is 16 and in ehci it's 64 . Check the specs ;-)
>>>>>
>>>>> Best regards,
>>>>> Marek Vasut
>>>> Ok, I checked the spec for the OMAP1510, and found "Table 14–23.
>>>> Endpoint n Size Values"
>>>> lists maximum packet sizes of 8, 16, 32, or 64 bytes for Non-isochronous
>>>> endpoints, and 8, 16, 32, 64, 128, 256, 512 for Isochronous endpoints
>>>>
>>>> So, I still don't understand the limit of 16, but that isn't required.
>>>>
>>>>
>>>> So, are you saying I should edit omap1510_udc.h and add
>>>>
>>>> #define EP_MAX_PACKET_SIZE 16
>>>>
>>>>
>>>> and remove
>>>> #ifndef UDC_BULK_PACKET_SIZE
>>>>
>>>> in udc.h and do
>>>>
>>>> #define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
>>>>
>>>> unconditionally?
>>> I'd say you should check if the controller is OHCI or EHCI , check what
>>> kind of endpoint it is and based on that , configure the max packet
>>> size. Or is this really controller specific ? What do the OHCI and EHCI
>>> specs say ?
>>>
>>> Best regards,
>>> Marek Vasut
>> The omap1510 does have an OHCI host controller, I don't know how that
>> relates to the device
>> controller so I think a check would just be confusing.
> I see the difference now. For EHCI UDC, the max packet sizes are as they are.
> For OMAP/MPC8xx, these are non-standard arbitrary values, it's just that the
> name is the same.
>
> This is pretty ugly and confusing, ick. I'd say you #ifdef this stuff like this:
> #ifdef OMAP1510 ...
> #elif MPC8xx
> #elif ....
> #endif
>
> And put a comment around it that the old UDCs simply follow no standard.
>
> Best regards,
>
I suspect omap1510 will work with a value of 64 for the sizes, since it 
and mpc8xx
were added by Bryan O'Donoghue - 29 May 2006

I've added him to the CC.
Bryan, can you test changing

include/usb/omap1510_udc.h
#define UDC_INT_PACKET_SIZE     16
#define UDC_BULK_PACKET_SIZE 16
--------
or on a very old u-boot
include/usbdcore_omap1510.h
#define UDC_INT_PKTSIZE        16
#define UDC_BULK_PKTSIZE 16


from 16 to 64? Or maybe you remember the reason 16 was needed?
Also, do your remember anything about the MPC885 family and why
endpoint 0 could be 16 bytes, but bulk endpoints are limited to 8?

Thanks, I'd like my comments to be accurate...

Troy
diff mbox

Patch

diff --git a/drivers/serial/usbtty.h b/drivers/serial/usbtty.h
index e243a8e..819dec6 100644
--- a/drivers/serial/usbtty.h
+++ b/drivers/serial/usbtty.h
@@ -16,8 +16,6 @@ 
 #include <usb/mpc8xx_udc.h>
 #elif defined(CONFIG_OMAP1510)
 #include <usb/omap1510_udc.h>
-#elif defined(CONFIG_MUSB_UDC)
-#include <usb/musb_udc.h>
 #elif defined(CONFIG_CPU_PXA27X)
 #include <usb/pxa27x_udc.h>
 #elif defined(CONFIG_DW_UDC)
@@ -26,6 +24,7 @@ 
 #include <usb/mv_udc.h>
 #endif
 
+#include <usb/udc.h>
 #include <version.h>
 
 /* If no VendorID/ProductID is defined in config.h, pretend to be Linux
diff --git a/drivers/usb/gadget/designware_udc.c b/drivers/usb/gadget/designware_udc.c
index 1aab31b..b7c1038 100644
--- a/drivers/usb/gadget/designware_udc.c
+++ b/drivers/usb/gadget/designware_udc.c
@@ -14,6 +14,7 @@ 
 #include <usbdevice.h>
 #include "ep0.h"
 #include <usb/designware_udc.h>
+#include <usb/udc.h>
 #include <asm/arch/hardware.h>
 
 #define UDC_INIT_MDELAY		80	/* Device settle delay */
diff --git a/drivers/usb/gadget/mpc8xx_udc.c b/drivers/usb/gadget/mpc8xx_udc.c
index 0207d39..7f72972 100644
--- a/drivers/usb/gadget/mpc8xx_udc.c
+++ b/drivers/usb/gadget/mpc8xx_udc.c
@@ -47,6 +47,7 @@ 
 #include <commproc.h>
 #include <usbdevice.h>
 #include <usb/mpc8xx_udc.h>
+#include <usb/udc.h>
 
 #include "ep0.h"
 
diff --git a/drivers/usb/gadget/omap1510_udc.c b/drivers/usb/gadget/omap1510_udc.c
index 8553fe5..bdc1b88 100644
--- a/drivers/usb/gadget/omap1510_udc.c
+++ b/drivers/usb/gadget/omap1510_udc.c
@@ -20,6 +20,7 @@ 
 #endif
 #include <usbdevice.h>
 #include <usb/omap1510_udc.h>
+#include <usb/udc.h>
 
 #include "ep0.h"
 
diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c
index 05d1b56..733558d 100644
--- a/drivers/usb/gadget/pxa27x_udc.c
+++ b/drivers/usb/gadget/pxa27x_udc.c
@@ -16,6 +16,7 @@ 
 #include <asm/arch/hardware.h>
 #include <asm/io.h>
 #include <usb/pxa27x_udc.h>
+#include <usb/udc.h>
 
 #include "ep0.h"
 
diff --git a/drivers/usb/musb/musb_udc.c b/drivers/usb/musb/musb_udc.c
index 3e3e05e..87640f4 100644
--- a/drivers/usb/musb/musb_udc.c
+++ b/drivers/usb/musb/musb_udc.c
@@ -39,7 +39,8 @@ 
  */
 
 #include <common.h>
-#include <usb/musb_udc.h>
+#include <usbdevice.h>
+#include <usb/udc.h>
 #include "../gadget/ep0.h"
 #include "musb_core.h"
 #if defined(CONFIG_USB_OMAP3)
diff --git a/include/usb/designware_udc.h b/include/usb/designware_udc.h
index 2e29a7e..2e1cdf1 100644
--- a/include/usb/designware_udc.h
+++ b/include/usb/designware_udc.h
@@ -174,19 +174,6 @@  struct udcfifo_regs {
 };
 
 /*
- * USBTTY definitions
- */
-#define  EP0_MAX_PACKET_SIZE		64
-#define  UDC_INT_ENDPOINT		1
-#define  UDC_INT_PACKET_SIZE		64
-#define  UDC_OUT_ENDPOINT		2
-#define  UDC_BULK_PACKET_SIZE		64
-#define  UDC_BULK_HS_PACKET_SIZE	512
-#define  UDC_IN_ENDPOINT		3
-#define  UDC_OUT_PACKET_SIZE		64
-#define  UDC_IN_PACKET_SIZE		64
-
-/*
  * UDC endpoint definitions
  */
 #define  UDC_EP0			0
@@ -194,22 +181,4 @@  struct udcfifo_regs {
 #define  UDC_EP2			2
 #define  UDC_EP3			3
 
-/*
- * Function declarations
- */
-
-void udc_irq(void);
-
-void udc_set_nak(int epid);
-void udc_unset_nak(int epid);
-int udc_endpoint_write(struct usb_endpoint_instance *endpoint);
-int udc_init(void);
-void udc_enable(struct usb_device_instance *device);
-void udc_disable(void);
-void udc_connect(void);
-void udc_disconnect(void);
-void udc_startup_events(struct usb_device_instance *device);
-void udc_setup_ep(struct usb_device_instance *device, unsigned int ep,
-		  struct usb_endpoint_instance *endpoint);
-
 #endif /* __DW_UDC_H */
diff --git a/include/usb/mpc8xx_udc.h b/include/usb/mpc8xx_udc.h
index 475dd41..9906c75 100644
--- a/include/usb/mpc8xx_udc.h
+++ b/include/usb/mpc8xx_udc.h
@@ -111,11 +111,9 @@ 
 
 /* UDC device defines */
 #define EP0_MAX_PACKET_SIZE	EP_MAX_PKT
-#define UDC_OUT_ENDPOINT	0x02
+
 #define UDC_OUT_PACKET_SIZE	EP_MIN_PACKET_SIZE
-#define UDC_IN_ENDPOINT		0x03
 #define UDC_IN_PACKET_SIZE	EP_MIN_PACKET_SIZE
-#define UDC_INT_ENDPOINT	0x01
 #define UDC_INT_PACKET_SIZE	UDC_IN_PACKET_SIZE
 #define UDC_BULK_PACKET_SIZE	EP_MIN_PACKET_SIZE
 
@@ -178,18 +176,3 @@  typedef enum mpc8xx_udc_state{
 	STATE_READY,
 }mpc8xx_udc_state_t;
 
-/* Declarations */
-int udc_init(void);
-void udc_irq(void);
-int udc_endpoint_write(struct usb_endpoint_instance *endpoint);
-void udc_setup_ep(struct usb_device_instance *device, unsigned int ep,
-		  struct usb_endpoint_instance *endpoint);
-void udc_connect(void);
-void udc_disconnect(void);
-void udc_enable(struct usb_device_instance *device);
-void udc_disable(void);
-void udc_startup_events(struct usb_device_instance *device);
-
-/* Flow control */
-void udc_set_nak(int epid);
-void udc_unset_nak (int epid);
diff --git a/include/usb/musb_udc.h b/include/usb/musb_udc.h
deleted file mode 100644
index 3500c7a..0000000
--- a/include/usb/musb_udc.h
+++ /dev/null
@@ -1,40 +0,0 @@ 
-/*
- * Copyright (c) 2009 Wind River Systems, Inc.
- * Tom Rix <Tom.Rix@windriver.com>
- *
- * SPDX-License-Identifier:	GPL-2.0+
- */
-#ifndef __MUSB_UDC_H__
-#define __MUSB_UDC_H__
-
-#include <usbdevice.h>
-
-/* UDC level routines */
-void udc_irq(void);
-void udc_set_nak(int ep_num);
-void udc_unset_nak(int ep_num);
-int udc_endpoint_write(struct usb_endpoint_instance *endpoint);
-void udc_setup_ep(struct usb_device_instance *device, unsigned int id,
-		  struct usb_endpoint_instance *endpoint);
-void udc_connect(void);
-void udc_disconnect(void);
-void udc_enable(struct usb_device_instance *device);
-void udc_disable(void);
-void udc_startup_events(struct usb_device_instance *device);
-int udc_init(void);
-
-/* usbtty */
-#ifdef CONFIG_USB_TTY
-
-#define EP0_MAX_PACKET_SIZE	64 /* MUSB_EP0_FIFOSIZE */
-#define UDC_INT_ENDPOINT	1
-#define UDC_INT_PACKET_SIZE	64
-#define UDC_OUT_ENDPOINT	2
-#define UDC_OUT_PACKET_SIZE	64
-#define UDC_IN_ENDPOINT		3
-#define UDC_IN_PACKET_SIZE	64
-#define UDC_BULK_PACKET_SIZE	64
-
-#endif /* CONFIG_USB_TTY */
-
-#endif /* __MUSB_UDC_H__ */
diff --git a/include/usb/omap1510_udc.h b/include/usb/omap1510_udc.h
index ece0e95..934930b 100644
--- a/include/usb/omap1510_udc.h
+++ b/include/usb/omap1510_udc.h
@@ -162,32 +162,11 @@ 
 #define UDC_VBUS_MODE	    (1 << 18)
 
 /* OMAP Endpoint parameters */
-#define EP0_MAX_PACKET_SIZE 64
-#define UDC_OUT_ENDPOINT 2
-#define UDC_OUT_PACKET_SIZE 64
-#define UDC_IN_ENDPOINT	1
-#define UDC_IN_PACKET_SIZE 64
-#define UDC_INT_ENDPOINT 5
 #define UDC_INT_PACKET_SIZE	16
 #define UDC_BULK_PACKET_SIZE 16
 
-void udc_irq (void);
-/* Flow control */
-void udc_set_nak(int epid);
-void udc_unset_nak (int epid);
-
-/* Higher level functions for abstracting away from specific device */
-int udc_endpoint_write(struct usb_endpoint_instance *endpoint);
-
-int  udc_init (void);
-
-void udc_enable(struct usb_device_instance *device);
-void udc_disable(void);
-
-void udc_connect(void);
-void udc_disconnect(void);
-
-void udc_startup_events(struct usb_device_instance *device);
-void udc_setup_ep(struct usb_device_instance *device, unsigned int ep, struct usb_endpoint_instance *endpoint);
+#define UDC_INT_ENDPOINT 5
+#define UDC_OUT_ENDPOINT 2
+#define UDC_IN_ENDPOINT	1
 
 #endif
diff --git a/include/usb/pxa27x_udc.h b/include/usb/pxa27x_udc.h
index 7fdbe2a..7eaa000 100644
--- a/include/usb/pxa27x_udc.h
+++ b/include/usb/pxa27x_udc.h
@@ -22,35 +22,11 @@ 
 
 /* Endpoint parameters */
 #define MAX_ENDPOINTS		4
-#define EP_MAX_PACKET_SIZE	64
 
 #define EP0_MAX_PACKET_SIZE     16
+
 #define UDC_OUT_ENDPOINT        0x02
-#define UDC_OUT_PACKET_SIZE     EP_MAX_PACKET_SIZE
 #define UDC_IN_ENDPOINT         0x01
-#define UDC_IN_PACKET_SIZE      EP_MAX_PACKET_SIZE
 #define UDC_INT_ENDPOINT        0x05
-#define UDC_INT_PACKET_SIZE     EP_MAX_PACKET_SIZE
-#define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
-
-void udc_irq(void);
-/* Flow control */
-void udc_set_nak(int epid);
-void udc_unset_nak(int epid);
-
-/* Higher level functions for abstracting away from specific device */
-int udc_endpoint_write(struct usb_endpoint_instance *endpoint);
-
-int  udc_init(void);
-
-void udc_enable(struct usb_device_instance *device);
-void udc_disable(void);
-
-void udc_connect(void);
-void udc_disconnect(void);
-
-void udc_startup_events(struct usb_device_instance *device);
-void udc_setup_ep(struct usb_device_instance *device,
-	 unsigned int ep, struct usb_endpoint_instance *endpoint);
 
 #endif
diff --git a/include/usb/udc.h b/include/usb/udc.h
new file mode 100644
index 0000000..3bcbbbc
--- /dev/null
+++ b/include/usb/udc.h
@@ -0,0 +1,61 @@ 
+/*
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+#ifndef USB_UDC_H
+#define USB_UDC_H
+
+#ifndef EP0_MAX_PACKET_SIZE
+#define EP0_MAX_PACKET_SIZE     64
+#endif
+
+#ifndef EP_MAX_PACKET_SIZE
+#define EP_MAX_PACKET_SIZE	64
+#endif
+
+#ifndef UDC_OUT_PACKET_SIZE
+#define UDC_OUT_PACKET_SIZE     EP_MAX_PACKET_SIZE
+#endif
+
+#ifndef UDC_IN_PACKET_SIZE
+#define UDC_IN_PACKET_SIZE      EP_MAX_PACKET_SIZE
+#endif
+
+#ifndef UDC_INT_PACKET_SIZE
+#define UDC_INT_PACKET_SIZE     EP_MAX_PACKET_SIZE
+#endif
+
+#ifndef UDC_BULK_PACKET_SIZE
+#define UDC_BULK_PACKET_SIZE    EP_MAX_PACKET_SIZE
+#endif
+
+#define UDC_BULK_HS_PACKET_SIZE	512
+
+#ifndef UDC_INT_ENDPOINT
+#define UDC_INT_ENDPOINT	1
+#endif
+
+#ifndef UDC_OUT_ENDPOINT
+#define UDC_OUT_ENDPOINT	2
+#endif
+
+#ifndef UDC_IN_ENDPOINT
+#define UDC_IN_ENDPOINT		3
+#endif
+
+/* function declarations */
+int udc_init(void);
+void udc_irq(void);
+int udc_endpoint_write(struct usb_endpoint_instance *endpoint);
+void udc_setup_ep(struct usb_device_instance *device, unsigned int ep,
+		  struct usb_endpoint_instance *endpoint);
+void udc_connect(void);
+void udc_disconnect(void);
+void udc_enable(struct usb_device_instance *device);
+void udc_disable(void);
+void udc_startup_events(struct usb_device_instance *device);
+
+/* Flow control */
+void udc_set_nak(int epid);
+void udc_unset_nak(int epid);
+
+#endif