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