From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bo Shen Date: Wed, 4 Sep 2013 15:42:49 +0800 Subject: [U-Boot] [RFC PATCH 3/3] ARM: atmel: add RNDIS gadget support In-Reply-To: <5226E226.1040000@gmail.com> References: <1378180030-26101-1-git-send-email-voice.shen@atmel.com> <201309040031.58932.marex@denx.de> <52269110.1030905@atmel.com> <201309040355.59386.marex@denx.de> <52269461.10400@atmel.com> <5226E226.1040000@gmail.com> Message-ID: <5226E479.50002@atmel.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 * * SPDX-License-Identifier: GPL-2.0+ */ #ifndef __ATMEL_USBA_UDC_H__ #define __ATMEL_USBA_UDC_H__ #include #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