sc2440_usb_hw.h
上传用户:qiulin1960
上传日期:2013-10-16
资源大小:2844k
文件大小:4k
源码类别:

Windows CE

开发平台:

Windows_Unix

  1. /*++
  2. THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  3. ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  4. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  5. PARTICULAR PURPOSE.
  6. Copyright (c) 2001. Samsung Electronics, co. ltd  All rights reserved.
  7. Module Name:  
  8. Abstract:
  9.     S3C2440 USB function(ACTIVE SYNC) device driver (Chip Layer) header file
  10. rev:
  11. 2002.1.22 : First release/no error recovery (kwangyoon LEE, kwangyoon@samsung.com)
  12. Notes: 
  13. --*/
  14. typedef struct
  15. {
  16. unsigned char bmRequest, bRequest;
  17. unsigned short wValue, wIndex, wLength;
  18. } SetupPKG, *PSetupPKG;
  19. #define EP0_MAXP_SIZE           8
  20. #define EP1_IN_MAXP_SIZE        64
  21. #define EP2_IN_MAXP_SIZE        64
  22. #define EP3_OUT_MAXP_SIZE       64
  23. #define EP4_OUT_MAXP_SIZE       64
  24. // EP0 use for configuration and Vendor Specific command interface
  25. /*----------------------------------------------------------------------
  26.  * The control FIFO is fixed at 8 bytes and will not work unless both
  27.  * host and device use 8 byte packet size.
  28.  */
  29. #define EP0Len          EP0_MAXP_SIZE
  30. /*----------------------------------------------------------------------
  31.  * The IN/OUT packet size may be configured between 1-255 bytes (seems like
  32.  * 16 is the only value that works reliably).
  33.  */
  34. #define EP1Len          EP1_IN_MAXP_SIZE
  35. #define EP2Len          EP4_OUT_MAXP_SIZE
  36. //-------------------------------------------------------------------------
  37. // Standard Chapter 9 definition
  38. //-------------------------------------------------------------------------
  39. // Request Codes
  40. #define GET_STATUS      0x00
  41. #define CLEAR_FEATURE   0x01
  42. #define SET_FEATURE     0x03
  43. #define SET_ADDRESS     0x05
  44. #define GET_DESCRIPTOR  0x06
  45. #define SET_DESCRIPTOR  0x07
  46. #define GET_CONFIG      0x08
  47. #define SET_CONFIG      0x09
  48. #define GET_INTERFACE   0x0a
  49. #define SET_INTERFACE   0x0b
  50. // Device specific request
  51. #define SET_CONTROL_LINE_STATE  0x22
  52. // Descriptor Types
  53. #define DEVICE          0x01
  54. #define CONFIGURATION   0x02
  55. #define STRING          0x03
  56. #define INTERFACE       0x04
  57. #define ENDPOINT        0x05
  58. /* Portable mechanism for writing bitfields in IO register structures
  59.  */
  60. #define IOW_REG_SET(_type,_ptr,_value)
  61. {
  62. *(volatile unsigned *)(_ptr) = _value;
  63. }
  64. #define IOW_REG_OR(_type,_ptr,_value)
  65. {
  66. *(volatile unsigned *)(_ptr) |= _value;
  67. }
  68. #define IOW_REG_AND(_type,_ptr,_value)
  69. {
  70. *(volatile unsigned *)(_ptr) &= _value;
  71. }
  72. #define IOW_REG_FIELD(_type,_ptr,_field,_value)        
  73. {
  74. register union {
  75.    _type s;
  76.    unsigned int d;
  77. } foo;
  78. foo.d = *(volatile unsigned *)(_ptr);
  79. foo.s._field = _value;
  80. *(volatile unsigned *)(_ptr) = foo.d;
  81. }
  82. #define IOW_REG_BITSET(_type,_ptr,_field,_value)        
  83. {
  84. register union {
  85.   _type s;
  86.   unsigned int d;
  87. } foo;
  88. foo.d = 0;
  89. foo.s._field = _value;
  90. *(volatile unsigned *)(_ptr) = foo.d;
  91. }
  92. #define IOW_REG_GET(_type,_ptr,_field,_value)
  93. {
  94. register union {
  95.   _type s;
  96.   unsigned int d;
  97. } foo;
  98. foo.d = *(volatile unsigned *)(_ptr);
  99. _value = foo.s._field;
  100. }
  101. //void HW_PowerOff(PSER_INFO pHWHead);
  102. //void HW_PowerOn(PSER_INFO pHWHead);
  103. BOOL InitUsbdDriverGlobals(void);   //:-)
  104. void UsbdDeallocateVm(void);     //:-)
  105. BOOL UsbdAllocateVm(void);     //:-)
  106. void UsbdInitDma3(int bufIndex,int bufOffset); //:-)