0001
0002
0003
0004
0005
0006 #ifndef __LINUX_USB_EHCI_DEF_H
0007 #define __LINUX_USB_EHCI_DEF_H
0008
0009 #include <linux/usb/ehci-dbgp.h>
0010
0011
0012
0013
0014 struct ehci_caps {
0015
0016
0017
0018
0019
0020
0021 u32 hc_capbase;
0022 #define HC_LENGTH(ehci, p) (0x00ff&((p) >> \
0023 (ehci_big_endian_capbase(ehci) ? 24 : 0)))
0024 #define HC_VERSION(ehci, p) (0xffff&((p) >> \
0025 (ehci_big_endian_capbase(ehci) ? 0 : 16)))
0026 u32 hcs_params;
0027 #define HCS_DEBUG_PORT(p) (((p)>>20)&0xf)
0028 #define HCS_INDICATOR(p) ((p)&(1 << 16))
0029 #define HCS_N_CC(p) (((p)>>12)&0xf)
0030 #define HCS_N_PCC(p) (((p)>>8)&0xf)
0031 #define HCS_PORTROUTED(p) ((p)&(1 << 7))
0032 #define HCS_PPC(p) ((p)&(1 << 4))
0033 #define HCS_N_PORTS(p) (((p)>>0)&0xf)
0034 #define HCS_N_PORTS_MAX 15
0035
0036 u32 hcc_params;
0037
0038 #define HCC_32FRAME_PERIODIC_LIST(p) ((p)&(1 << 19))
0039 #define HCC_PER_PORT_CHANGE_EVENT(p) ((p)&(1 << 18))
0040 #define HCC_LPM(p) ((p)&(1 << 17))
0041 #define HCC_HW_PREFETCH(p) ((p)&(1 << 16))
0042
0043 #define HCC_EXT_CAPS(p) (((p)>>8)&0xff)
0044 #define HCC_ISOC_CACHE(p) ((p)&(1 << 7))
0045 #define HCC_ISOC_THRES(p) (((p)>>4)&0x7)
0046 #define HCC_CANPARK(p) ((p)&(1 << 2))
0047 #define HCC_PGM_FRAMELISTLEN(p) ((p)&(1 << 1))
0048 #define HCC_64BIT_ADDR(p) ((p)&(1))
0049 u8 portroute[8];
0050 };
0051
0052
0053
0054 struct ehci_regs {
0055
0056
0057 u32 command;
0058
0059
0060 #define CMD_HIRD (0xf<<24)
0061 #define CMD_PPCEE (1<<15)
0062 #define CMD_FSP (1<<14)
0063 #define CMD_ASPE (1<<13)
0064 #define CMD_PSPE (1<<12)
0065
0066 #define CMD_PARK (1<<11)
0067 #define CMD_PARK_CNT(c) (((c)>>8)&3)
0068 #define CMD_LRESET (1<<7)
0069 #define CMD_IAAD (1<<6)
0070 #define CMD_ASE (1<<5)
0071 #define CMD_PSE (1<<4)
0072
0073 #define CMD_RESET (1<<1)
0074 #define CMD_RUN (1<<0)
0075
0076
0077 u32 status;
0078 #define STS_PPCE_MASK (0xff<<16)
0079 #define STS_ASS (1<<15)
0080 #define STS_PSS (1<<14)
0081 #define STS_RECL (1<<13)
0082 #define STS_HALT (1<<12)
0083
0084
0085 #define STS_IAA (1<<5)
0086 #define STS_FATAL (1<<4)
0087 #define STS_FLR (1<<3)
0088 #define STS_PCD (1<<2)
0089 #define STS_ERR (1<<1)
0090 #define STS_INT (1<<0)
0091
0092
0093 u32 intr_enable;
0094
0095
0096 u32 frame_index;
0097
0098 u32 segment;
0099
0100 u32 frame_list;
0101
0102 u32 async_next;
0103
0104 u32 reserved1[2];
0105
0106
0107 u32 txfill_tuning;
0108 #define TXFIFO_DEFAULT (8<<16)
0109
0110 u32 reserved2[6];
0111
0112
0113 u32 configured_flag;
0114 #define FLAG_CF (1<<0)
0115
0116 union {
0117
0118 u32 port_status[HCS_N_PORTS_MAX];
0119
0120 #define PORTSC_SUSPEND_STS_ACK 0
0121 #define PORTSC_SUSPEND_STS_NYET 1
0122 #define PORTSC_SUSPEND_STS_STALL 2
0123 #define PORTSC_SUSPEND_STS_ERR 3
0124
0125 #define PORT_DEV_ADDR (0x7f<<25)
0126 #define PORT_SSTS (0x3<<23)
0127
0128 #define PORT_WKOC_E (1<<22)
0129 #define PORT_WKDISC_E (1<<21)
0130 #define PORT_WKCONN_E (1<<20)
0131
0132 #define PORT_TEST(x) (((x)&0xf)<<16)
0133 #define PORT_TEST_PKT PORT_TEST(0x4)
0134 #define PORT_TEST_FORCE PORT_TEST(0x5)
0135 #define PORT_LED_OFF (0<<14)
0136 #define PORT_LED_AMBER (1<<14)
0137 #define PORT_LED_GREEN (2<<14)
0138 #define PORT_LED_MASK (3<<14)
0139 #define PORT_OWNER (1<<13)
0140 #define PORT_POWER (1<<12)
0141 #define PORT_USB11(x) (((x)&(3<<10)) == (1<<10))
0142 #define PORT_LS_MASK (3<<10)
0143
0144 #define PORT_LPM (1<<9)
0145 #define PORT_RESET (1<<8)
0146 #define PORT_SUSPEND (1<<7)
0147 #define PORT_RESUME (1<<6)
0148 #define PORT_OCC (1<<5)
0149 #define PORT_OC (1<<4)
0150 #define PORT_PEC (1<<3)
0151 #define PORT_PE (1<<2)
0152 #define PORT_CSC (1<<1)
0153 #define PORT_CONNECT (1<<0)
0154 #define PORT_RWC_BITS (PORT_CSC | PORT_PEC | PORT_OCC)
0155 struct {
0156 u32 reserved3[9];
0157
0158 u32 usbmode;
0159 };
0160 #define USBMODE_SDIS (1<<3)
0161 #define USBMODE_BE (1<<2)
0162 #define USBMODE_CM_HC (3<<0)
0163 #define USBMODE_CM_IDLE (0<<0)
0164 };
0165
0166
0167
0168
0169
0170 union {
0171 struct {
0172 u32 reserved4;
0173
0174 u32 hostpc[HCS_N_PORTS_MAX];
0175 #define HOSTPC_PHCD (1<<22)
0176 #define HOSTPC_PSPD (3<<25)
0177 };
0178
0179
0180 u32 brcm_insnreg[4];
0181 };
0182
0183 u32 reserved5[2];
0184
0185
0186 u32 usbmode_ex;
0187 #define USBMODE_EX_VBPS (1<<5)
0188 #define USBMODE_EX_HC (3<<0)
0189 };
0190
0191 #endif