]> git.sur5r.net Git - freertos/blob
d8283995b2d3bbd9de5e776d64372c307374f48c
[freertos] /
1 /*\r
2  * @brief High-Speed USB registers and control functions\r
3  *\r
4  * @note\r
5  * Copyright(C) NXP Semiconductors, 2012\r
6  * All rights reserved.\r
7  *\r
8  * @par\r
9  * Software that is described herein is for illustrative purposes only\r
10  * which provides customers with programming information regarding the\r
11  * LPC products.  This software is supplied "AS IS" without any warranties of\r
12  * any kind, and NXP Semiconductors and its licensor disclaim any and\r
13  * all warranties, express or implied, including all implied warranties of\r
14  * merchantability, fitness for a particular purpose and non-infringement of\r
15  * intellectual property rights.  NXP Semiconductors assumes no responsibility\r
16  * or liability for the use of the software, conveys no license or rights under any\r
17  * patent, copyright, mask work right, or any other intellectual property rights in\r
18  * or to any products. NXP Semiconductors reserves the right to make changes\r
19  * in the software without notification. NXP Semiconductors also makes no\r
20  * representation or warranty that such application will be suitable for the\r
21  * specified use without further testing or modification.\r
22  *\r
23  * @par\r
24  * Permission to use, copy, modify, and distribute this software and its\r
25  * documentation is hereby granted, under NXP Semiconductors' and its\r
26  * licensor's relevant copyrights in the software, without fee, provided that it\r
27  * is used in conjunction with NXP Semiconductors microcontrollers.  This\r
28  * copyright, permission, and disclaimer notice must appear in all copies of\r
29  * this code.\r
30  */\r
31 \r
32 #ifndef __USBHS_001_H_\r
33 #define __USBHS_001_H_\r
34 \r
35 #include "sys_config.h"\r
36 #include "cmsis.h"\r
37 \r
38 #ifdef __cplusplus\r
39 extern "C" {\r
40 #endif\r
41 \r
42 /** @defgroup IP_USBHS_001 IP: USBHS Device, Host, & OTG register block and driver\r
43  * @ingroup IP_Drivers\r
44  * USB High-Speed Device, Host, & OTG\r
45  * Note: On the LPC18xx and LPC43xx, only USB0 supports OTG\r
46  * @{\r
47  */\r
48 \r
49 /**\r
50  * @brief USB High-Speed register block structure\r
51  */\r
52 typedef struct {                                                        /*!< USB Structure         */\r
53         __I  uint32_t  RESERVED0[64];\r
54         __I  uint32_t  CAPLENGTH;                               /*!< Capability register length */\r
55         __I  uint32_t  HCSPARAMS;                               /*!< Host controller structural parameters */\r
56         __I  uint32_t  HCCPARAMS;                               /*!< Host controller capability parameters */\r
57         __I  uint32_t  RESERVED1[5];\r
58         __I  uint32_t  DCIVERSION;                              /*!< Device interface version number */\r
59         __I  uint32_t  RESERVED2[7];\r
60         union {\r
61                 __IO uint32_t  USBCMD_H;                        /*!< USB command (host mode) */\r
62                 __IO uint32_t  USBCMD_D;                        /*!< USB command (device mode) */\r
63         };\r
64 \r
65         union {\r
66                 __IO uint32_t  USBSTS_H;                        /*!< USB status (host mode) */\r
67                 __IO uint32_t  USBSTS_D;                        /*!< USB status (device mode) */\r
68         };\r
69 \r
70         union {\r
71                 __IO uint32_t  USBINTR_H;                       /*!< USB interrupt enable (host mode) */\r
72                 __IO uint32_t  USBINTR_D;                       /*!< USB interrupt enable (device mode) */\r
73         };\r
74 \r
75         union {\r
76                 __IO uint32_t  FRINDEX_H;                       /*!< USB frame index (host mode) */\r
77                 __I  uint32_t  FRINDEX_D;                       /*!< USB frame index (device mode) */\r
78         };\r
79 \r
80         __I  uint32_t  RESERVED3;\r
81         union {\r
82                 __IO uint32_t  PERIODICLISTBASE;        /*!< Frame list base address */\r
83                 __IO uint32_t  DEVICEADDR;                      /*!< USB device address     */\r
84         };\r
85 \r
86         union {\r
87                 __IO uint32_t  ASYNCLISTADDR;           /*!< Address of endpoint list in memory (host mode) */\r
88                 __IO uint32_t  ENDPOINTLISTADDR;        /*!< Address of endpoint list in memory (device mode) */\r
89         };\r
90 \r
91         __IO uint32_t  TTCTRL;                                  /*!< Asynchronous buffer status for embedded TT (host mode) */\r
92         __IO uint32_t  BURSTSIZE;                               /*!< Programmable burst size */\r
93         __IO uint32_t  TXFILLTUNING;                    /*!< Host transmit pre-buffer packet tuning (host mode) */\r
94         __I  uint32_t  RESERVED4[2];\r
95         __IO uint32_t  ULPIVIEWPORT;                    /*!< ULPI viewport          */\r
96         __IO uint32_t  BINTERVAL;                               /*!< Length of virtual frame */\r
97         __IO uint32_t  ENDPTNAK;                                /*!< Endpoint NAK (device mode) */\r
98         __IO uint32_t  ENDPTNAKEN;                              /*!< Endpoint NAK Enable (device mode) */\r
99         __I  uint32_t  RESERVED5;\r
100         union {\r
101                 __IO uint32_t  PORTSC1_H;                       /*!< Port 1 status/control (host mode) */\r
102                 __IO uint32_t  PORTSC1_D;                       /*!< Port 1 status/control (device mode) */\r
103         };\r
104 \r
105         __I  uint32_t  RESERVED6[7];\r
106         __IO uint32_t  OTGSC;                                   /*!< OTG status and control */\r
107         union {\r
108                 __IO uint32_t  USBMODE_H;                       /*!< USB mode (host mode)   */\r
109                 __IO uint32_t  USBMODE_D;                       /*!< USB mode (device mode) */\r
110         };\r
111 \r
112         __IO uint32_t  ENDPTSETUPSTAT;                  /*!< Endpoint setup status  */\r
113         __IO uint32_t  ENDPTPRIME;                              /*!< Endpoint initialization */\r
114         __IO uint32_t  ENDPTFLUSH;                              /*!< Endpoint de-initialization */\r
115         __I  uint32_t  ENDPTSTAT;                               /*!< Endpoint status        */\r
116         __IO uint32_t  ENDPTCOMPLETE;                   /*!< Endpoint complete      */\r
117         __IO uint32_t  ENDPTCTRL[6];                    /*!< Endpoint control 0     */\r
118 } IP_USBHS_001_T;\r
119 \r
120 /**\r
121  * @}\r
122  */\r
123 \r
124 #ifdef __cplusplus\r
125 }\r
126 #endif\r
127 \r
128 #endif /* __USBHS_001_H_ */\r