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