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.s...@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---

Best regards

Andreas Bießmann


Best Regards,
Bo Shen
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to