gd_usb.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. /*!
  2. *****************************************************************************
  3. ** \file gd_lib/GK7101/inc/gd_usb.h
  4. **
  5. ** \version $Id$
  6. **
  7. ** \brief 1
  8. **
  9. ** \attention THIS SAMPLE CODE IS PROVIDED AS IS. GOKE MICROELECTRONICS
  10. ** ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR
  11. ** OMMISSIONS
  12. **
  13. ** (C) Copyright 2012-2013 by GOKE MICROELECTRONICS CO.,LTD
  14. **
  15. *****************************************************************************
  16. */
  17. #ifndef _GD_USB_H_
  18. #define _GD_USB_H_
  19. //*****************************************************************************
  20. //*****************************************************************************
  21. //** Defines and Macros
  22. //*****************************************************************************
  23. //*****************************************************************************
  24. #define HS_MSC_TEST
  25. //#define FS_MSC_TEST
  26. //Switch of DMA FIFO CLR BUG Test
  27. //#define DMA_FIFO_CLR_TEST
  28. //USB data transfer mode choose
  29. //#define USB_DATA_TRAN_MODE_PIO // about 5.9MB ws, 4.4M rs;
  30. #define USB_DATA_TRAN_MODE_DMA
  31. //#define USB_DATA_TRAN_MODE_INT
  32. #define TBLK_SZ_BYTES_8 8
  33. #define TBLK_SZ_BYTES_16 16
  34. #define TBLK_SZ_BYTES_32 32
  35. #define TBLK_SZ_BYTES_64 64
  36. #define DMA_TBLK_SZ_BYTES_8 0
  37. #define DMA_TBLK_SZ_BYTES_16 1
  38. #define DMA_TBLK_SZ_BYTES_32 2
  39. #define DMA_TBLK_SZ_BYTES_64 3
  40. // DMA transfer mode. The maximum of USB DMA Tx transfer is limited by USB PHY ahb general Reg(0x90020E08) to 64 Bytes.
  41. #define USB_DMA_TBLK_SZ TBLK_SZ_BYTES_32
  42. //*****************************************************************************
  43. //*****************************************************************************
  44. //** Enumerated types
  45. //*****************************************************************************
  46. //*****************************************************************************
  47. //*****************************************************************************
  48. //*****************************************************************************
  49. //** Data Structures
  50. //*****************************************************************************
  51. //*****************************************************************************
  52. //*****************************************************************************
  53. //*****************************************************************************
  54. //** Global Data
  55. //*****************************************************************************
  56. //*****************************************************************************
  57. //*****************************************************************************
  58. //*****************************************************************************
  59. //** API Functions
  60. //*****************************************************************************
  61. //*****************************************************************************
  62. #ifdef __cplusplus
  63. extern "C" {
  64. #endif
  65. extern void gd_clk_disable_usb();
  66. extern void gd_clk_enable_usb();
  67. extern void gd_clk_disable_all();
  68. extern GERR GD_USB_PHY_FPGA_Init(void);
  69. extern GERR GD_USB_PHY_Init(U8 GpioNumber);
  70. extern GERR GD_USB_Init(void);
  71. extern void GD_USB_In_tranTx(U8 *p, U32 len);
  72. extern void GD_USB_Control_in(const U8 *p, U32 *length, U32 len0_flag);
  73. extern void GD_USB_Init_msc_pipe(void);
  74. extern GERR GD_USB_Set_EP_Index(U8 idx);
  75. extern GERR GD_USB_Set_CSR0L(U8 data);
  76. extern GERR GD_USB_Get_CSR0L(U8 *pdata);
  77. extern GERR GD_USB_Set_FADDR(U8 data);
  78. extern GERR GD_USB_Set_RXCSRL(U8 data);
  79. extern GERR GD_USB_Get_RXCSRL(U8 *data);
  80. extern GERR GD_USB_Set_TXCSRH(U8 data);
  81. extern GERR GD_USB_Get_POWER(U8 *data);
  82. extern GERR GD_USB_Read_Rx_Count(U8 cntType, U32 *data);
  83. extern GERR GD_USB_Read_EP_FIFOx(U8 aryData[], U32 reqBytesNum, U8 epIdx);
  84. extern GERR GD_USB_DMA_In_TranRx(U32 host_write_addr, U32 host_write_len);
  85. extern GERR GD_USB_DMA_Out_TranTx(U32 read_addr, U32 read_len);
  86. extern GERR GD_USB_DMA_Out_TranTx_Fix_BugDMA(U32 read_addr, U32 read_len);
  87. #ifdef GK710X
  88. extern GERR GD_USB_Read_Clear_IntrRx(U16 *pINT);
  89. extern GERR GD_USB_Read_Clear_IntrTx(U16 *pINT);
  90. #else
  91. extern GERR GD_USB_IRQ_In_TranRx_Set(U32 host_write_addr, U32 host_write_len);
  92. extern GERR GD_USB_IRQ_Out_TranTx_Set(U32 hs_read_addr, U32 hs_read_len);
  93. extern GERR GD_USB_Read_Clear_IntrTx_L(U8 *pINT);
  94. extern GERR GD_USB_Read_Clear_IntrRx_L(U8 *pINT);
  95. extern void GD_USB_PIO_In_tran_tx(U32 *p, U32 len);
  96. extern void GD_USB_PIO_In_tran_rx(U32 *p, U32 len);
  97. #endif
  98. #ifdef __cplusplus
  99. }
  100. #endif
  101. #endif /* _GD_USB_H_ */