[U-Boot] [RFC PATCH 3/3] ARM: atmel: add RNDIS gadget support
Marek Vasut
marex at denx.de
Wed Sep 4 14:25:43 CEST 2013
Dear Andreas Bießmann,
> Hi Bo,
>
> On 09/04/2013 09:42 AM, Bo Shen wrote:
> > Hi Andreas,
> >
> > On 9/4/2013 15:32, Andreas Bießmann wrote:
> >> Hi Bo, Marek,
> >>
> >> On 09/04/2013 04:01 AM, Bo Shen wrote:
> >>> Hi Marek Vasut,
> >>>
> >>> On 09/04/2013 09:55 AM, Marek Vasut wrote:
> >>>>>> I have considered to put this in driver, however, different Atmel
> >>>>>> SoC have different attributes for each endpoint and different
> >>>>>> number of endpoint.
> >>>>>>
> >>>>>> for example;
> >>>>>> at91sam9x5: EP("ep1", 1, 1024, 2, 1, 1)
> >>>>>> sama5d3x: EP("ep1", 1, 1024, 3, 1, 0)
> >>>>>>
> >>>>>> So, if I put this in driver, there will be many #ifdef. If newly SoC
> >>>>>> added, maybe we will need to add #ifdef again. So, I put it here.
> >>>>
> >>>> Can you not pull it into some header file at least? Having it in the
> >>>> board file
> >>>> will clearly result in duplication.
> >>>
> >>> OK, I will put it into header file.
> >>
> >> I'm fine with a header too. But for the records, the mentioned file is
> >> _not_ board code but SoC code.
> >
> > I will create a header file named atmel_usba_udc.h as other peripheral
> > (at91_udc.h is reserved for full speed usb device), and put it under
> > "arm/arm/include/asm/arch-at91/", the contents as following, does it OK?
> >
> > ---8>---
> > /*
> >
> > * Copyright (C) 2005-2013 Atmel Corporation
> > * Bo Shen <voice.shen at atmel.com>
> > *
> > * SPDX-License-Identifier: GPL-2.0+
> > */
> >
> > #ifndef __ATMEL_USBA_UDC_H__
> > #define __ATMEL_USBA_UDC_H__
> >
> > #include <linux/usb/atmel_usba_udc.h>
> >
> > #define EP(nam, idx, maxpkt, maxbk, dma, isoc) \
> >
> > [idx] = { \
> >
> > .name = nam, \
> > .index = idx, \
> > .fifo_size = maxpkt, \
> > .nr_banks = maxbk, \
> > .can_dma = dma, \
> > .can_isoc = isoc, \
> >
> > }
> >
> > #if defined(CONFIG_AT91SAM9G45) || defined(CONFIG_AT91SAM9M10G45) || \
> >
> > defined(CONFIG_AT91SAM9X5)
> >
> > static struct usba_ep_data usba_udc_ep[] = {
> >
> > EP("ep0", 0, 64, 1, 0, 0),
> >
> > ... ...
> >
> > EP("ep6", 6, 1024, 3, 1, 1),
> >
> > };
> > #elif defined(CONFIG_SAMA5D3)
> > static struct usba_ep_data usba_udc_ep[] = {
> >
> > EP("ep0", 0, 64, 1, 0, 0),
> > ..
> > EP("ep15", 15, 1024, 2, 0, 0),
> >
> > };
> >
> > #else
> > # error "NO usba_udc_ep defined"
> > #endif
> >
> > #undef EP
> >
> > struct usba_platform_data pdata = {
> >
> > .num_ep = ARRAY_SIZE(usba_udc_ep),
> > .ep = usba_udc_ep,
> >
> > };
> >
> > #endif
> > ---<8---
>
> I'm fine with that.
Same here, I'm fine with it
Best regards,
Marek Vasut
More information about the U-Boot
mailing list