1#ifndef HW_USB_EHCI_REGS_H
2#define HW_USB_EHCI_REGS_H
3
4
5#define CAPLENGTH 0x0000
6#define HCIVERSION 0x0002
7#define HCSPARAMS 0x0004
8#define HCCPARAMS 0x0008
9#define EECP HCCPARAMS + 1
10#define HCSPPORTROUTE1 0x000c
11#define HCSPPORTROUTE2 0x0010
12
13#define USBCMD 0x0000
14#define USBCMD_RUNSTOP (1 << 0)
15#define USBCMD_HCRESET (1 << 1)
16#define USBCMD_FLS (3 << 2)
17#define USBCMD_FLS_SH 2
18#define USBCMD_PSE (1 << 4)
19#define USBCMD_ASE (1 << 5)
20#define USBCMD_IAAD (1 << 6)
21#define USBCMD_LHCR (1 << 7)
22#define USBCMD_ASPMC (3 << 8)
23#define USBCMD_ASPME (1 << 11)
24#define USBCMD_ITC (0x7f << 16)
25#define USBCMD_ITC_SH 16
26
27#define USBSTS 0x0004
28#define USBSTS_RO_MASK 0x0000003f
29#define USBSTS_INT (1 << 0)
30#define USBSTS_ERRINT (1 << 1)
31#define USBSTS_PCD (1 << 2)
32#define USBSTS_FLR (1 << 3)
33#define USBSTS_HSE (1 << 4)
34#define USBSTS_IAA (1 << 5)
35#define USBSTS_HALT (1 << 12)
36#define USBSTS_REC (1 << 13)
37#define USBSTS_PSS (1 << 14)
38#define USBSTS_ASS (1 << 15)
39
40
41
42
43
44#define USBINTR 0x0008
45#define USBINTR_MASK 0x0000003f
46
47#define FRINDEX 0x000c
48#define CTRLDSSEGMENT 0x0010
49#define PERIODICLISTBASE 0x0014
50#define ASYNCLISTADDR 0x0018
51#define ASYNCLISTADDR_MASK 0xffffffe0
52
53#define CONFIGFLAG 0x0040
54
55
56
57
58
59#define PORTSC_RO_MASK 0x007001c0
60#define PORTSC_RWC_MASK 0x0000002a
61#define PORTSC_WKOC_E (1 << 22)
62#define PORTSC_WKDS_E (1 << 21)
63#define PORTSC_WKCN_E (1 << 20)
64#define PORTSC_PTC (15 << 16)
65#define PORTSC_PTC_SH 16
66#define PORTSC_PIC (3 << 14)
67#define PORTSC_PIC_SH 14
68#define PORTSC_POWNER (1 << 13)
69#define PORTSC_PPOWER (1 << 12)
70#define PORTSC_LINESTAT (3 << 10)
71#define PORTSC_LINESTAT_SH 10
72#define PORTSC_PRESET (1 << 8)
73#define PORTSC_SUSPEND (1 << 7)
74#define PORTSC_FPRES (1 << 6)
75#define PORTSC_OCC (1 << 5)
76#define PORTSC_OCA (1 << 4)
77#define PORTSC_PEDC (1 << 3)
78#define PORTSC_PED (1 << 2)
79#define PORTSC_CSC (1 << 1)
80#define PORTSC_CONNECT (1 << 0)
81
82#endif
83