usb_host_drv.h
上传用户:poi891205
上传日期:2013-07-15
资源大小:9745k
文件大小:4k
源码类别:

DVD

开发平台:

C/C++

  1. #ifndef _USB_HOST_DRV_H_
  2. #define _USB_HOST_DRV_H_
  3. #include "types.h"
  4.  
  5. #if  defined(SUPPORT_USB)&&defined(USB_HOST_DRV) 
  6.   
  7. //-------------------------------------------------------------------------------------------------
  8. // Memory space define
  9. //-------------------------------------------------------------------------------------------------
  10. #define USB_SCSI_CMD_BUF_POINTER (SDRAM_BASE_UNCACHED + USB_YA*1024) 
  11. #define USB_SCSI_CMD_BUF_SIZE 0x00000020
  12. #define USB_CSW_BUF_POINTER (USB_SCSI_CMD_BUF_POINTER + USB_SCSI_CMD_BUF_SIZE)
  13. #define USB_CSW_BUF_SIZE 0x00000010 
  14. //-------------------------------------------------------------------------------------------------
  15. // Global variables declaration
  16. //-------------------------------------------------------------------------------------------------
  17. #define USB_DEVICE_MODE    0                     
  18. #define USB_HOST_MODE      1    
  19.  
  20. #define PID_SETUP 0x0d // Setup token: 1101b.
  21. #define PID_OUT 0x01 // Out token  : 0001b.
  22. #define PID_IN 0x09 // IN token   : 1001b.
  23. #define USB_TURNAROUND_TIMEOUT_ERR     1000
  24. #define USB_CRC16_ERR                  1001
  25. #define USB_PID_ERR                    1002
  26. #define USB_BIT_STUFFING_ERR           1003
  27. #define USB_STALL_ERR        1004
  28. #define USB_SHORT_PACKET_ERR           1005          
  29.  
  30. #define sizeOfCBW    31
  31. #define sizeOfCSW    13 
  32. //-------------------------------------------------------------------------------------------------
  33. //  USB SIMPLY HOST REGISTER
  34. //-------------------------------------------------------------------------------------------------
  35. #define USB_HOST_DRV_REG_BASE_ADR  0xbc020000
  36. #define USB_CTL_REG                          20
  37. #define USB_HOST_DMA_TX_ADDR                 24
  38. #define USB_HOST_DMA_TX_LEN                  25
  39. #define USB_HOST_DMA_RX_ADDR                 26
  40. #define USB_HOST_DMA_RX_LEN                  27
  41. #define USB_HOST_DMA_CSR                     28 
  42. #define USB_HOST_VERSION                  0xC00 
  43. #define USB_HOST_CTL                      0xC01
  44. #define USB_HOST_TRANS_PARA               0xC02  
  45. #define USB_HOST_TRANS_LENGTH             0xC03
  46. #define USB_HOST_PORT_CTL                 0xC04 
  47. #define USB_HOST_SOF_CTL                  0xC05 
  48. #define USB_HOST_INTERRUPT_STATUS         0xC08 
  49. #define USB_HOST_INTERRUPT_ENABLE         0xC09  
  50. #define USB_HOST_TRANS_STATUS             0xC0A
  51. #define USB_HOST_DRV_DATA_PORT            0x400
  52. #define reset_usb_host_hw()            usb_host_drv_reg_wr(USB_HOST_CTL,0x04)   
  53. #define usb_host_transaction_go()      usb_host_drv_reg_wr(USB_HOST_CTL,0x01) 
  54. #define get_usb_host_version()         usb_host_drv_reg_rd(USB_HOST_VERSION)     
  55. //-------------------------------------------------------------------------------------------------
  56. // Local function declaration
  57. //-------------------------------------------------------------------------------------------------
  58. extern void    usb_host_drv_reg_wr( UINT32 ,UINT32 );
  59. extern UINT32  usb_host_drv_reg_rd( UINT32  );
  60. extern void    set_usb_mode_select(UINT32 );
  61. extern void    set_usb_host_trans_para(UINT32 ,UINT32 ,UINT32 ,UINT32 );
  62. extern void    set_usb_host_trans_len(UINT32 );
  63. extern UINT32  set_usb_host_bus_reset();
  64. extern void    set_usb_dma_Tx_addr_and_len(UINT32 ,UINT32 );
  65. extern void    set_usb_dma_Rx_addr_and_len(UINT32 ,UINT32 );
  66. extern UINT32  usb_Tx_dma_start();
  67. extern UINT32  usb_Rx_dma_start();
  68. extern void    read_usb_fifo_data_port(UINT8 *,UINT32 );
  69. extern void    write_usb_fifo_data_port(UINT8 *,UINT32 );
  70. extern void    usb_host_drv_hw_Init();
  71. extern UINT32  usb_host_drv_bulkXfer(BYTE  , BYTE  , BYTE  , BYTE  , BYTE * , BYTE * , BYTE * );
  72. extern UINT32  usbXfer (BYTE  , BYTE  , BYTE  , BYTE  , BYTE  , WORD  , BYTE * );
  73. extern UINT32  usb_host_drv_PlugInOutDetect(void);
  74. extern void    usb_host_init();
  75. extern void    usb_host_drv_ErrorProcess(void);
  76. #endif  //#if  defined(SUPPORT_USB)&&defined(USB_HOST_DRV) 
  77. extern void    usb_host_drv_USBISR (void); 
  78. #endif //_USB_HOST_DRV_H_