LPCOpen Platform
LPCOpen Platform for NXP LPC Microcontrollers
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
StdRequestType.h
Go to the documentation of this file.
1 /*
2  * @brief USB control endpoint request definitions
3  *
4  * @note
5  * Copyright(C) NXP Semiconductors, 2012
6  * Copyright(C) Dean Camera, 2011, 2012
7  * All rights reserved.
8  *
9  * @par
10  * Software that is described herein is for illustrative purposes only
11  * which provides customers with programming information regarding the
12  * LPC products. This software is supplied "AS IS" without any warranties of
13  * any kind, and NXP Semiconductors and its licensor disclaim any and
14  * all warranties, express or implied, including all implied warranties of
15  * merchantability, fitness for a particular purpose and non-infringement of
16  * intellectual property rights. NXP Semiconductors assumes no responsibility
17  * or liability for the use of the software, conveys no license or rights under any
18  * patent, copyright, mask work right, or any other intellectual property rights in
19  * or to any products. NXP Semiconductors reserves the right to make changes
20  * in the software without notification. NXP Semiconductors also makes no
21  * representation or warranty that such application will be suitable for the
22  * specified use without further testing or modification.
23  *
24  * @par
25  * Permission to use, copy, modify, and distribute this software and its
26  * documentation is hereby granted, under NXP Semiconductors' and its
27  * licensor's relevant copyrights in the software, without fee, provided that it
28  * is used in conjunction with NXP Semiconductors microcontrollers. This
29  * copyright, permission, and disclaimer notice must appear in all copies of
30  * this code.
31  */
32 
33 
44 #ifndef __STDREQTYPE_H__
45 #define __STDREQTYPE_H__
46 
47  /* Includes: */
48  #include "../../../Common/Common.h"
49  #include "USBMode.h"
50 
51  /* Enable C linkage for C++ Compilers: */
52  #if defined(__cplusplus)
53  extern "C" {
54  #endif
55 
56  /* Preprocessor Checks: */
57  #if !defined(__INCLUDE_FROM_USB_DRIVER)
58  #error Do not include this file directly. Include lpcroot/libraries/LPCUSBlib/Drivers/USB/USB.h instead.
59  #endif
60 
61  /* Public Interface - May be used in end-application: */
62  /* Macros: */
68  #define CONTROL_REQTYPE_DIRECTION 0x80
69 
75  #define CONTROL_REQTYPE_TYPE 0x60
76 
83  #define CONTROL_REQTYPE_RECIPIENT 0x1F
84 
91  #define REQDIR_HOSTTODEVICE (0 << 7)
92 
97  #define REQDIR_DEVICETOHOST (1 << 7)
98 
99 
106  #define REQTYPE_STANDARD (0 << 5)
107 
112  #define REQTYPE_CLASS (1 << 5)
113 
118  #define REQTYPE_VENDOR (2 << 5)
119 
120 
127  #define REQREC_DEVICE (0 << 0)
128 
134  #define REQREC_INTERFACE (1 << 0)
135 
141  #define REQREC_ENDPOINT (2 << 0)
142 
148  #define REQREC_OTHER (3 << 0)
149 
150 
151  /* Type Defines: */
158  typedef ATTR_IAR_PACKED struct
159  {
160  uint8_t bmRequestType;
161  uint8_t bRequest;
162  uint16_t wValue;
163  uint16_t wIndex;
164  uint16_t wLength;
166 
167  /* Enums: */
175  {
216  };
217 
222  {
236  };
237 
238  /* Private Interface - For use in library only: */
239  #if !defined(__DOXYGEN__)
240  /* Macros: */
241  #define FEATURE_SELFPOWERED_ENABLED (1 << 0)
242  #define FEATURE_REMOTE_WAKEUP_ENABLED (1 << 1)
243  #endif
244 
245  /* Disable C linkage for C++ Compilers: */
246  #if defined(__cplusplus)
247  }
248  #endif
249 
250 #endif
251