[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