]> git.sur5r.net Git - freertos/blob
a402ffb9f77696e562adb4343110df3a4deb8046
[freertos] /
1 /*
2  * @brief  USB registers and control functions
3  *
4  * @note
5  * Copyright(C) NXP Semiconductors, 2012
6  * All rights reserved.
7  *
8  * @par
9  * Software that is described herein is for illustrative purposes only
10  * which provides customers with programming information regarding the
11  * LPC products.  This software is supplied "AS IS" without any warranties of
12  * any kind, and NXP Semiconductors and its licensor disclaim any and
13  * all warranties, express or implied, including all implied warranties of
14  * merchantability, fitness for a particular purpose and non-infringement of
15  * intellectual property rights.  NXP Semiconductors assumes no responsibility
16  * or liability for the use of the software, conveys no license or rights under any
17  * patent, copyright, mask work right, or any other intellectual property rights in
18  * or to any products. NXP Semiconductors reserves the right to make changes
19  * in the software without notification. NXP Semiconductors also makes no
20  * representation or warranty that such application will be suitable for the
21  * specified use without further testing or modification.
22  *
23  * @par
24  * Permission to use, copy, modify, and distribute this software and its
25  * documentation is hereby granted, under NXP Semiconductors' and its
26  * licensor's relevant copyrights in the software, without fee, provided that it
27  * is used in conjunction with NXP Semiconductors microcontrollers.  This
28  * copyright, permission, and disclaimer notice must appear in all copies of
29  * this code.
30  */
31
32 #ifndef __USB_001_H_
33 #define __USB_001_H_
34
35 #include "sys_config.h"
36 #include "cmsis.h"
37
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41
42 /** @defgroup IP_USB_001 IP: USB Device, Host, & OTG register block and driver
43  * @ingroup IP_Drivers
44  * USB Device, Host, & OTG
45  * Note: 
46  * @{
47  */
48
49 /**
50  * @brief USB register block structure
51  */
52 typedef struct
53 {
54   __I  uint32_t Revision;             /* USB Host Registers                 */
55   __IO uint32_t Control;
56   __IO uint32_t CommandStatus;
57   __IO uint32_t InterruptStatus;
58   __IO uint32_t InterruptEnable;
59   __IO uint32_t InterruptDisable;
60   __IO uint32_t HCCA;
61   __I  uint32_t PeriodCurrentED;
62   __IO uint32_t ControlHeadED;
63   __IO uint32_t ControlCurrentED;
64   __IO uint32_t BulkHeadED;
65   __IO uint32_t BulkCurrentED;
66   __I  uint32_t DoneHead;
67   __IO uint32_t FmInterval;
68   __I  uint32_t FmRemaining;
69   __I  uint32_t FmNumber;
70   __IO uint32_t PeriodicStart;
71   __IO uint32_t LSTreshold;
72   __IO uint32_t RhDescriptorA;
73   __IO uint32_t RhDescriptorB;
74   __IO uint32_t RhStatus;
75   __IO uint32_t RhPortStatus1;
76   __IO uint32_t RhPortStatus2;
77        uint32_t RESERVED0[40];
78   __I  uint32_t Module_ID;
79
80   __I  uint32_t IntSt;               /* USB On-The-Go Registers            */
81   __IO uint32_t IntEn;
82   __O  uint32_t IntSet;
83   __O  uint32_t IntClr;
84   __IO uint32_t StCtrl;
85   __IO uint32_t Tmr;
86        uint32_t RESERVED1[58];
87
88   __I  uint32_t DevIntSt;            /* USB Device Interrupt Registers     */
89   __IO uint32_t DevIntEn;
90   __O  uint32_t DevIntClr;
91   __O  uint32_t DevIntSet;
92
93   __O  uint32_t CmdCode;             /* USB Device SIE Command Registers   */
94   __I  uint32_t CmdData;
95
96   __I  uint32_t RxData;              /* USB Device Transfer Registers      */
97   __O  uint32_t TxData;
98   __I  uint32_t RxPLen;
99   __O  uint32_t TxPLen;
100   __IO uint32_t Ctrl;
101   __O  uint32_t DevIntPri;
102
103   __I  uint32_t EpIntSt;             /* USB Device Endpoint Interrupt Regs */
104   __IO uint32_t EpIntEn;
105   __O  uint32_t EpIntClr;
106   __O  uint32_t EpIntSet;
107   __O  uint32_t EpIntPri;
108
109   __IO uint32_t ReEp;                /* USB Device Endpoint Realization Reg*/
110   __O  uint32_t EpInd;
111   __IO uint32_t MaxPSize;
112
113   __I  uint32_t DMARSt;              /* USB Device DMA Registers           */
114   __O  uint32_t DMARClr;
115   __O  uint32_t DMARSet;
116        uint32_t RESERVED2[9];
117   __IO uint32_t UDCAH;
118   __I  uint32_t EpDMASt;
119   __O  uint32_t EpDMAEn;
120   __O  uint32_t EpDMADis;
121   __I  uint32_t DMAIntSt;
122   __IO uint32_t DMAIntEn;
123        uint32_t RESERVED3[2];
124   __I  uint32_t EoTIntSt;
125   __O  uint32_t EoTIntClr;
126   __O  uint32_t EoTIntSet;
127   __I  uint32_t NDDRIntSt;
128   __O  uint32_t NDDRIntClr;
129   __O  uint32_t NDDRIntSet;
130   __I  uint32_t SysErrIntSt;
131   __O  uint32_t SysErrIntClr;
132   __O  uint32_t SysErrIntSet;
133        uint32_t RESERVED4[15];
134
135   union {
136   __I  uint32_t I2C_RX;                 /* USB OTG I2C Registers              */
137   __O  uint32_t I2C_TX;
138   };
139   __IO  uint32_t I2C_STS;
140   __IO uint32_t I2C_CTL;
141   __IO uint32_t I2C_CLKHI;
142   __O  uint32_t I2C_CLKLO;
143        uint32_t RESERVED5[824];
144
145   union {
146   __IO uint32_t USBClkCtrl;             /* USB Clock Control Registers        */
147   __IO uint32_t OTGClkCtrl;
148   };
149   union {
150   __I  uint32_t USBClkSt;
151   __I  uint32_t OTGClkSt;
152   };
153 } IP_USB_001_T;
154 /**
155  * @}
156  */
157
158 #ifdef __cplusplus
159 }
160 #endif
161
162 #endif /* __USB_001_H_ */
163