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