atmel_usba_udc.h 1.5 KB

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