Loading...
Searching...
No Matches
Go to the documentation of this file.
29#define DWHCI_MAX_CHANNELS 16
31#define DWHCI_DATA_FIFO_SIZE 0x1000
36#define DWHCI_CORE_OTG_CTRL (ARM_USB_CORE_BASE + 0x000)
37 #define DWHCI_CORE_OTG_CTRL_HST_SET_HNP_EN (1 << 10)
38#define DWHCI_CORE_OTG_INT (ARM_USB_CORE_BASE + 0x004)
39#define DWHCI_CORE_AHB_CFG (ARM_USB_CORE_BASE + 0x008)
40 #define DWHCI_CORE_AHB_CFG_GLOBALINT_MASK (1 << 0)
41 #define DWHCI_CORE_AHB_CFG_MAX_AXI_BURST__SHIFT 1
42 #define DWHCI_CORE_AHB_CFG_MAX_AXI_BURST__MASK (3 << 1)
43 #define DWHCI_CORE_AHB_CFG_WAIT_AXI_WRITES (1 << 4)
44 #define DWHCI_CORE_AHB_CFG_DMAENABLE (1 << 5)
45 #define DWHCI_CORE_AHB_CFG_AHB_SINGLE (1 << 23)
46#define DWHCI_CORE_USB_CFG (ARM_USB_CORE_BASE + 0x00C)
47 #define DWHCI_CORE_USB_CFG_PHYIF (1 << 3)
48 #define DWHCI_CORE_USB_CFG_ULPI_UTMI_SEL (1 << 4)
49 #define DWHCI_CORE_USB_CFG_SRP_CAPABLE (1 << 8)
50 #define DWHCI_CORE_USB_CFG_HNP_CAPABLE (1 << 9)
51 #define DWHCI_CORE_USB_CFG_ULPI_FSLS (1 << 17)
52 #define DWHCI_CORE_USB_CFG_ULPI_CLK_SUS_M (1 << 19)
53 #define DWHCI_CORE_USB_CFG_ULPI_EXT_VBUS_DRV (1 << 20)
54 #define DWHCI_CORE_USB_CFG_TERM_SEL_DL_PULSE (1 << 22)
55#define DWHCI_CORE_RESET (ARM_USB_CORE_BASE + 0x010)
56 #define DWHCI_CORE_RESET_SOFT_RESET (1 << 0)
57 #define DWHCI_CORE_RESET_RX_FIFO_FLUSH (1 << 4)
58 #define DWHCI_CORE_RESET_TX_FIFO_FLUSH (1 << 5)
59 #define DWHCI_CORE_RESET_TX_FIFO_NUM__SHIFT 6
60 #define DWHCI_CORE_RESET_TX_FIFO_NUM__MASK (0x1F << 6)
61 #define DWHCI_CORE_RESET_AHB_IDLE (1 << 31)
62#define DWHCI_CORE_INT_STAT (ARM_USB_CORE_BASE + 0x014)
63 #define DWHCI_CORE_INT_STAT_SOF_INTR (1 << 3)
64 #define DWHCI_CORE_INT_STAT_PORT_INTR (1 << 24)
65 #define DWHCI_CORE_INT_STAT_HC_INTR (1 << 25)
66#define DWHCI_CORE_INT_MASK (ARM_USB_CORE_BASE + 0x018)
67 #define DWHCI_CORE_INT_MASK_MODE_MISMATCH (1 << 1)
68 #define DWHCI_CORE_INT_MASK_SOF_INTR (1 << 3)
69 #define DWHCI_CORE_INT_MASK_RX_STS_Q_LVL (1 << 4)
70 #define DWHCI_CORE_INT_MASK_USB_SUSPEND (1 << 11)
71 #define DWHCI_CORE_INT_MASK_PORT_INTR (1 << 24)
72 #define DWHCI_CORE_INT_MASK_HC_INTR (1 << 25)
73 #define DWHCI_CORE_INT_MASK_CON_ID_STS_CHNG (1 << 28)
74 #define DWHCI_CORE_INT_MASK_DISCONNECT (1 << 29)
75 #define DWHCI_CORE_INT_MASK_SESS_REQ_INTR (1 << 30)
76 #define DWHCI_CORE_INT_MASK_WKUP_INTR (1 << 31)
77#define DWHCI_CORE_RX_STAT_RD (ARM_USB_CORE_BASE + 0x01C)
78#define DWHCI_CORE_RX_STAT_POP (ARM_USB_CORE_BASE + 0x020)
80 #define DWHCI_CORE_RX_STAT_CHAN_NUMBER__MASK 0xF
81 #define DWHCI_CORE_RX_STAT_BYTE_COUNT__SHIFT 4
82 #define DWHCI_CORE_RX_STAT_BYTE_COUNT__MASK (0x7FF << 4)
83 #define DWHCI_CORE_RX_STAT_PACKET_STATUS__SHIFT 17
84 #define DWHCI_CORE_RX_STAT_PACKET_STATUS__MASK (0xF << 17)
85 #define DWHCI_CORE_RX_STAT_PACKET_STATUS_IN 2
86 #define DWHCI_CORE_RX_STAT_PACKET_STATUS_IN_XFER_COMP 3
87 #define DWHCI_CORE_RX_STAT_PACKET_STATUS_DATA_TOGGLE_ERR 5
88 #define DWHCI_CORE_RX_STAT_PACKET_STATUS_CHAN_HALTED 7
89#define DWHCI_CORE_RX_FIFO_SIZ (ARM_USB_CORE_BASE + 0x024)
90#define DWHCI_CORE_NPER_TX_FIFO_SIZ (ARM_USB_CORE_BASE + 0x028)
91#define DWHCI_CORE_NPER_TX_STAT (ARM_USB_CORE_BASE + 0x02C)
92 #define DWHCI_CORE_NPER_TX_STAT_QUEUE_SPACE_AVL(reg) (((reg) >> 16) & 0xFF)
93#define DWHCI_CORE_I2C_CTRL (ARM_USB_CORE_BASE + 0x030)
94#define DWHCI_CORE_PHY_VENDOR_CTRL (ARM_USB_CORE_BASE + 0x034)
95#define DWHCI_CORE_GPIO (ARM_USB_CORE_BASE + 0x038)
96#define DWHCI_CORE_USER_ID (ARM_USB_CORE_BASE + 0x03C)
97#define DWHCI_CORE_VENDOR_ID (ARM_USB_CORE_BASE + 0x040)
98#define DWHCI_CORE_HW_CFG1 (ARM_USB_CORE_BASE + 0x044)
99#define DWHCI_CORE_HW_CFG2 (ARM_USB_CORE_BASE + 0x048)
100 #define DWHCI_CORE_HW_CFG2_OP_MODE(reg) (((reg) >> 0) & 7)
101 #define DWHCI_CORE_HW_CFG2_ARCHITECTURE(reg) (((reg) >> 3) & 3)
102 #define DWHCI_CORE_HW_CFG2_HS_PHY_TYPE(reg) (((reg) >> 6) & 3)
103 #define DWHCI_CORE_HW_CFG2_HS_PHY_TYPE_NOT_SUPPORTED 0
104 #define DWHCI_CORE_HW_CFG2_HS_PHY_TYPE_UTMI 1
105 #define DWHCI_CORE_HW_CFG2_HS_PHY_TYPE_ULPI 2
106 #define DWHCI_CORE_HW_CFG2_HS_PHY_TYPE_UTMI_ULPI 3
107 #define DWHCI_CORE_HW_CFG2_FS_PHY_TYPE(reg) (((reg) >> 8) & 3)
108 #define DWHCI_CORE_HW_CFG2_FS_PHY_TYPE_DEDICATED 1
109 #define DWHCI_CORE_HW_CFG2_NUM_HOST_CHANNELS(reg) ((((reg) >> 14) & 0xF) + 1)
110#define DWHCI_CORE_HW_CFG3 (ARM_USB_CORE_BASE + 0x04C)
111 #define DWHCI_CORE_HW_CFG3_DFIFO_DEPTH(reg) (((reg) >> 16) & 0xFFFF)
112#define DWHCI_CORE_HW_CFG4 (ARM_USB_CORE_BASE + 0x050)
113 #define DWHCI_CORE_HW_CFG4_DED_FIFO_EN (1 << 25)
114 #define DWHCI_CORE_HW_CFG4_NUM_IN_EPS(reg) (((reg) >> 26) & 0xF)
115#define DWHCI_CORE_LPM_CFG (ARM_USB_CORE_BASE + 0x054)
116#define DWHCI_CORE_POWER_DOWN (ARM_USB_CORE_BASE + 0x058)
117#define DWHCI_CORE_DFIFO_CFG (ARM_USB_CORE_BASE + 0x05C)
118 #define DWHCI_CORE_DFIFO_CFG_EPINFO_BASE__SHIFT 16
119 #define DWHCI_CORE_DFIFO_CFG_EPINFO_BASE__MASK (0xFFFF << 16)
120#define DWHCI_CORE_ADP_CTRL (ARM_USB_CORE_BASE + 0x060)
122#define DWHCI_VENDOR_MDIO_CTRL (ARM_USB_CORE_BASE + 0x080)
123#define DWHCI_VENDOR_MDIO_DATA (ARM_USB_CORE_BASE + 0x084)
124#define DWHCI_VENDOR_VBUS_DRV (ARM_USB_CORE_BASE + 0x088)
126#define DWHCI_CORE_HOST_PER_TX_FIFO_SIZ (ARM_USB_CORE_BASE + 0x100)
128#define DWHCI_CORE_DEV_PER_TX_FIFO(fifo) (ARM_USB_CORE_BASE + 0x104 + (fifo)*4)
129#define DWHCI_CORE_DEV_TX_FIFO(fifo) (ARM_USB_CORE_BASE + 0x104 + (fifo)*4)
134#define DWHCI_HOST_CFG (ARM_USB_HOST_BASE + 0x000)
135 #define DWHCI_HOST_CFG_FSLS_PCLK_SEL__SHIFT 0
136 #define DWHCI_HOST_CFG_FSLS_PCLK_SEL__MASK (3 << 0)
137 #define DWHCI_HOST_CFG_FSLS_PCLK_SEL_30_60_MHZ 0
138 #define DWHCI_HOST_CFG_FSLS_PCLK_SEL_48_MHZ 1
139 #define DWHCI_HOST_CFG_FSLS_PCLK_SEL_6_MHZ 2
140#define DWHCI_HOST_FRM_INTERVAL (ARM_USB_HOST_BASE + 0x004)
141#define DWHCI_HOST_FRM_NUM (ARM_USB_HOST_BASE + 0x008)
142 #define DWHCI_HOST_FRM_NUM_NUMBER(reg) ((reg) & 0xFFFF)
143 #define DWHCI_MAX_FRAME_NUMBER 0x3FFF
144 #define DWHCI_HOST_FRM_NUM_REMAINING(reg) (((reg) >> 16) & 0xFFFF)
146#define DWHCI_HOST_PER_TX_FIFO_STAT (ARM_USB_HOST_BASE + 0x010)
147#define DWHCI_HOST_ALLCHAN_INT (ARM_USB_HOST_BASE + 0x014)
148#define DWHCI_HOST_ALLCHAN_INT_MASK (ARM_USB_HOST_BASE + 0x018)
149#define DWHCI_HOST_FRMLST_BASE (ARM_USB_HOST_BASE + 0x01C)
151#define DWHCI_HOST_PORT (ARM_USB_HOST_BASE + 0x040)
152 #define DWHCI_HOST_PORT_CONNECT (1 << 0)
153 #define DWHCI_HOST_PORT_CONNECT_CHANGED (1 << 1)
154 #define DWHCI_HOST_PORT_ENABLE (1 << 2)
155 #define DWHCI_HOST_PORT_ENABLE_CHANGED (1 << 3)
156 #define DWHCI_HOST_PORT_OVERCURRENT (1 << 4)
157 #define DWHCI_HOST_PORT_OVERCURRENT_CHANGED (1 << 5)
158 #define DWHCI_HOST_PORT_RESET (1 << 8)
159 #define DWHCI_HOST_PORT_POWER (1 << 12)
160 #define DWHCI_HOST_PORT_SPEED(reg) (((reg) >> 17) & 3)
161 #define DWHCI_HOST_PORT_SPEED_HIGH 0
162 #define DWHCI_HOST_PORT_SPEED_FULL 1
163 #define DWHCI_HOST_PORT_SPEED_LOW 2
164 #define DWHCI_HOST_PORT_DEFAULT_MASK ( DWHCI_HOST_PORT_CONNECT_CHANGED \
165 | DWHCI_HOST_PORT_ENABLE \
166 | DWHCI_HOST_PORT_ENABLE_CHANGED \
167 | DWHCI_HOST_PORT_OVERCURRENT_CHANGED)
170#define DWHCI_HOST_CHAN_CHARACTER(chan) (ARM_USB_HOST_BASE + 0x100 + (chan)*0x20)
171 #define DWHCI_HOST_CHAN_CHARACTER_MAX_PKT_SIZ__MASK 0x7FF
172 #define DWHCI_HOST_CHAN_CHARACTER_EP_NUMBER__SHIFT 11
173 #define DWHCI_HOST_CHAN_CHARACTER_EP_NUMBER__MASK (0xF << 11)
174 #define DWHCI_HOST_CHAN_CHARACTER_EP_DIRECTION_IN (1 << 15)
175 #define DWHCI_HOST_CHAN_CHARACTER_LOW_SPEED_DEVICE (1 << 17)
176 #define DWHCI_HOST_CHAN_CHARACTER_EP_TYPE__SHIFT 18
177 #define DWHCI_HOST_CHAN_CHARACTER_EP_TYPE__MASK (3 << 18)
178 #define DWHCI_HOST_CHAN_CHARACTER_EP_TYPE_CONTROL 0
179 #define DWHCI_HOST_CHAN_CHARACTER_EP_TYPE_ISO 1
180 #define DWHCI_HOST_CHAN_CHARACTER_EP_TYPE_BULK 2
181 #define DWHCI_HOST_CHAN_CHARACTER_EP_TYPE_INTERRUPT 3
182 #define DWHCI_HOST_CHAN_CHARACTER_MULTI_CNT__SHIFT 20
183 #define DWHCI_HOST_CHAN_CHARACTER_MULTI_CNT__MASK (3 << 20)
184 #define DWHCI_HOST_CHAN_CHARACTER_DEVICE_ADDRESS__SHIFT 22
185 #define DWHCI_HOST_CHAN_CHARACTER_DEVICE_ADDRESS__MASK (0x7F << 22)
186 #define DWHCI_HOST_CHAN_CHARACTER_PER_ODD_FRAME (1 << 29)
187 #define DWHCI_HOST_CHAN_CHARACTER_DISABLE (1 << 30)
188 #define DWHCI_HOST_CHAN_CHARACTER_ENABLE (1 << 31)
189#define DWHCI_HOST_CHAN_SPLIT_CTRL(chan) (ARM_USB_HOST_BASE + 0x104 + (chan)*0x20)
190 #define DWHCI_HOST_CHAN_SPLIT_CTRL_PORT_ADDRESS__MASK 0x7F
191 #define DWHCI_HOST_CHAN_SPLIT_CTRL_HUB_ADDRESS__SHIFT 7
192 #define DWHCI_HOST_CHAN_SPLIT_CTRL_HUB_ADDRESS__MASK (0x7F << 7)
193 #define DWHCI_HOST_CHAN_SPLIT_CTRL_XACT_POS__SHIFT 14
194 #define DWHCI_HOST_CHAN_SPLIT_CTRL_XACT_POS__MASK (3 << 14)
195 #define DWHCI_HOST_CHAN_SPLIT_CTRL_ALL 3
196 #define DWHCI_HOST_CHAN_SPLIT_CTRL_COMPLETE_SPLIT (1 << 16)
197 #define DWHCI_HOST_CHAN_SPLIT_CTRL_SPLIT_ENABLE (1 << 31)
198#define DWHCI_HOST_CHAN_INT(chan) (ARM_USB_HOST_BASE + 0x108 + (chan)*0x20)
199 #define DWHCI_HOST_CHAN_INT_XFER_COMPLETE (1 << 0)
200 #define DWHCI_HOST_CHAN_INT_HALTED (1 << 1)
201 #define DWHCI_HOST_CHAN_INT_AHB_ERROR (1 << 2)
202 #define DWHCI_HOST_CHAN_INT_STALL (1 << 3)
203 #define DWHCI_HOST_CHAN_INT_NAK (1 << 4)
204 #define DWHCI_HOST_CHAN_INT_ACK (1 << 5)
205 #define DWHCI_HOST_CHAN_INT_NYET (1 << 6)
206 #define DWHCI_HOST_CHAN_INT_XACT_ERROR (1 << 7)
207 #define DWHCI_HOST_CHAN_INT_BABBLE_ERROR (1 << 8)
208 #define DWHCI_HOST_CHAN_INT_FRAME_OVERRUN (1 << 9)
209 #define DWHCI_HOST_CHAN_INT_DATA_TOGGLE_ERROR (1 << 10)
210 #define DWHCI_HOST_CHAN_INT_ERROR_MASK ( DWHCI_HOST_CHAN_INT_AHB_ERROR \
211 | DWHCI_HOST_CHAN_INT_STALL \
212 | DWHCI_HOST_CHAN_INT_XACT_ERROR \
213 | DWHCI_HOST_CHAN_INT_BABBLE_ERROR \
214 | DWHCI_HOST_CHAN_INT_FRAME_OVERRUN \
215 | DWHCI_HOST_CHAN_INT_DATA_TOGGLE_ERROR)
216#define DWHCI_HOST_CHAN_INT_MASK(chan) (ARM_USB_HOST_BASE + 0x10C + (chan)*0x20)
217#define DWHCI_HOST_CHAN_XFER_SIZ(chan) (ARM_USB_HOST_BASE + 0x110 + (chan)*0x20)
218 #define DWHCI_HOST_CHAN_XFER_SIZ_BYTES__MASK 0x7FFFF
219 #define DWHCI_HOST_CHAN_XFER_SIZ_PACKETS__SHIFT 19
220 #define DWHCI_HOST_CHAN_XFER_SIZ_PACKETS__MASK (0x3FF << 19)
221 #define DWHCI_HOST_CHAN_XFER_SIZ_PACKETS(reg) (((reg) >> 19) & 0x3FF)
222 #define DWHCI_HOST_CHAN_XFER_SIZ_PID__SHIFT 29
223 #define DWHCI_HOST_CHAN_XFER_SIZ_PID__MASK (3 << 29)
224 #define DWHCI_HOST_CHAN_XFER_SIZ_PID(reg) (((reg) >> 29) & 3)
225 #define DWHCI_HOST_CHAN_XFER_SIZ_PID_DATA0 0
226 #define DWHCI_HOST_CHAN_XFER_SIZ_PID_DATA1 2
227 #define DWHCI_HOST_CHAN_XFER_SIZ_PID_DATA2 1
228 #define DWHCI_HOST_CHAN_XFER_SIZ_PID_MDATA 3
229 #define DWHCI_HOST_CHAN_XFER_SIZ_PID_SETUP 3
230#define DWHCI_HOST_CHAN_DMA_ADDR(chan) (ARM_USB_HOST_BASE + 0x114 + (chan)*0x20)
232#define DWHCI_HOST_CHAN_DMA_BUF(chan) (ARM_USB_HOST_BASE + 0x11C + (chan)*0x20)
237#define DWHCI_DATA_FIFO(chan) (ARM_USB_HOST_BASE + 0x1000 + (chan)*DWHCI_DATA_FIFO_SIZE)