xref: /openbmc/u-boot/arch/arm/mach-at91/include/mach/atmel_usba_udc.h (revision 83d290c56fab2d38cd1ab4c4cc7099559c1d5046)
1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
2af930827SMasahiro Yamada /*
3af930827SMasahiro Yamada  * Copyright (C) 2005-2013 Atmel Corporation
4af930827SMasahiro Yamada  *			   Bo Shen <voice.shen@atmel.com>
5af930827SMasahiro Yamada  */
6af930827SMasahiro Yamada 
7af930827SMasahiro Yamada #ifndef __ATMEL_USBA_UDC_H__
8af930827SMasahiro Yamada #define __ATMEL_USBA_UDC_H__
9af930827SMasahiro Yamada 
10af930827SMasahiro Yamada #include <linux/usb/atmel_usba_udc.h>
11af930827SMasahiro Yamada 
12af930827SMasahiro Yamada #define EP(nam, idx, maxpkt, maxbk, dma, isoc)		\
13af930827SMasahiro Yamada 	[idx] = {					\
14af930827SMasahiro Yamada 		.name	= nam,				\
15af930827SMasahiro Yamada 		.index	= idx,				\
16af930827SMasahiro Yamada 		.fifo_size	= maxpkt,		\
17af930827SMasahiro Yamada 		.nr_banks	= maxbk,		\
18af930827SMasahiro Yamada 		.can_dma	= dma,			\
19af930827SMasahiro Yamada 		.can_isoc	= isoc,			\
20af930827SMasahiro Yamada 	}
21af930827SMasahiro Yamada 
22af930827SMasahiro Yamada #if defined(CONFIG_AT91SAM9G45) || defined(CONFIG_AT91SAM9M10G45) || \
23af930827SMasahiro Yamada 	defined(CONFIG_AT91SAM9X5)
24af930827SMasahiro Yamada static struct usba_ep_data usba_udc_ep[] = {
25af930827SMasahiro Yamada 	EP("ep0", 0, 64, 1, 0, 0),
26af930827SMasahiro Yamada 	EP("ep1", 1, 1024, 2, 1, 1),
27af930827SMasahiro Yamada 	EP("ep2", 2, 1024, 2, 1, 1),
28af930827SMasahiro Yamada 	EP("ep3", 3, 1024, 3, 1, 0),
29af930827SMasahiro Yamada 	EP("ep4", 4, 1024, 3, 1, 0),
30af930827SMasahiro Yamada 	EP("ep5", 5, 1024, 3, 1, 1),
31af930827SMasahiro Yamada 	EP("ep6", 6, 1024, 3, 1, 1),
32af930827SMasahiro Yamada };
3375238f23SWenyou Yang #elif defined(CONFIG_SAMA5D2) || defined(CONFIG_SAMA5D3) || \
3475238f23SWenyou Yang 	defined(CONFIG_SAMA5D4)
35af930827SMasahiro Yamada static struct usba_ep_data usba_udc_ep[] = {
36af930827SMasahiro Yamada 	EP("ep0", 0, 64, 1, 0, 0),
37af930827SMasahiro Yamada 	EP("ep1", 1, 1024, 3, 1, 0),
38af930827SMasahiro Yamada 	EP("ep2", 2, 1024, 3, 1, 0),
39af930827SMasahiro Yamada 	EP("ep3", 3, 1024, 2, 1, 0),
40af930827SMasahiro Yamada 	EP("ep4", 4, 1024, 2, 1, 0),
41af930827SMasahiro Yamada 	EP("ep5", 5, 1024, 2, 1, 0),
42af930827SMasahiro Yamada 	EP("ep6", 6, 1024, 2, 1, 0),
43af930827SMasahiro Yamada 	EP("ep7", 7, 1024, 2, 1, 0),
44af930827SMasahiro Yamada 	EP("ep8", 8, 1024, 2, 0, 0),
45af930827SMasahiro Yamada 	EP("ep9", 9, 1024, 2, 0, 0),
46af930827SMasahiro Yamada 	EP("ep10", 10, 1024, 2, 0, 0),
47af930827SMasahiro Yamada 	EP("ep11", 11, 1024, 2, 0, 0),
48af930827SMasahiro Yamada 	EP("ep12", 12, 1024, 2, 0, 0),
49af930827SMasahiro Yamada 	EP("ep13", 13, 1024, 2, 0, 0),
50af930827SMasahiro Yamada 	EP("ep14", 14, 1024, 2, 0, 0),
51af930827SMasahiro Yamada 	EP("ep15", 15, 1024, 2, 0, 0),
52af930827SMasahiro Yamada };
53af930827SMasahiro Yamada #else
54af930827SMasahiro Yamada # error "NO usba_udc_ep defined"
55af930827SMasahiro Yamada #endif
56af930827SMasahiro Yamada 
57af930827SMasahiro Yamada #undef EP
58af930827SMasahiro Yamada 
59af930827SMasahiro Yamada struct usba_platform_data pdata = {
60af930827SMasahiro Yamada 	.num_ep	= ARRAY_SIZE(usba_udc_ep),
61af930827SMasahiro Yamada 	.ep	= usba_udc_ep,
62af930827SMasahiro Yamada };
63af930827SMasahiro Yamada 
64af930827SMasahiro Yamada #endif
65