usb_composite.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /******************************************************************************
  2. *
  3. * Freescale Semiconductor Inc.
  4. * (c) Copyright 2004-2010 Freescale Semiconductor, Inc.
  5. * ALL RIGHTS RESERVED.
  6. *
  7. ******************************************************************************
  8. *
  9. * THIS SOFTWARE IS PROVIDED BY FREESCALE "AS IS" AND ANY EXPRESSED OR
  10. * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  11. * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  12. * IN NO EVENT SHALL FREESCALE OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
  13. * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  14. * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  15. * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  16. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  17. * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  18. * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  19. * THE POSSIBILITY OF SUCH DAMAGE.
  20. *
  21. **************************************************************************//*!
  22. *
  23. * @file usb_composite.h
  24. *
  25. * @author
  26. *
  27. * @version
  28. *
  29. * @date
  30. *
  31. * @brief The file contains USB stack Video class layer API header function.
  32. *
  33. *****************************************************************************/
  34. #ifndef _USB_COMPOSITE_H
  35. #define _USB_COMPOSITE_H
  36. /******************************************************************************
  37. * Includes
  38. *****************************************************************************/
  39. #include "types.h"
  40. #include "usb_class.h"
  41. #include "usb_descriptor.h"
  42. /******************************************************************************
  43. * Macro's
  44. *****************************************************************************/
  45. /* Audio class type */
  46. #define AUDIO_COMP_CC (0x01)
  47. /* CDC class type */
  48. #define CDC_COMP_CC (0x02)
  49. /* HID class type */
  50. #define HID_COMP_CC (0x03)
  51. /* MSD class type */
  52. #define MSD_COMP_CC (0x08)
  53. /* Video class type */
  54. #define VIDEO_COMP_CC (0x0e)
  55. /* PHDC class type */
  56. #define PHDC_COMP_CC (0x0f)
  57. /* DFU class type */
  58. #define DFU_COMP_CC (0xfe)
  59. /******************************************************************************
  60. * Types
  61. *****************************************************************************/
  62. /* application callback struct */
  63. typedef struct _CLASS_APP_CALLBACK_STRUCT
  64. {
  65. USB_CLASS_CALLBACK composite_class_callback;
  66. USB_REQ_FUNC vendor_req_callback;
  67. USB_CLASS_CALLBACK param_callback;
  68. USB_CLASS_SPECIFIC_HANDLER_FUNC param_specific_callback;
  69. }CLASS_APP_CALLBACK_STRUCT, _PTR_ CLASS_APP_CALLBACK_STRUCT_PTR;
  70. /* composite callback struct */
  71. typedef struct _COMPOSITE_CALLBACK_STRUCT
  72. {
  73. /* Number of class support */
  74. uint_8 count;
  75. /* Array of Endpoints Structures */
  76. CLASS_APP_CALLBACK_STRUCT_PTR class_app_callback[COMP_CLASS_UNIT_COUNT];
  77. }COMPOSITE_CALLBACK_STRUCT;
  78. /* Class architecture struct */
  79. typedef struct _CLASS_ARC_STRUCT
  80. {
  81. uint_8 class_type;
  82. uint_8 value[1];
  83. }CLASS_ARC_STRUCT, _PTR_ CLASS_ARC_STRUCT_PTR;
  84. /* Endpoint architecture struct */
  85. typedef struct _ENDPOINT_ARC_STRUCT
  86. {
  87. uint_8 ep_count;
  88. uint_8 value[1];
  89. }ENDPOINT_ARC_STRUCT, _PTR_ ENDPOINT_ARC_STRUCT_PTR;
  90. /* Interface architecture struct */
  91. typedef struct _INTERFACE_ARC_STRUCT
  92. {
  93. uint_8 interface_count;
  94. uint_8 value[1];
  95. }INTERFACE_ARC_STRUCT, _PTR_ INTERFACE_ARC_STRUCT_PTR;
  96. /******************************************************************************
  97. * Global function prototypes
  98. *****************************************************************************/
  99. extern uint_8 USB_Composite_Init (
  100. uint_8 controller_ID, /* [IN] Controller ID */
  101. COMPOSITE_CALLBACK_STRUCT *composite_callback_ptr /* [IN] Poiter to class info */
  102. );
  103. extern uint_8 USB_Composite_DeInit(
  104. uint_8 controller_ID /* [IN] Controller ID */
  105. );
  106. #endif
  107. /* EOF */