1 /**************************************************************************//**
2  * @file     hsusbh_reg.h
3  * @version  V1.00
4  * @brief    HSUSBH register definition header file
5  *
6  * SPDX-License-Identifier: Apache-2.0
7  * @copyright (C) 2017-2020 Nuvoton Technology Corp. All rights reserved.
8  *****************************************************************************/
9 #ifndef __HSUSBH_REG_H__
10 #define __HSUSBH_REG_H__
11 
12 #if defined ( __CC_ARM   )
13 #pragma anon_unions
14 #endif
15 
16 /**
17    @addtogroup REGISTER Control Register
18    @{
19 */
20 
21 /**
22     @addtogroup HSUSBH High Speed USB Host Controller (HSUSBH)
23     Memory Mapped Structure for HSUSBH Controller
24 @{ */
25 
26 typedef struct
27 {
28 
29 
30     /**
31      * @var HSUSBH_T::EHCVNR
32      * Offset: 0x00  EHCI Version Number Register
33      * ---------------------------------------------------------------------------------------------------
34      * |Bits    |Field     |Descriptions
35      * | :----: | :----:   | :---- |
36      * |[7:0]   |CRLEN     |Capability Registers Length
37      * |        |          |This register is used as an offset to add to register base to find the beginning of the Operational Register Space.
38      * |[31:16] |VERSION   |Host Controller Interface Version Number
39      * |        |          |This is a two-byte register containing a BCD encoding of the EHCI revision number supported by this host controller
40      * |        |          |The most significant byte of this register represents a major revision and the least significant byte is the minor revision.
41      * @var HSUSBH_T::EHCSPR
42      * Offset: 0x04  EHCI Structural Parameters Register
43      * ---------------------------------------------------------------------------------------------------
44      * |Bits    |Field     |Descriptions
45      * | :----: | :----:   | :---- |
46      * |[3:0]   |N_PORTS   |Number of Physical Downstream Ports
47      * |        |          |This field specifies the number of physical downstream ports implemented on this host controller
48      * |        |          |The value of this field determines how many port registers are addressable in the Operational Register Space (see Table 2-8)
49      * |        |          |Valid values are in the range of 1H to FH.
50      * |        |          |A zero in this field is undefined.
51      * |[4]     |PPC       |Port Power Control
52      * |        |          |This field indicates whether the host controller implementation includes port power control
53      * |        |          |A one in this bit indicates the ports have port power switches
54      * |        |          |A zero in this bit indicates the port do not have port power stitches
55      * |        |          |The value of this field affects the functionality of the Port Power field in each port status and control register.
56      * |[11:8]  |N_PCC     |Number of Ports Per Companion Controller
57      * |        |          |This field indicates the number of ports supported per companion host controller
58      * |        |          |It is used to indicate the port routing configuration to system software.
59      * |        |          |For example, if N_PORTS has a value of 6 and N_CC has a value of 2 then N_PCC could have a value of 3
60      * |        |          |The convention is that the first N_PCC ports are assumed to be routed to companion controller 1, the next N_PCC ports to companion controller 2, etc
61      * |        |          |In the previous example, the N_PCC could have been 4, where the first 4 are routed to companion controller 1 and the last two are routed to companion controller 2.
62      * |        |          |The number in this field must be consistent with N_PORTS and N_CC.
63      * |[15:12] |N_CC      |Number of Companion Controller
64      * |        |          |This field indicates the number of companion controllers associated with this USB 2.0 host controller.
65      * |        |          |A zero in this field indicates there are no companion host controllers
66      * |        |          |Port-ownership hand-off is not supported
67      * |        |          |Only high-speed devices are supported on the host controller root ports.
68      * |        |          |A value larger than zero in this field indicates there are companion USB 1.1 host controller(s)
69      * |        |          |Port-ownership hand-offs are supported
70      * |        |          |High, Full- and Low-speed devices are supported on the host controller root ports.
71      * @var HSUSBH_T::EHCCPR
72      * Offset: 0x08  EHCI Capability Parameters Register
73      * ---------------------------------------------------------------------------------------------------
74      * |Bits    |Field     |Descriptions
75      * | :----: | :----:   | :---- |
76      * |[0]     |AC64      |64-bit Addressing Capability
77      * |        |          |0 = Data structure using 32-bit address memory pointers.
78      * |[1]     |PFLF      |Programmable Frame List Flag
79      * |        |          |0 = System software must use a frame list length of 1024 elements with this EHCI host controller.
80      * |[2]     |ASPC      |Asynchronous Schedule Park Capability
81      * |        |          |0 = This EHCI host controller doesn't support park feature of high-speed queue heads in the Asynchronous Schedule.
82      * |[7:4]   |IST       |Isochronous Scheduling Threshold
83      * |        |          |This field indicates, relative to the current position of the executing host controller, where software can reliably update the isochronous schedule.
84      * |        |          |When bit [7] is zero, the value of the least significant 3 bits indicates the number of micro-frames a host controller can hold a set of isochronous data structures (one or more) before flushing the state.
85      * |[15:8]  |EECP      |EHCI Extended Capabilities Pointer (EECP)
86      * |        |          |0 = No extended capabilities are implemented.
87      * @var HSUSBH_T::UCMDR
88      * Offset: 0x20  USB Command Register
89      * ---------------------------------------------------------------------------------------------------
90      * |Bits    |Field     |Descriptions
91      * | :----: | :----:   | :---- |
92      * |[0]     |RUN       |Run/Stop (R/W)
93      * |        |          |When set to a 1, the Host Controller proceeds with execution of the schedule
94      * |        |          |The Host Controller continues execution as long as this bit is set to a 1
95      * |        |          |When this bit is set to 0, the Host Controller completes the current and any actively pipelined transactions on the USB and then halts
96      * |        |          |The Host Controller must halt within 16 micro-frames after software clears the Run bit
97      * |        |          |The HC Halted bit in the status register indicates when the Host Controller has finished its pending pipelined transactions and has entered the stopped state
98      * |        |          |Software must not write a one to this field unless the host controller is in the Halted state (i.e.
99      * |        |          |HCHalted in the USBSTS register is a one)
100      * |        |          |Doing so will yield undefined results.
101      * |        |          |0 = Stop.
102      * |        |          |1 = Run.
103      * |[1]     |HCRST     |Host Controller Reset (HCRESET) (R/W)
104      * |        |          |This control bit is used by software to reset the host controller
105      * |        |          |The effects of this on Root Hub registers are similar to a Chip Hardware Reset.
106      * |        |          |When software writes a one to this bit, the Host Controller resets its internal pipelines, timers, counters, state machines, etc
107      * |        |          |to their initial value
108      * |        |          |Any transaction currently in progress on USB is immediately terminated
109      * |        |          |A USB reset is not driven on downstream ports.
110      * |        |          |All operational registers, including port registers and port state machines are set to their initial values
111      * |        |          |Port ownership reverts to the companion host controller(s), with the side effects
112      * |        |          |Software must reinitialize the host controller in order to return the host controller to an operational state.
113      * |        |          |This bit is set to zero by the Host Controller when the reset process is complete
114      * |        |          |Software cannot terminate the reset process early by writing a zero to this register.
115      * |        |          |Software should not set this bit to a one when the HCHalted bit in the USBSTS register is a zero
116      * |        |          |Attempting to reset an actively running host controller will result in undefined behavior.
117      * |[3:2]   |FLSZ      |Frame List Size (R/W or RO)
118      * |        |          |This field is R/W only if Programmable Frame List Flag in the HCCPARAMS registers is set to a one
119      * |        |          |This field specifies the size of the frame list
120      * |        |          |The size the frame list controls which bits in the Frame Index Register should be used for the Frame List Current index
121      * |        |          |Values mean:
122      * |        |          |00 = 1024 elements (4096 bytes) Default value.
123      * |        |          |01 = 512 elements (2048 bytes).
124      * |        |          |10 = 256 elements (1024 bytes) u2013 for resource-constrained environment.
125      * |        |          |11 = Reserved.
126      * |[4]     |PSEN      |Periodic Schedule Enable (R/W)
127      * |        |          |This bit controls whether the host controller skips processing the Periodic Schedule. Values mean:
128      * |        |          |0 = Do not process the Periodic Schedule.
129      * |        |          |1 = Use the PERIODICLISTBASE register to access the Periodic Schedule.
130      * |[5]     |ASEN      |Asynchronous Schedule Enable (R/W)
131      * |        |          |This bit controls whether the host controller skips processing the Asynchronous Schedule. Values mean:
132      * |        |          |0 = Do not process the Asynchronous Schedule.
133      * |        |          |1 = Use the ASYNCLISTADDR register to access the Asynchronous Schedule.
134      * |[6]     |IAAD      |Interrupt on Asynchronous Advance Doorbell (R/W)
135      * |        |          |This bit is used as a doorbell by software to tell the host controller to issue an interrupt the next time it advances asynchronous schedule
136      * |        |          |Software must write a 1 to this bit to ring the doorbell.
137      * |        |          |When the host controller has evicted all appropriate cached schedule state, it sets the Interrupt on Asynchronous Advance status bit in the USBSTS register
138      * |        |          |If the Interrupt on Asynchronous Advance Enable bit in the USBINTR register is a one then the host controller will assert an interrupt at the next interrupt threshold.
139      * |        |          |The host controller sets this bit to a zero after it has set the Interrupt on Asynchronous Advance status bit in the USBSTS register to a one.
140      * |        |          |Software should not write a one to this bit when the asynchronous schedule is disabled
141      * |        |          |Doing so will yield undefined results.
142      * |[23:16] |ITC       |Interrupt Threshold Control (R/W)
143      * |        |          |This field is used by system software to select the maximum rate at which the host controller will issue interrupts
144      * |        |          |The only valid values are defined below
145      * |        |          |If software writes an invalid value to this register, the results are undefined
146      * |        |          |Value Maximum Interrupt Interval
147      * |        |          |0x00 = Reserved.
148      * |        |          |0x01 = 1 micro-frame.
149      * |        |          |0x02 = 2 micro-frames.
150      * |        |          |0x04 = 4 micro-frames.
151      * |        |          |0x08 = 8 micro-frames (default, equates to 1 ms).
152      * |        |          |0x10 = 16 micro-frames (2 ms).
153      * |        |          |0x20 = 32 micro-frames (4 ms).
154      * |        |          |0x40 = 64 micro-frames (8 ms).
155      * |        |          |Any other value in this register yields undefined results.
156      * |        |          |Software modifications to this bit while HCHalted bit is equal to zero results in undefined behavior.
157      * @var HSUSBH_T::USTSR
158      * Offset: 0x24  USB Status Register
159      * ---------------------------------------------------------------------------------------------------
160      * |Bits    |Field     |Descriptions
161      * | :----: | :----:   | :---- |
162      * |[0]     |USBINT    |USB Interrupt (USBINT) (R/WC)
163      * |        |          |The Host Controller sets this bit to 1 on the completion of a USB transaction, which results in the retirement of a Transfer Descriptor that had its IOC bit set.
164      * |        |          |The Host Controller also sets this bit to 1 when a short packet is detected (actual number of bytes received was less than the expected number of bytes).
165      * |[1]     |UERRINT   |USB Error Interrupt (USBERRINT) (R/WC)
166      * |        |          |The Host Controller sets this bit to 1 when completion of a USB transaction results in an error condition (e.g., error counter underflow)
167      * |        |          |If the TD on which the error interrupt occurred also had its IOC bit set, both this bit and USBINT bit are set.
168      * |[2]     |PCD       |Port Change Detect (R/WC)
169      * |        |          |The Host Controller sets this bit to a one when any port for which the Port Owner bit is set to zero has a change bit transition from a zero to a one or a Force Port Resume bit transition from a zero to a one as a result of a J-K transition detected on a suspended port
170      * |        |          |This bit will also be set as a result of the Connect Status Change being set to a one after system software has relinquished ownership of a connected port by writing a one to a port's Port Owner bit.
171      * |        |          |This bit is allowed to be maintained in the Auxiliary power well
172      * |        |          |Alternatively, it is also acceptable that on a D3 to D0 transition of the EHCI HC device, this bit is loaded with the OR of all of the PORTSC change bits (including: Force port resume, over-current change, enable/disable change and connect status change).
173      * |[3]     |FLR       |Frame List Rollover (R/WC)
174      * |        |          |The Host Controller sets this bit to a one when the Frame List Index rolls over from its maximum value to zero
175      * |        |          |The exact value at which the rollover occurs depends on the frame list size
176      * |        |          |For example, if the frame list size (as programmed in the Frame List Size field of the USBCMD register) is 1024, the Frame Index Register rolls over every time FRINDEX[13] toggles
177      * |        |          |Similarly, if the size is 512, the Host Controller sets this bit to a one every time FRINDEX[12] toggles.
178      * |[4]     |HSERR     |Host System Error (R/WC)
179      * |        |          |The Host Controller sets this bit to 1 when a serious error occurs during a host system access involving the Host Controller module.
180      * |[5]     |IAA       |Interrupt on Asynchronous Advance (R/WC)
181      * |        |          |System software can force the host controller to issue an interrupt the next time the host controller advances the asynchronous schedule by writing a one to the Interrupt on Asynchronous Advance Doorbell bit in the USBCMD register
182      * |        |          |This status bit indicates the assertion of that interrupt source.
183      * |[12]    |HCHalted  |HCHalted (RO)
184      * |        |          |This bit is a zero whenever the Run/Stop bit is a one
185      * |        |          |The Host Controller sets this bit to one after it has stopped executing as a result of the Run/Stop bit being set to 0, either by software or by the Host Controller hardware (e.g.
186      * |        |          |internal error).
187      * |[13]    |RECLA     |Reclamation (RO)
188      * |        |          |This is a read-only status bit, which is used to detect an empty asynchronous schedule.
189      * |[14]    |PSS       |Periodic Schedule Status (RO)
190      * |        |          |The bit reports the current real status of the Periodic Schedule
191      * |        |          |If this bit is a zero then the status of the Periodic Schedule is disabled
192      * |        |          |If this bit is a one then the status of the Periodic Schedule is enabled
193      * |        |          |The Host Controller is not required to immediately disable or enable the Periodic Schedule when software transitions the Periodic Schedule Enable bit in the USBCMD register
194      * |        |          |When this bit and the Periodic Schedule Enable bit are the same value, the Periodic Schedule is either enabled (1) or disabled (0).
195      * |[15]    |ASS       |Asynchronous Schedule Status (RO)
196      * |        |          |The bit reports the current real status of the Asynchronous Schedule
197      * |        |          |If this bit is a zero then the status of them Asynchronous Schedule is disabled
198      * |        |          |If this bit is a one then the status of the Asynchronous Schedule is enabled
199      * |        |          |The Host Controller is not required to immediately disable or enable the Asynchronous Schedule when software transitions the Asynchronous Schedule Enable bit in the USBCMD register
200      * |        |          |When this bit and the Asynchronous Schedule Enable bit are the same value, the Asynchronous Schedule is either enabled (1) or disabled (0).
201      * @var HSUSBH_T::UIENR
202      * Offset: 0x28  USB Interrupt Enable Register
203      * ---------------------------------------------------------------------------------------------------
204      * |Bits    |Field     |Descriptions
205      * | :----: | :----:   | :---- |
206      * |[0]     |USBIEN    |USB Interrupt Enable or Disable Bit
207      * |        |          |When this bit is a one, and the USBINT bit in the USBSTS register is a one, the host controller will issue an interrupt at the next interrupt threshold
208      * |        |          |The interrupt is acknowledged by software clearing the USBINT bit.
209      * |        |          |0 = USB interrupt Disabled.
210      * |        |          |1 = USB interrupt Enabled.
211      * |[1]     |UERRIEN   |USB Error Interrupt Enable or Disable Bit
212      * |        |          |When this bit is a one, and the USBERRINT bit in the USBSTS register is a one, the host t controller will issue an interrupt at the next interrupt threshold
213      * |        |          |The interrupt is acknowledged by software clearing the USBERRINT bit.
214      * |        |          |0 = USB Error interrupt Disabled.
215      * |        |          |1 = USB Error interrupt Enabled.
216      * |[2]     |PCIEN     |Port Change Interrupt Enable or Disable Bit
217      * |        |          |When this bit is a one, and the Port Change Detect bit in the USBSTS register is a one, the host controller will issue an interrupt
218      * |        |          |The interrupt is acknowledged by software clearing the Port Change Detect bit.
219      * |        |          |0 = Port Change interrupt Disabled.
220      * |        |          |1 = Port Change interrupt Enabled.
221      * |[3]     |FLREN     |Frame List Rollover Enable or Disable Bit
222      * |        |          |When this bit is a one, and the Frame List Rollover bit in the USBSTS register is a one, the host controller will issue an interrupt
223      * |        |          |The interrupt is acknowledged by software clearing the Frame List Rollover bit.
224      * |        |          |0 = Frame List Rollover interrupt Disabled.
225      * |        |          |1 = Frame List Rollover interrupt Enabled.
226      * |[4]     |HSERREN   |Host System Error Enable or Disable Bit
227      * |        |          |When this bit is a one, and the Host System Error Status bit in the USBSTS register is a one, the host controller will issue an interrupt
228      * |        |          |The interrupt is acknowledged by software clearing the Host System Error bit.
229      * |        |          |0 = Host System Error interrupt Disabled.
230      * |        |          |1 = Host System Error interrupt Enabled.
231      * |[5]     |IAAEN     |Interrupt on Asynchronous Advance Enable or Disable Bit
232      * |        |          |When this bit is a one, and the Interrupt on Asynchronous Advance bit in the USBSTS register is a one, the host controller will issue an interrupt at the next interrupt threshold
233      * |        |          |The interrupt is acknowledged by software clearing the Interrupt on Asynchronous Advance bit.
234      * |        |          |0 = Interrupt on Asynchronous Advance Disabled.
235      * |        |          |1 = Interrupt on Asynchronous Advance Enabled.
236      * @var HSUSBH_T::UFINDR
237      * Offset: 0x2C  USB Frame Index Register
238      * ---------------------------------------------------------------------------------------------------
239      * |Bits    |Field     |Descriptions
240      * | :----: | :----:   | :---- |
241      * |[13:0]  |FI        |Frame Index
242      * |        |          |The value in this register increment at the end of each time frame (e.g.
243      * |        |          |micro-frame)
244      * |        |          |Bits [N:3] are used for the Frame List current index
245      * |        |          |This means that each location of the frame list is accessed 8 times (frames or micro-frames) before moving to the next index
246      * |        |          |The following illustrates values of N based on the value of the Frame List Size field in the USBCMD register.
247      * |        |          |FLSZ (UCMDR[3:2] Number Elements N
248      * |        |          |0x0 1024 12
249      * |        |          |0x1 512 11
250      * |        |          |0x2 256 10
251      * |        |          |0x3 Reserved
252      * @var HSUSBH_T::UPFLBAR
253      * Offset: 0x34  USB Periodic Frame List Base Address Register
254      * ---------------------------------------------------------------------------------------------------
255      * |Bits    |Field     |Descriptions
256      * | :----: | :----:   | :---- |
257      * |[31:12] |BADDR     |Base Address
258      * |        |          |These bits correspond to memory address signals [31:12], respectively.
259      * @var HSUSBH_T::UCALAR
260      * Offset: 0x38  USB Current Asynchronous List Address Register
261      * ---------------------------------------------------------------------------------------------------
262      * |Bits    |Field     |Descriptions
263      * | :----: | :----:   | :---- |
264      * |[31:5]  |LPL       |Link Pointer Low (LPL)
265      * |        |          |These bits correspond to memory address signals [31:5], respectively
266      * |        |          |This field may only reference a Queue Head (QH).
267      * @var HSUSBH_T::UASSTR
268      * Offset: 0x3C  USB Asynchronous Schedule Sleep Timer Register
269      * ---------------------------------------------------------------------------------------------------
270      * |Bits    |Field     |Descriptions
271      * | :----: | :----:   | :---- |
272      * |[11:0]  |ASSTMR    |Asynchronous Schedule Sleep Timer
273      * |        |          |This field defines the AsyncSchedSleepTime of EHCI spec.
274      * |        |          |The asynchronous schedule sleep timer is used to control how often the host controller fetches asynchronous schedule list from system memory while the asynchronous schedule is empty.
275      * |        |          |The default value of this timer is 12'hBD6
276      * |        |          |Because this timer is implemented in UTMI clock (30MHz) domain, the default sleeping time will be about 100us.
277      * @var HSUSBH_T::UCFGR
278      * Offset: 0x60  USB Configure Flag Register
279      * ---------------------------------------------------------------------------------------------------
280      * |Bits    |Field     |Descriptions
281      * | :----: | :----:   | :---- |
282      * |[0]     |CF        |Configure Flag (CF)
283      * |        |          |Host software sets this bit as the last action in its process of configuring the Host Controller
284      * |        |          |This bit controls the default port-routing control logic
285      * |        |          |Bit values and side-effects are listed below.
286      * |        |          |0 = Port routing control logic default-routes each port to an implementation dependent classic host controller.
287      * |        |          |1 = Port routing control logic default-routes all ports to this host controller.
288      * @var HSUSBH_T::UPSCR[2]
289      * Offset: 0x64~0x68  USB Port 0~1 Status and Control Register
290      * ---------------------------------------------------------------------------------------------------
291      * |Bits    |Field     |Descriptions
292      * | :----: | :----:   | :---- |
293      * |[0]     |CCS       |Current Connect Status (RO)
294      * |        |          |This value reflects the current state of the port, and may not correspond directly to the event that caused the Connect Status Change bit (Bit 1) to be set.
295      * |        |          |This field is zero if Port Power is zero.
296      * |        |          |0 = No device is present.
297      * |        |          |1 = Device is present on port.
298      * |[1]     |CSC       |Connect Status Change (R/W)
299      * |        |          |Indicates a change has occurred in the port's Current Connect Status
300      * |        |          |The host controller sets this bit for all changes to the port device connect status, even if system software has not cleared an existing connect status change
301      * |        |          |For example, the insertion status changes twice before system software has cleared the changed condition, hub hardware will be "setting" an already-set bit (i.e., the bit will remain set).Software sets this bit to 0 by writing a 1 to it.
302      * |        |          |This field is zero if Port Power is zero.
303      * |        |          |0 = No change.
304      * |        |          |1 = Change in Current Connect Status.
305      * |[2]     |PE        |Port Enabled/Disabled (R/W)
306      * |        |          |Ports can only be enabled by the host controller as a part of the reset and enable
307      * |        |          |Software cannot enable a port by writing a one to this field
308      * |        |          |The host controller will only set this bit to a one when the reset sequence determines that the attached device is a high-speed device.
309      * |        |          |Ports can be disabled by either a fault condition (disconnect event or other fault condition) or by host software
310      * |        |          |Note that the bit status does not change until the port state actually changes
311      * |        |          |There may be a delay in disabling or enabling a port due to other host controller and bus events.
312      * |        |          |When the port is disabled (0b) downstream propagation of data is blocked on this port, except for reset.
313      * |        |          |This field is zero if Port Power is zero.
314      * |        |          |0 = Port Disabled.
315      * |        |          |1 = Port Enabled.
316      * |[3]     |PEC       |Port Enable/Disable Change (R/WC)
317      * |        |          |For the root hub, this bit gets set to a one only when a port is disabled due to the appropriate conditions existing at the EOF2 point (See Chapter 11 of the USB Specification for the definition of a Port Error)
318      * |        |          |Software clears this bit by writing a 1 to it.
319      * |        |          |This field is zero if Port Power is zero.
320      * |        |          |0 = No change.
321      * |        |          |1 = Port enabled/disabled status has changed.
322      * |[4]     |OCA       |Over-current Active (RO)
323      * |        |          |This bit will automatically transition from a one to a zero when the over current condition is removed.
324      * |        |          |0 = This port does not have an over-current condition.
325      * |        |          |1 = This port currently has an over-current condition.
326      * |[5]     |OCC       |Over-current Change (R/WC)
327      * |        |          |1 = This bit gets set to a one when there is a change to Over-current Active
328      * |        |          |Software clears this bit by writing a one to this bit position.
329      * |[6]     |FPR       |Force Port Resume (R/W)
330      * |        |          |This functionality defined for manipulating this bit depends on the value of the Suspend bit
331      * |        |          |For example, if the port is not suspended (Suspend and Enabled bits are a one) and software transitions this bit to a one, then the effects on the bus are undefined.
332      * |        |          |Software sets this bit to a 1 to drive resume signaling
333      * |        |          |The Host Controller sets this bit to a 1 if a J-to-K transition is detected while the port is in the Suspend state
334      * |        |          |When this bit transitions to a one because a J-to-K transition is detected, the Port Change Detect bit in the USBSTS register is also set to a one
335      * |        |          |If software sets this bit to a one, the host controller must not set the Port Change Detect bit.
336      * |        |          |Note that when the EHCI controller owns the port, the resume sequence follows the defined sequence documented in the USB Specification Revision 2.0
337      * |        |          |The resume signaling (Full-speed 'K') is driven on the port as long as this bit remains a one
338      * |        |          |Software must appropriately time the Resume and set this bit to a zero when the appropriate amount of time has elapsed
339      * |        |          |Writing a zero (from one) causes the port to return to high-speed mode (forcing the bus below the port into a high-speed idle)
340      * |        |          |This bit will remain a one until the port has switched to the high-speed idle
341      * |        |          |The host controller must complete this transition within 2 milliseconds of software setting this bit to a zero.
342      * |        |          |This field is zero if Port Power is zero.
343      * |        |          |0 = No resume (K-state) detected/driven on port.
344      * |        |          |1 = Resume detected/driven on port.
345      * |[7]     |SUSPEND   |Suspend (R/W)
346      * |        |          |Port Enabled Bit and Suspend bit of this register define the port states as follows:
347      * |        |          |Port enable is 0 and suspend is 0 = Disable.
348      * |        |          |Port enable is 0 and suspend is 1 = Disable.
349      * |        |          |Port enable is 1 and suspend is 0 = Enable.
350      * |        |          |Port enable is 1 and suspend is 1 = Suspend.
351      * |        |          |When in suspend state, downstream propagation of data is blocked on this port, except for port reset
352      * |        |          |The blocking occurs at the end of the current transaction, if a transaction was in progress when this bit was written to 1
353      * |        |          |In the suspend state, the port is sensitive to resume detection
354      * |        |          |Note that the bit status does not change until the port is suspended and that there may be a delay in suspending a port if there is a transaction currently in progress on the USB.
355      * |        |          |A write of zero to this bit is ignored by the host controller
356      * |        |          |The host controller will unconditionally set this bit to a zero when:
357      * |        |          |Software sets the Force Port Resume bit to a zero (from a one).
358      * |        |          |Software sets the Port Reset bit to a one (from a zero).
359      * |        |          |If host software sets this bit to a one when the port is not enabled (i.e.
360      * |        |          |Port enabled bit is a zero) the results are undefined.
361      * |        |          |This field is zero if Port Power is zero.
362      * |        |          |0 = Port not in suspend state.
363      * |        |          |1 = Port in suspend state.
364      * |[8]     |PRST      |Port Reset (R/W)
365      * |        |          |When software writes a one to this bit (from a zero), the bus reset sequence as defined in the USB Specification Revision 2.0 is started
366      * |        |          |Software writes a zero to this bit to terminate the bus reset sequence
367      * |        |          |Software must keep this bit at a one long enough to ensure the reset sequence, as specified in the USB Specification Revision 2.0, completes
368      * |        |          |Note: when software writes this bit to a one, it must also write a zero to the Port Enable bit.
369      * |        |          |Note that when software writes a zero to this bit there may be a delay before the bit status changes to a zero
370      * |        |          |The bit status will not read as a zero until after the reset has completed
371      * |        |          |If the port is in high-speed mode after reset is complete, the host controller will automatically enable this port (e.g.
372      * |        |          |set the Port Enable bit to a one)
373      * |        |          |A host controller must terminate the reset and stabilize the state of the port within 2 milliseconds of software transitioning this bit from a one to a zero
374      * |        |          |For example: if the port detects that the attached device is high-speed during reset, then the host controller must have the port in the enabled state within 2ms of software writing this bit to a zero.
375      * |        |          |The HCHalted bit in the USBSTS register should be a zero before software attempts to use this bit
376      * |        |          |The host controller may hold Port Reset asserted to a one when the HCHalted bit is a one.
377      * |        |          |This field is zero if Port Power is zero.
378      * |        |          |0 = Port is not in Reset.
379      * |        |          |1 = Port is in Reset.
380      * |[11:10] |LSTS      |Line Status (RO)
381      * |        |          |These bits reflect the current logical levels of the D+ (bit 11) and D- (bit 10) signal lines
382      * |        |          |These bits are used for detection of low-speed USB devices prior to the port reset and enable sequence
383      * |        |          |This field is valid only when the port enable bit is zero and the current connect status bit is set to a one.
384      * |        |          |The encoding of the bits are:
385      * |        |          |Bits[11:10] USB State Interpretation
386      * |        |          |00 = SE0 Not Low-speed device, perform EHCI reset.
387      * |        |          |01 = K-state Low-speed device, release ownership of port.
388      * |        |          |10 = J-state Not Low-speed device, perform EHCI reset.
389      * |        |          |11 = Undefined Not Low-speed device, perform EHCI reset.
390      * |        |          |This value of this field is undefined if Port Power is zero.
391      * |[12]    |PP        |Port Power (PP)
392      * |        |          |Host controller has port power control switches
393      * |        |          |This bit represents the Current setting of the switch (0 = off, 1 = on)
394      * |        |          |When power is not available on a port (i.e.
395      * |        |          |PP equals a 0), the port is nonfunctional and will not report attaches, detaches, etc.
396      * |        |          |When an over-current condition is detected on a powered port and PPC is a one, the PP bit in each affected port may be transitioned by the host controller from a 1 to 0 (removing power from the port).
397      * |[13]    |PO        |Port Owner (R/W)
398      * |        |          |This bit unconditionally goes to a 0b when the Configured bit in the CONFIGFLAG register makes a 0 to 1 transition
399      * |        |          |This bit unconditionally goes to 1 whenever the Configured bit is zero.
400      * |        |          |System software uses this field to release ownership of the port to a selected host controller (in the event that the attached device is not a high-speed device)
401      * |        |          |Software writes a one to this bit when the attached device is not a high-speed device
402      * |        |          |A one in this bit means that a companion host controller owns and controls the port.
403      * |[19:16] |PTC       |Port Test Control (R/W)
404      * |        |          |When this field is zero, the port is NOT operating in a test mode
405      * |        |          |A non-zero value indicates that it is operating in test mode and the specific test mode is indicated by the specific value
406      * |        |          |The encoding of the test mode bits are (0x6 ~ 0xF are reserved):
407      * |        |          |Bits Test Mode
408      * |        |          |0x0 = Test mode not enabled.
409      * |        |          |0x1 = Test J_STATE.
410      * |        |          |0x2 = Test K_STATE.
411      * |        |          |0x3 = Test SE0_NAK.
412      * |        |          |0x4 = Test Packet.
413      * |        |          |0x5 = Test FORCE_ENABLE.
414      * @var HSUSBH_T::USBPCR0
415      * Offset: 0xC4  USB PHY 0 Control Register
416      * ---------------------------------------------------------------------------------------------------
417      * |Bits    |Field     |Descriptions
418      * | :----: | :----:   | :---- |
419      * |[8]     |SUSPEND   |Suspend Assertion
420      * |        |          |This bit controls the suspend mode of USB PHY 0.
421      * |        |          |While PHY was suspended, all circuits of PHY were powered down and outputs are tri-state.
422      * |        |          |This bit is 1'b0 in default
423      * |        |          |This means the USB PHY 0 is suspended in default
424      * |        |          |It is necessary to set this bit 1'b1 to make USB PHY 0 leave suspend mode before doing configuration of USB host.
425      * |        |          |0 = USB PHY 0 was suspended.
426      * |        |          |1 = USB PHY 0 was not suspended.
427      * |[11]    |CLKVALID  |UTMI Clock Valid
428      * |        |          |This bit is a flag to indicate if the UTMI clock from USB 2.0 PHY is ready
429      * |        |          |S/W program must prevent to write other control registers before this UTMI clock valid flag is active.
430      * |        |          |0 = UTMI clock is not valid.
431      * |        |          |1 = UTMI clock is valid.
432      * @var HSUSBH_T::USBPCR1
433      * Offset: 0xC8  USB PHY 1 Control Register
434      * ---------------------------------------------------------------------------------------------------
435      * |Bits    |Field     |Descriptions
436      * | :----: | :----:   | :---- |
437      * |[8]     |SUSPEND   |Suspend Assertion
438      * |        |          |This bit controls the suspend mode of USB PHY 1.
439      * |        |          |While PHY was suspended, all circuits of PHY were powered down and outputs are tri-state.
440      * |        |          |This bit is 1'b0 in default
441      * |        |          |This means the USB PHY 0 is suspended in default
442      * |        |          |It is necessary to set this bit 1'b1 to make USB PHY 0 leave suspend mode before doing configuration of USB host.
443      * |        |          |0 = USB PHY 1 was suspended.
444      * |        |          |1 = USB PHY 1 was not suspended.
445      */
446     __I  uint32_t EHCVNR;                /*!< [0x0000] EHCI Version Number Register                                     */
447     __I  uint32_t EHCSPR;                /*!< [0x0004] EHCI Structural Parameters Register                              */
448     __I  uint32_t EHCCPR;                /*!< [0x0008] EHCI Capability Parameters Register                              */
449     /// @cond HIDDEN_SYMBOLS
450     __I  uint32_t RESERVE0[5];
451     /// @endcond //HIDDEN_SYMBOLS
452     __IO uint32_t UCMDR;                 /*!< [0x0020] USB Command Register                                             */
453     __IO uint32_t USTSR;                 /*!< [0x0024] USB Status Register                                              */
454     __IO uint32_t UIENR;                 /*!< [0x0028] USB Interrupt Enable Register                                    */
455     __IO uint32_t UFINDR;                /*!< [0x002c] USB Frame Index Register                                         */
456     /// @cond HIDDEN_SYMBOLS
457     __I  uint32_t RESERVE1[1];
458     /// @endcond //HIDDEN_SYMBOLS
459     __IO uint32_t UPFLBAR;               /*!< [0x0034] USB Periodic Frame List Base Address Register                    */
460     __IO uint32_t UCALAR;                /*!< [0x0038] USB Current Asynchronous List Address Register                   */
461     __IO uint32_t UASSTR;                /*!< [0x003c] USB Asynchronous Schedule Sleep Timer Register                   */
462     /// @cond HIDDEN_SYMBOLS
463     __I  uint32_t RESERVE2[8];
464     /// @endcond //HIDDEN_SYMBOLS
465     __IO uint32_t UCFGR;                 /*!< [0x0060] USB Configure Flag Register                                      */
466     __IO uint32_t UPSCR[2];              /*!< [0x0064] ~ [0x0068] USB Port 0 & 1 Status and Control Register                           */
467     /// @cond HIDDEN_SYMBOLS
468     __I  uint32_t RESERVE3[22];
469     /// @endcond //HIDDEN_SYMBOLS
470     __IO uint32_t USBPCR0;               /*!< [0x00c4] USB PHY 0 Control Register                                       */
471     __IO uint32_t USBPCR1;               /*!< [0x00c8] USB PHY 1 Control Register                                       */
472 
473 } HSUSBH_T;
474 
475 /**
476     @addtogroup HSUSBH_CONST HSUSBH Bit Field Definition
477     Constant Definitions for HSUSBH Controller
478 @{ */
479 
480 #define HSUSBH_EHCVNR_CRLEN_Pos          (0)                                               /*!< HSUSBH_T::EHCVNR: CRLEN Position       */
481 #define HSUSBH_EHCVNR_CRLEN_Msk          (0xfful << HSUSBH_EHCVNR_CRLEN_Pos)               /*!< HSUSBH_T::EHCVNR: CRLEN Mask           */
482 
483 #define HSUSBH_EHCVNR_VERSION_Pos        (16)                                              /*!< HSUSBH_T::EHCVNR: VERSION Position     */
484 #define HSUSBH_EHCVNR_VERSION_Msk        (0xfffful << HSUSBH_EHCVNR_VERSION_Pos)           /*!< HSUSBH_T::EHCVNR: VERSION Mask         */
485 
486 #define HSUSBH_EHCSPR_N_PORTS_Pos        (0)                                               /*!< HSUSBH_T::EHCSPR: N_PORTS Position     */
487 #define HSUSBH_EHCSPR_N_PORTS_Msk        (0xful << HSUSBH_EHCSPR_N_PORTS_Pos)              /*!< HSUSBH_T::EHCSPR: N_PORTS Mask         */
488 
489 #define HSUSBH_EHCSPR_PPC_Pos            (4)                                               /*!< HSUSBH_T::EHCSPR: PPC Position         */
490 #define HSUSBH_EHCSPR_PPC_Msk            (0x1ul << HSUSBH_EHCSPR_PPC_Pos)                  /*!< HSUSBH_T::EHCSPR: PPC Mask             */
491 
492 #define HSUSBH_EHCSPR_N_PCC_Pos          (8)                                               /*!< HSUSBH_T::EHCSPR: N_PCC Position       */
493 #define HSUSBH_EHCSPR_N_PCC_Msk          (0xful << HSUSBH_EHCSPR_N_PCC_Pos)                /*!< HSUSBH_T::EHCSPR: N_PCC Mask           */
494 
495 #define HSUSBH_EHCSPR_N_CC_Pos           (12)                                              /*!< HSUSBH_T::EHCSPR: N_CC Position        */
496 #define HSUSBH_EHCSPR_N_CC_Msk           (0xful << HSUSBH_EHCSPR_N_CC_Pos)                 /*!< HSUSBH_T::EHCSPR: N_CC Mask            */
497 
498 #define HSUSBH_EHCCPR_AC64_Pos           (0)                                               /*!< HSUSBH_T::EHCCPR: AC64 Position        */
499 #define HSUSBH_EHCCPR_AC64_Msk           (0x1ul << HSUSBH_EHCCPR_AC64_Pos)                 /*!< HSUSBH_T::EHCCPR: AC64 Mask            */
500 
501 #define HSUSBH_EHCCPR_PFLF_Pos           (1)                                               /*!< HSUSBH_T::EHCCPR: PFLF Position        */
502 #define HSUSBH_EHCCPR_PFLF_Msk           (0x1ul << HSUSBH_EHCCPR_PFLF_Pos)                 /*!< HSUSBH_T::EHCCPR: PFLF Mask            */
503 
504 #define HSUSBH_EHCCPR_ASPC_Pos           (2)                                               /*!< HSUSBH_T::EHCCPR: ASPC Position        */
505 #define HSUSBH_EHCCPR_ASPC_Msk           (0x1ul << HSUSBH_EHCCPR_ASPC_Pos)                 /*!< HSUSBH_T::EHCCPR: ASPC Mask            */
506 
507 #define HSUSBH_EHCCPR_IST_Pos            (4)                                               /*!< HSUSBH_T::EHCCPR: IST Position         */
508 #define HSUSBH_EHCCPR_IST_Msk            (0xful << HSUSBH_EHCCPR_IST_Pos)                  /*!< HSUSBH_T::EHCCPR: IST Mask             */
509 
510 #define HSUSBH_EHCCPR_EECP_Pos           (8)                                               /*!< HSUSBH_T::EHCCPR: EECP Position        */
511 #define HSUSBH_EHCCPR_EECP_Msk           (0xfful << HSUSBH_EHCCPR_EECP_Pos)                /*!< HSUSBH_T::EHCCPR: EECP Mask            */
512 
513 #define HSUSBH_UCMDR_RUN_Pos             (0)                                               /*!< HSUSBH_T::UCMDR: RUN Position          */
514 #define HSUSBH_UCMDR_RUN_Msk             (0x1ul << HSUSBH_UCMDR_RUN_Pos)                   /*!< HSUSBH_T::UCMDR: RUN Mask              */
515 
516 #define HSUSBH_UCMDR_HCRST_Pos           (1)                                               /*!< HSUSBH_T::UCMDR: HCRST Position        */
517 #define HSUSBH_UCMDR_HCRST_Msk           (0x1ul << HSUSBH_UCMDR_HCRST_Pos)                 /*!< HSUSBH_T::UCMDR: HCRST Mask            */
518 
519 #define HSUSBH_UCMDR_FLSZ_Pos            (2)                                               /*!< HSUSBH_T::UCMDR: FLSZ Position         */
520 #define HSUSBH_UCMDR_FLSZ_Msk            (0x3ul << HSUSBH_UCMDR_FLSZ_Pos)                  /*!< HSUSBH_T::UCMDR: FLSZ Mask             */
521 
522 #define HSUSBH_UCMDR_PSEN_Pos            (4)                                               /*!< HSUSBH_T::UCMDR: PSEN Position         */
523 #define HSUSBH_UCMDR_PSEN_Msk            (0x1ul << HSUSBH_UCMDR_PSEN_Pos)                  /*!< HSUSBH_T::UCMDR: PSEN Mask             */
524 
525 #define HSUSBH_UCMDR_ASEN_Pos            (5)                                               /*!< HSUSBH_T::UCMDR: ASEN Position         */
526 #define HSUSBH_UCMDR_ASEN_Msk            (0x1ul << HSUSBH_UCMDR_ASEN_Pos)                  /*!< HSUSBH_T::UCMDR: ASEN Mask             */
527 
528 #define HSUSBH_UCMDR_IAAD_Pos            (6)                                               /*!< HSUSBH_T::UCMDR: IAAD Position         */
529 #define HSUSBH_UCMDR_IAAD_Msk            (0x1ul << HSUSBH_UCMDR_IAAD_Pos)                  /*!< HSUSBH_T::UCMDR: IAAD Mask             */
530 
531 #define HSUSBH_UCMDR_ITC_Pos             (16)                                              /*!< HSUSBH_T::UCMDR: ITC Position          */
532 #define HSUSBH_UCMDR_ITC_Msk             (0xfful << HSUSBH_UCMDR_ITC_Pos)                  /*!< HSUSBH_T::UCMDR: ITC Mask              */
533 
534 #define HSUSBH_USTSR_USBINT_Pos          (0)                                               /*!< HSUSBH_T::USTSR: USBINT Position       */
535 #define HSUSBH_USTSR_USBINT_Msk          (0x1ul << HSUSBH_USTSR_USBINT_Pos)                /*!< HSUSBH_T::USTSR: USBINT Mask           */
536 
537 #define HSUSBH_USTSR_UERRINT_Pos         (1)                                               /*!< HSUSBH_T::USTSR: UERRINT Position      */
538 #define HSUSBH_USTSR_UERRINT_Msk         (0x1ul << HSUSBH_USTSR_UERRINT_Pos)               /*!< HSUSBH_T::USTSR: UERRINT Mask          */
539 
540 #define HSUSBH_USTSR_PCD_Pos             (2)                                               /*!< HSUSBH_T::USTSR: PCD Position          */
541 #define HSUSBH_USTSR_PCD_Msk             (0x1ul << HSUSBH_USTSR_PCD_Pos)                   /*!< HSUSBH_T::USTSR: PCD Mask              */
542 
543 #define HSUSBH_USTSR_FLR_Pos             (3)                                               /*!< HSUSBH_T::USTSR: FLR Position          */
544 #define HSUSBH_USTSR_FLR_Msk             (0x1ul << HSUSBH_USTSR_FLR_Pos)                   /*!< HSUSBH_T::USTSR: FLR Mask              */
545 
546 #define HSUSBH_USTSR_HSERR_Pos           (4)                                               /*!< HSUSBH_T::USTSR: HSERR Position        */
547 #define HSUSBH_USTSR_HSERR_Msk           (0x1ul << HSUSBH_USTSR_HSERR_Pos)                 /*!< HSUSBH_T::USTSR: HSERR Mask            */
548 
549 #define HSUSBH_USTSR_IAA_Pos             (5)                                               /*!< HSUSBH_T::USTSR: IAA Position          */
550 #define HSUSBH_USTSR_IAA_Msk             (0x1ul << HSUSBH_USTSR_IAA_Pos)                   /*!< HSUSBH_T::USTSR: IAA Mask              */
551 
552 #define HSUSBH_USTSR_HCHalted_Pos        (12)                                              /*!< HSUSBH_T::USTSR: HCHalted Position     */
553 #define HSUSBH_USTSR_HCHalted_Msk        (0x1ul << HSUSBH_USTSR_HCHalted_Pos)              /*!< HSUSBH_T::USTSR: HCHalted Mask         */
554 
555 #define HSUSBH_USTSR_RECLA_Pos           (13)                                              /*!< HSUSBH_T::USTSR: RECLA Position        */
556 #define HSUSBH_USTSR_RECLA_Msk           (0x1ul << HSUSBH_USTSR_RECLA_Pos)                 /*!< HSUSBH_T::USTSR: RECLA Mask            */
557 
558 #define HSUSBH_USTSR_PSS_Pos             (14)                                              /*!< HSUSBH_T::USTSR: PSS Position          */
559 #define HSUSBH_USTSR_PSS_Msk             (0x1ul << HSUSBH_USTSR_PSS_Pos)                   /*!< HSUSBH_T::USTSR: PSS Mask              */
560 
561 #define HSUSBH_USTSR_ASS_Pos             (15)                                              /*!< HSUSBH_T::USTSR: ASS Position          */
562 #define HSUSBH_USTSR_ASS_Msk             (0x1ul << HSUSBH_USTSR_ASS_Pos)                   /*!< HSUSBH_T::USTSR: ASS Mask              */
563 
564 #define HSUSBH_UIENR_USBIEN_Pos          (0)                                               /*!< HSUSBH_T::UIENR: USBIEN Position       */
565 #define HSUSBH_UIENR_USBIEN_Msk          (0x1ul << HSUSBH_UIENR_USBIEN_Pos)                /*!< HSUSBH_T::UIENR: USBIEN Mask           */
566 
567 #define HSUSBH_UIENR_UERRIEN_Pos         (1)                                               /*!< HSUSBH_T::UIENR: UERRIEN Position      */
568 #define HSUSBH_UIENR_UERRIEN_Msk         (0x1ul << HSUSBH_UIENR_UERRIEN_Pos)               /*!< HSUSBH_T::UIENR: UERRIEN Mask          */
569 
570 #define HSUSBH_UIENR_PCIEN_Pos           (2)                                               /*!< HSUSBH_T::UIENR: PCIEN Position        */
571 #define HSUSBH_UIENR_PCIEN_Msk           (0x1ul << HSUSBH_UIENR_PCIEN_Pos)                 /*!< HSUSBH_T::UIENR: PCIEN Mask            */
572 
573 #define HSUSBH_UIENR_FLREN_Pos           (3)                                               /*!< HSUSBH_T::UIENR: FLREN Position        */
574 #define HSUSBH_UIENR_FLREN_Msk           (0x1ul << HSUSBH_UIENR_FLREN_Pos)                 /*!< HSUSBH_T::UIENR: FLREN Mask            */
575 
576 #define HSUSBH_UIENR_HSERREN_Pos         (4)                                               /*!< HSUSBH_T::UIENR: HSERREN Position      */
577 #define HSUSBH_UIENR_HSERREN_Msk         (0x1ul << HSUSBH_UIENR_HSERREN_Pos)               /*!< HSUSBH_T::UIENR: HSERREN Mask          */
578 
579 #define HSUSBH_UIENR_IAAEN_Pos           (5)                                               /*!< HSUSBH_T::UIENR: IAAEN Position        */
580 #define HSUSBH_UIENR_IAAEN_Msk           (0x1ul << HSUSBH_UIENR_IAAEN_Pos)                 /*!< HSUSBH_T::UIENR: IAAEN Mask            */
581 
582 #define HSUSBH_UFINDR_FI_Pos             (0)                                               /*!< HSUSBH_T::UFINDR: FI Position          */
583 #define HSUSBH_UFINDR_FI_Msk             (0x3ffful << HSUSBH_UFINDR_FI_Pos)                /*!< HSUSBH_T::UFINDR: FI Mask              */
584 
585 #define HSUSBH_UPFLBAR_BADDR_Pos         (12)                                              /*!< HSUSBH_T::UPFLBAR: BADDR Position      */
586 #define HSUSBH_UPFLBAR_BADDR_Msk         (0xffffful << HSUSBH_UPFLBAR_BADDR_Pos)           /*!< HSUSBH_T::UPFLBAR: BADDR Mask          */
587 
588 #define HSUSBH_UCALAR_LPL_Pos            (5)                                               /*!< HSUSBH_T::UCALAR: LPL Position         */
589 #define HSUSBH_UCALAR_LPL_Msk            (0x7fffffful << HSUSBH_UCALAR_LPL_Pos)            /*!< HSUSBH_T::UCALAR: LPL Mask             */
590 
591 #define HSUSBH_UASSTR_ASSTMR_Pos         (0)                                               /*!< HSUSBH_T::UASSTR: ASSTMR Position      */
592 #define HSUSBH_UASSTR_ASSTMR_Msk         (0xffful << HSUSBH_UASSTR_ASSTMR_Pos)             /*!< HSUSBH_T::UASSTR: ASSTMR Mask          */
593 
594 #define HSUSBH_UCFGR_CF_Pos              (0)                                               /*!< HSUSBH_T::UCFGR: CF Position           */
595 #define HSUSBH_UCFGR_CF_Msk              (0x1ul << HSUSBH_UCFGR_CF_Pos)                    /*!< HSUSBH_T::UCFGR: CF Mask               */
596 
597 #define HSUSBH_UPSCR_CCS_Pos             (0)                                               /*!< HSUSBH_T::UPSCR[2]: CCS Position       */
598 #define HSUSBH_UPSCR_CCS_Msk             (0x1ul << HSUSBH_UPSCR_CCS_Pos)                   /*!< HSUSBH_T::UPSCR[2]: CCS Mask           */
599 
600 #define HSUSBH_UPSCR_CSC_Pos             (1)                                               /*!< HSUSBH_T::UPSCR[2]: CSC Position       */
601 #define HSUSBH_UPSCR_CSC_Msk             (0x1ul << HSUSBH_UPSCR_CSC_Pos)                   /*!< HSUSBH_T::UPSCR[2]: CSC Mask           */
602 
603 #define HSUSBH_UPSCR_PE_Pos              (2)                                               /*!< HSUSBH_T::UPSCR[2]: PE Position        */
604 #define HSUSBH_UPSCR_PE_Msk              (0x1ul << HSUSBH_UPSCR_PE_Pos)                    /*!< HSUSBH_T::UPSCR[2]: PE Mask            */
605 
606 #define HSUSBH_UPSCR_PEC_Pos             (3)                                               /*!< HSUSBH_T::UPSCR[2]: PEC Position       */
607 #define HSUSBH_UPSCR_PEC_Msk             (0x1ul << HSUSBH_UPSCR_PEC_Pos)                   /*!< HSUSBH_T::UPSCR[2]: PEC Mask           */
608 
609 #define HSUSBH_UPSCR_OCA_Pos             (4)                                               /*!< HSUSBH_T::UPSCR[2]: OCA Position       */
610 #define HSUSBH_UPSCR_OCA_Msk             (0x1ul << HSUSBH_UPSCR_OCA_Pos)                   /*!< HSUSBH_T::UPSCR[2]: OCA Mask           */
611 
612 #define HSUSBH_UPSCR_OCC_Pos             (5)                                               /*!< HSUSBH_T::UPSCR[2]: OCC Position       */
613 #define HSUSBH_UPSCR_OCC_Msk             (0x1ul << HSUSBH_UPSCR_OCC_Pos)                   /*!< HSUSBH_T::UPSCR[2]: OCC Mask           */
614 
615 #define HSUSBH_UPSCR_FPR_Pos             (6)                                               /*!< HSUSBH_T::UPSCR[2]: FPR Position       */
616 #define HSUSBH_UPSCR_FPR_Msk             (0x1ul << HSUSBH_UPSCR_FPR_Pos)                   /*!< HSUSBH_T::UPSCR[2]: FPR Mask           */
617 
618 #define HSUSBH_UPSCR_SUSPEND_Pos         (7)                                               /*!< HSUSBH_T::UPSCR[2]: SUSPEND Position   */
619 #define HSUSBH_UPSCR_SUSPEND_Msk         (0x1ul << HSUSBH_UPSCR_SUSPEND_Pos)               /*!< HSUSBH_T::UPSCR[2]: SUSPEND Mask       */
620 
621 #define HSUSBH_UPSCR_PRST_Pos            (8)                                               /*!< HSUSBH_T::UPSCR[2]: PRST Position      */
622 #define HSUSBH_UPSCR_PRST_Msk            (0x1ul << HSUSBH_UPSCR_PRST_Pos)                  /*!< HSUSBH_T::UPSCR[2]: PRST Mask          */
623 
624 #define HSUSBH_UPSCR_LSTS_Pos            (10)                                              /*!< HSUSBH_T::UPSCR[2]: LSTS Position      */
625 #define HSUSBH_UPSCR_LSTS_Msk            (0x3ul << HSUSBH_UPSCR_LSTS_Pos)                  /*!< HSUSBH_T::UPSCR[2]: LSTS Mask          */
626 
627 #define HSUSBH_UPSCR_PP_Pos              (12)                                              /*!< HSUSBH_T::UPSCR[2]: PP Position        */
628 #define HSUSBH_UPSCR_PP_Msk              (0x1ul << HSUSBH_UPSCR_PP_Pos)                    /*!< HSUSBH_T::UPSCR[2]: PP Mask            */
629 
630 #define HSUSBH_UPSCR_PO_Pos              (13)                                              /*!< HSUSBH_T::UPSCR[2]: PO Position        */
631 #define HSUSBH_UPSCR_PO_Msk              (0x1ul << HSUSBH_UPSCR_PO_Pos)                    /*!< HSUSBH_T::UPSCR[2]: PO Mask            */
632 
633 #define HSUSBH_UPSCR_PTC_Pos             (16)                                              /*!< HSUSBH_T::UPSCR[2]: PTC Position       */
634 #define HSUSBH_UPSCR_PTC_Msk             (0xful << HSUSBH_UPSCR_PTC_Pos)                   /*!< HSUSBH_T::UPSCR[2]: PTC Mask           */
635 
636 #define HSUSBH_USBPCR0_SUSPEND_Pos       (8)                                               /*!< HSUSBH_T::USBPCR0: SUSPEND Position    */
637 #define HSUSBH_USBPCR0_SUSPEND_Msk       (0x1ul << HSUSBH_USBPCR0_SUSPEND_Pos)             /*!< HSUSBH_T::USBPCR0: SUSPEND Mask        */
638 
639 #define HSUSBH_USBPCR0_CLKVALID_Pos      (11)                                              /*!< HSUSBH_T::USBPCR0: CLKVALID Position   */
640 #define HSUSBH_USBPCR0_CLKVALID_Msk      (0x1ul << HSUSBH_USBPCR0_CLKVALID_Pos)            /*!< HSUSBH_T::USBPCR0: CLKVALID Mask       */
641 
642 #define HSUSBH_USBPCR1_SUSPEND_Pos       (8)                                               /*!< HSUSBH_T::USBPCR1: SUSPEND Position    */
643 #define HSUSBH_USBPCR1_SUSPEND_Msk       (0x1ul << HSUSBH_USBPCR1_SUSPEND_Pos)             /*!< HSUSBH_T::USBPCR1: SUSPEND Mask        */
644 
645 /**@}*/ /* HSUSBH_CONST */
646 /**@}*/ /* end of HSUSBH register group */
647 /**@}*/ /* end of REGISTER group */
648 
649 #if defined ( __CC_ARM   )
650 #pragma no_anon_unions
651 #endif
652 
653 #endif /* __HSUSBH_REG_H__ */
654