Complete raspi/raspi2 and Windows support fixes, ported from qemu-ar7
[qemu/ar7.git] / hw / usb / bcm2835_usb_regs.h
blob76f3219b54443d0a2364e0bdceaba6cfc44915a9
1 #ifndef BCM2835_USB_REGS_H
2 #define BCM2835_USB_REGS_H
4 #define __DWC_OTG_REGS_H__
5 #define DWC_GLBINTRMASK 0x0001
6 #define DWC_DMAENABLE 0x0020
7 #define DWC_NPTXEMPTYLVL_EMPTY 0x0080
8 #define DWC_NPTXEMPTYLVL_HALFEMPTY 0x0000
9 #define DWC_PTXEMPTYLVL_EMPTY 0x0100
10 #define DWC_PTXEMPTYLVL_HALFEMPTY 0x0000
11 #define DWC_SLAVE_ONLY_ARCH 0
12 #define DWC_EXT_DMA_ARCH 1
13 #define DWC_INT_DMA_ARCH 2
14 #define DWC_MODE_HNP_SRP_CAPABLE 0
15 #define DWC_MODE_SRP_ONLY_CAPABLE 1
16 #define DWC_MODE_NO_HNP_SRP_CAPABLE 2
17 #define DWC_MODE_SRP_CAPABLE_DEVICE 3
18 #define DWC_MODE_NO_SRP_CAPABLE_DEVICE 4
19 #define DWC_MODE_SRP_CAPABLE_HOST 5
20 #define DWC_MODE_NO_SRP_CAPABLE_HOST 6
22 /* union gotgctl_data */
23 #define gotgctl_sesreqscs (1 << 0)
24 #define gotgctl_sesreq (1 << 1)
25 #define gotgctl_vbvalidoven (1 << 2)
26 #define gotgctl_vbvalidovval (1 << 3)
27 #define gotgctl_avalidoven (1 << 4)
28 #define gotgctl_avalidovval (1 << 5)
29 #define gotgctl_bvalidoven (1 << 6)
30 #define gotgctl_bvalidovval (1 << 7)
31 #define gotgctl_hstnegscs (1 << 8)
32 #define gotgctl_hnpreq (1 << 9)
33 #define gotgctl_hstsethnpen (1 << 10)
34 #define gotgctl_devhnpen (1 << 11)
35 #define gotgctl_reserved12_15_shift (12)
36 #define gotgctl_reserved12_15_mask (0xf)
37 #define gotgctl_conidsts (1 << 16)
38 #define gotgctl_dbnctime (1 << 17)
39 #define gotgctl_asesvld (1 << 18)
40 #define gotgctl_bsesvld (1 << 19)
41 #define gotgctl_otgver (1 << 20)
42 #define gotgctl_reserved1 (1 << 21)
43 #define gotgctl_multvalidbc_shift (22)
44 #define gotgctl_multvalidbc_mask (0x1f)
45 #define gotgctl_chirpen (1 << 27)
46 #define gotgctl_reserved28_31_shift (28)
47 #define gotgctl_reserved28_31_mask (0xf)
49 /* union gotgint_data */
50 #define gotgint_reserved0_1_shift (0)
51 #define gotgint_reserved0_1_mask (0x3)
52 #define gotgint_sesenddet (1 << 2)
53 #define gotgint_reserved3_7_shift (3)
54 #define gotgint_reserved3_7_mask (0x1f)
55 #define gotgint_sesreqsucstschng (1 << 8)
56 #define gotgint_hstnegsucstschng (1 << 9)
57 #define gotgint_reserved10_16_shift (10)
58 #define gotgint_reserved10_16_mask (0x7f)
59 #define gotgint_hstnegdet (1 << 17)
60 #define gotgint_adevtoutchng (1 << 18)
61 #define gotgint_debdone (1 << 19)
62 #define gotgint_mvic (1 << 20)
63 #define gotgint_reserved31_21_shift (21)
64 #define gotgint_reserved31_21_mask (0x7ff)
66 /* union gahbcfg_data */
67 #define gahbcfg_glblintrmsk (1 << 0)
68 #define DWC_GAHBCFG_GLBINT_ENABLE 1
69 #define gahbcfg_hburstlen_shift (1)
70 #define gahbcfg_hburstlen_mask (0xf)
71 #define DWC_GAHBCFG_INT_DMA_BURST_SINGLE 0
72 #define DWC_GAHBCFG_INT_DMA_BURST_INCR 1
73 #define DWC_GAHBCFG_INT_DMA_BURST_INCR4 3
74 #define DWC_GAHBCFG_INT_DMA_BURST_INCR8 5
75 #define DWC_GAHBCFG_INT_DMA_BURST_INCR16 7
76 #define gahbcfg_dmaenable (1 << 5)
77 #define DWC_GAHBCFG_DMAENABLE 1
78 #define gahbcfg_reserved (1 << 6)
79 #define gahbcfg_nptxfemplvl_txfemplvl (1 << 7)
80 #define gahbcfg_ptxfemplvl (1 << 8)
81 #define DWC_GAHBCFG_TXFEMPTYLVL_EMPTY 1
82 #define DWC_GAHBCFG_TXFEMPTYLVL_HALFEMPTY 0
83 #define gahbcfg_reserved9_20_shift (9)
84 #define gahbcfg_reserved9_20_mask (0xfff)
85 #define gahbcfg_remmemsupp (1 << 21)
86 #define gahbcfg_notialldmawrit (1 << 22)
87 #define gahbcfg_ahbsingle (1 << 23)
88 #define gahbcfg_reserved24_31_shift (24)
89 #define gahbcfg_reserved24_31_mask (0xff)
91 /* union gusbcfg_data */
92 #define gusbcfg_toutcal_shift (0)
93 #define gusbcfg_toutcal_mask (0x7)
94 #define gusbcfg_phyif (1 << 3)
95 #define gusbcfg_ulpi_utmi_sel (1 << 4)
96 #define gusbcfg_fsintf (1 << 5)
97 #define gusbcfg_physel (1 << 6)
98 #define gusbcfg_ddrsel (1 << 7)
99 #define gusbcfg_srpcap (1 << 8)
100 #define gusbcfg_hnpcap (1 << 9)
101 #define gusbcfg_usbtrdtim_shift (10)
102 #define gusbcfg_usbtrdtim_mask (0xf)
103 #define gusbcfg_reserved1 (1 << 14)
104 #define gusbcfg_phylpwrclksel (1 << 15)
105 #define gusbcfg_otgutmifssel (1 << 16)
106 #define gusbcfg_ulpi_fsls (1 << 17)
107 #define gusbcfg_ulpi_auto_res (1 << 18)
108 #define gusbcfg_ulpi_clk_sus_m (1 << 19)
109 #define gusbcfg_ulpi_ext_vbus_drv (1 << 20)
110 #define gusbcfg_ulpi_int_vbus_indicator (1 << 21)
111 #define gusbcfg_term_sel_dl_pulse (1 << 22)
112 #define gusbcfg_indicator_complement (1 << 23)
113 #define gusbcfg_indicator_pass_through (1 << 24)
114 #define gusbcfg_ulpi_int_prot_dis (1 << 25)
115 #define gusbcfg_ic_usb_cap (1 << 26)
116 #define gusbcfg_ic_traffic_pull_remove (1 << 27)
117 #define gusbcfg_tx_end_delay (1 << 28)
118 #define gusbcfg_force_host_mode (1 << 29)
119 #define gusbcfg_force_dev_mode (1 << 30)
120 #define gusbcfg_reserved31 (1 << 31)
122 /* union grstctl_data */
123 #define grstctl_csftrst (1 << 0)
124 #define grstctl_hsftrst (1 << 1)
125 #define grstctl_hstfrm (1 << 2)
126 #define grstctl_intknqflsh (1 << 3)
127 #define grstctl_rxfflsh (1 << 4)
128 #define grstctl_txfflsh (1 << 5)
129 #define grstctl_txfnum_shift (6)
130 #define grstctl_txfnum_mask (0x1f)
131 #define grstctl_reserved11_29_shift (11)
132 #define grstctl_reserved11_29_mask (0x7ffff)
133 #define grstctl_dmareq (1 << 30)
134 #define grstctl_ahbidle (1 << 31)
136 /* union gintmsk_data */
137 #define gintmsk_reserved0 (1 << 0)
138 #define gintmsk_modemismatch (1 << 1)
139 #define gintmsk_otgintr (1 << 2)
140 #define gintmsk_sofintr (1 << 3)
141 #define gintmsk_rxstsqlvl (1 << 4)
142 #define gintmsk_nptxfempty (1 << 5)
143 #define gintmsk_ginnakeff (1 << 6)
144 #define gintmsk_goutnakeff (1 << 7)
145 #define gintmsk_ulpickint (1 << 8)
146 #define gintmsk_i2cintr (1 << 9)
147 #define gintmsk_erlysuspend (1 << 10)
148 #define gintmsk_usbsuspend (1 << 11)
149 #define gintmsk_usbreset (1 << 12)
150 #define gintmsk_enumdone (1 << 13)
151 #define gintmsk_isooutdrop (1 << 14)
152 #define gintmsk_eopframe (1 << 15)
153 #define gintmsk_restoredone (1 << 16)
154 #define gintmsk_epmismatch (1 << 17)
155 #define gintmsk_inepintr (1 << 18)
156 #define gintmsk_outepintr (1 << 19)
157 #define gintmsk_incomplisoin (1 << 20)
158 #define gintmsk_incomplisoout (1 << 21)
159 #define gintmsk_fetsusp (1 << 22)
160 #define gintmsk_resetdet (1 << 23)
161 #define gintmsk_portintr (1 << 24)
162 #define gintmsk_hcintr (1 << 25)
163 #define gintmsk_ptxfempty (1 << 26)
164 #define gintmsk_lpmtranrcvd (1 << 27)
165 #define gintmsk_conidstschng (1 << 28)
166 #define gintmsk_disconnect (1 << 29)
167 #define gintmsk_sessreqintr (1 << 30)
168 #define gintmsk_wkupintr (1 << 31)
170 /* union gintsts_data */
171 #define DWC_SOF_INTR_MASK 0x0008
172 #define DWC_HOST_MODE 1
173 #define gintsts_curmode (1 << 0)
174 #define gintsts_modemismatch (1 << 1)
175 #define gintsts_otgintr (1 << 2)
176 #define gintsts_sofintr (1 << 3)
177 #define gintsts_rxstsqlvl (1 << 4)
178 #define gintsts_nptxfempty (1 << 5)
179 #define gintsts_ginnakeff (1 << 6)
180 #define gintsts_goutnakeff (1 << 7)
181 #define gintsts_ulpickint (1 << 8)
182 #define gintsts_i2cintr (1 << 9)
183 #define gintsts_erlysuspend (1 << 10)
184 #define gintsts_usbsuspend (1 << 11)
185 #define gintsts_usbreset (1 << 12)
186 #define gintsts_enumdone (1 << 13)
187 #define gintsts_isooutdrop (1 << 14)
188 #define gintsts_eopframe (1 << 15)
189 #define gintsts_restoredone (1 << 16)
190 #define gintsts_epmismatch (1 << 17)
191 #define gintsts_inepint (1 << 18)
192 #define gintsts_outepintr (1 << 19)
193 #define gintsts_incomplisoin (1 << 20)
194 #define gintsts_incomplisoout (1 << 21)
195 #define gintsts_fetsusp (1 << 22)
196 #define gintsts_resetdet (1 << 23)
197 #define gintsts_portintr (1 << 24)
198 #define gintsts_hcintr (1 << 25)
199 #define gintsts_ptxfempty (1 << 26)
200 #define gintsts_lpmtranrcvd (1 << 27)
201 #define gintsts_conidstschng (1 << 28)
202 #define gintsts_disconnect (1 << 29)
203 #define gintsts_sessreqintr (1 << 30)
204 #define gintsts_wkupintr (1 << 31)
206 /* union device_grxsts_data */
207 #define device_grxsts_epnum_shift (0)
208 #define device_grxsts_epnum_mask (0xf)
209 #define device_grxsts_bcnt_shift (4)
210 #define device_grxsts_bcnt_mask (0x7ff)
211 #define device_grxsts_dpid_shift (15)
212 #define device_grxsts_dpid_mask (0x3)
213 #define DWC_STS_DATA_UPDT 0x2 /* OUT Data Packet */
214 #define DWC_STS_XFER_COMP 0x3 /* OUT Data Transfer Complete */
215 #define DWC_DSTS_GOUT_NAK 0x1 /* Global OUT NAK */
216 #define DWC_DSTS_SETUP_COMP 0x4 /* Setup Phase Complete */
217 #define DWC_DSTS_SETUP_UPDT 0x6 /* SETUP Packet */
218 #define device_grxsts_pktsts_shift (17)
219 #define device_grxsts_pktsts_mask (0xf)
220 #define device_grxsts_fn_shift (21)
221 #define device_grxsts_fn_mask (0xf)
222 #define device_grxsts_reserved25_31_shift (25)
223 #define device_grxsts_reserved25_31_mask (0x7f)
225 /* union host_grxsts_data */
226 #define host_grxsts_chnum_shift (0)
227 #define host_grxsts_chnum_mask (0xf)
228 #define host_grxsts_bcnt_shift (4)
229 #define host_grxsts_bcnt_mask (0x7ff)
230 #define host_grxsts_dpid_shift (15)
231 #define host_grxsts_dpid_mask (0x3)
232 #define host_grxsts_pktsts_shift (17)
233 #define host_grxsts_pktsts_mask (0xf)
234 #define DWC_GRXSTS_PKTSTS_IN 0x2
235 #define DWC_GRXSTS_PKTSTS_IN_XFER_COMP 0x3
236 #define DWC_GRXSTS_PKTSTS_DATA_TOGGLE_ERR 0x5
237 #define DWC_GRXSTS_PKTSTS_CH_HALTED 0x7
238 #define host_grxsts_reserved21_31_shift (21)
239 #define host_grxsts_reserved21_31_mask (0x7ff)
241 /* union fifosize_data */
242 #define fifosize_startaddr_shift (0)
243 #define fifosize_startaddr_mask (0xffff)
244 #define fifosize_depth_shift (16)
245 #define fifosize_depth_mask (0xffff)
247 /* union gnptxsts_data */
248 #define gnptxsts_nptxfspcavail_shift (0)
249 #define gnptxsts_nptxfspcavail_mask (0xffff)
250 #define gnptxsts_nptxqspcavail_shift (16)
251 #define gnptxsts_nptxqspcavail_mask (0xff)
252 #define gnptxsts_nptxqtop_terminate (1 << 24)
253 #define gnptxsts_nptxqtop_token_shift (25)
254 #define gnptxsts_nptxqtop_token_mask (0x3)
255 #define gnptxsts_nptxqtop_chnep_shift (27)
256 #define gnptxsts_nptxqtop_chnep_mask (0xf)
257 #define gnptxsts_reserved (1 << 31)
259 /* union dtxfsts_data */
260 #define dtxfsts_txfspcavail_shift (0)
261 #define dtxfsts_txfspcavail_mask (0xffff)
262 #define dtxfsts_reserved_shift (16)
263 #define dtxfsts_reserved_mask (0xffff)
265 /* union gi2cctl_data */
266 #define gi2cctl_rwdata_shift (0)
267 #define gi2cctl_rwdata_mask (0xff)
268 #define gi2cctl_regaddr_shift (8)
269 #define gi2cctl_regaddr_mask (0xff)
270 #define gi2cctl_addr_shift (16)
271 #define gi2cctl_addr_mask (0x7f)
272 #define gi2cctl_i2cen (1 << 23)
273 #define gi2cctl_ack (1 << 24)
274 #define gi2cctl_i2csuspctl (1 << 25)
275 #define gi2cctl_i2cdevaddr_shift (26)
276 #define gi2cctl_i2cdevaddr_mask (0x3)
277 #define gi2cctl_i2cdatse0 (1 << 28)
278 #define gi2cctl_reserved (1 << 29)
279 #define gi2cctl_rw (1 << 30)
280 #define gi2cctl_bsydne (1 << 31)
282 /* union gpvndctl_data */
283 #define gpvndctl_regdata_shift (0)
284 #define gpvndctl_regdata_mask (0xff)
285 #define gpvndctl_vctrl_shift (8)
286 #define gpvndctl_vctrl_mask (0xff)
287 #define gpvndctl_regaddr16_21_shift (16)
288 #define gpvndctl_regaddr16_21_mask (0x3f)
289 #define gpvndctl_regwr (1 << 22)
290 #define gpvndctl_reserved23_24_shift (23)
291 #define gpvndctl_reserved23_24_mask (0x3)
292 #define gpvndctl_newregreq (1 << 25)
293 #define gpvndctl_vstsbsy (1 << 26)
294 #define gpvndctl_vstsdone (1 << 27)
295 #define gpvndctl_reserved28_30_shift (28)
296 #define gpvndctl_reserved28_30_mask (0x7)
297 #define gpvndctl_disulpidrvr (1 << 31)
299 /* union ggpio_data */
300 #define ggpio_gpi_shift (0)
301 #define ggpio_gpi_mask (0xffff)
302 #define ggpio_gpo_shift (16)
303 #define ggpio_gpo_mask (0xffff)
305 /* union guid_data */
306 #define guid_rwdata_shift (0)
307 #define guid_rwdata_mask (0xffffffff)
309 /* union gsnpsid_data */
310 #define gsnpsid_rwdata_shift (0)
311 #define gsnpsid_rwdata_mask (0xffffffff)
313 /* union hwcfg1_data */
314 #define hwcfg1_ep_dir0_shift (0)
315 #define hwcfg1_ep_dir0_mask (0x3)
316 #define hwcfg1_ep_dir1_shift (2)
317 #define hwcfg1_ep_dir1_mask (0x3)
318 #define hwcfg1_ep_dir2_shift (4)
319 #define hwcfg1_ep_dir2_mask (0x3)
320 #define hwcfg1_ep_dir3_shift (6)
321 #define hwcfg1_ep_dir3_mask (0x3)
322 #define hwcfg1_ep_dir4_shift (8)
323 #define hwcfg1_ep_dir4_mask (0x3)
324 #define hwcfg1_ep_dir5_shift (10)
325 #define hwcfg1_ep_dir5_mask (0x3)
326 #define hwcfg1_ep_dir6_shift (12)
327 #define hwcfg1_ep_dir6_mask (0x3)
328 #define hwcfg1_ep_dir7_shift (14)
329 #define hwcfg1_ep_dir7_mask (0x3)
330 #define hwcfg1_ep_dir8_shift (16)
331 #define hwcfg1_ep_dir8_mask (0x3)
332 #define hwcfg1_ep_dir9_shift (18)
333 #define hwcfg1_ep_dir9_mask (0x3)
334 #define hwcfg1_ep_dir10_shift (20)
335 #define hwcfg1_ep_dir10_mask (0x3)
336 #define hwcfg1_ep_dir11_shift (22)
337 #define hwcfg1_ep_dir11_mask (0x3)
338 #define hwcfg1_ep_dir12_shift (24)
339 #define hwcfg1_ep_dir12_mask (0x3)
340 #define hwcfg1_ep_dir13_shift (26)
341 #define hwcfg1_ep_dir13_mask (0x3)
342 #define hwcfg1_ep_dir14_shift (28)
343 #define hwcfg1_ep_dir14_mask (0x3)
344 #define hwcfg1_ep_dir15_shift (30)
345 #define hwcfg1_ep_dir15_mask (0x3)
347 /* union hwcfg2_data */
348 #define hwcfg2_op_mode_shift (0)
349 #define hwcfg2_op_mode_mask (0x7)
350 #define DWC_HWCFG2_OP_MODE_HNP_SRP_CAPABLE_OTG 0
351 #define DWC_HWCFG2_OP_MODE_SRP_ONLY_CAPABLE_OTG 1
352 #define DWC_HWCFG2_OP_MODE_NO_HNP_SRP_CAPABLE_OTG 2
353 #define DWC_HWCFG2_OP_MODE_SRP_CAPABLE_DEVICE 3
354 #define DWC_HWCFG2_OP_MODE_NO_SRP_CAPABLE_DEVICE 4
355 #define DWC_HWCFG2_OP_MODE_SRP_CAPABLE_HOST 5
356 #define DWC_HWCFG2_OP_MODE_NO_SRP_CAPABLE_HOST 6
357 #define hwcfg2_architecture_shift (3)
358 #define hwcfg2_architecture_mask (0x3)
359 #define hwcfg2_point2point (1 << 5)
360 #define hwcfg2_hs_phy_type_shift (6)
361 #define hwcfg2_hs_phy_type_mask (0x3)
362 #define DWC_HWCFG2_HS_PHY_TYPE_NOT_SUPPORTED 0
363 #define DWC_HWCFG2_HS_PHY_TYPE_UTMI 1
364 #define DWC_HWCFG2_HS_PHY_TYPE_ULPI 2
365 #define DWC_HWCFG2_HS_PHY_TYPE_UTMI_ULPI 3
366 #define hwcfg2_fs_phy_type_shift (8)
367 #define hwcfg2_fs_phy_type_mask (0x3)
368 #define hwcfg2_num_dev_ep_shift (10)
369 #define hwcfg2_num_dev_ep_mask (0xf)
370 #define hwcfg2_num_host_chan_shift (14)
371 #define hwcfg2_num_host_chan_mask (0xf)
372 #define hwcfg2_perio_ep_supported (1 << 18)
373 #define hwcfg2_dynamic_fifo (1 << 19)
374 #define hwcfg2_multi_proc_int (1 << 20)
375 #define hwcfg2_reserved21 (1 << 21)
376 #define hwcfg2_nonperio_tx_q_depth_shift (22)
377 #define hwcfg2_nonperio_tx_q_depth_mask (0x3)
378 #define hwcfg2_host_perio_tx_q_depth_shift (24)
379 #define hwcfg2_host_perio_tx_q_depth_mask (0x3)
380 #define hwcfg2_dev_token_q_depth_shift (26)
381 #define hwcfg2_dev_token_q_depth_mask (0x1f)
382 #define hwcfg2_otg_enable_ic_usb (1 << 31)
384 /* union hwcfg3_data */
385 #define hwcfg3_xfer_size_cntr_width_shift (0)
386 #define hwcfg3_xfer_size_cntr_width_mask (0xf)
387 #define hwcfg3_packet_size_cntr_width_shift (4)
388 #define hwcfg3_packet_size_cntr_width_mask (0x7)
389 #define hwcfg3_otg_func (1 << 7)
390 #define hwcfg3_i2c (1 << 8)
391 #define hwcfg3_vendor_ctrl_if (1 << 9)
392 #define hwcfg3_optional_features (1 << 10)
393 #define hwcfg3_synch_reset_type (1 << 11)
394 #define hwcfg3_adp_supp (1 << 12)
395 #define hwcfg3_otg_enable_hsic (1 << 13)
396 #define hwcfg3_bc_support (1 << 14)
397 #define hwcfg3_otg_lpm_en (1 << 15)
398 #define hwcfg3_dfifo_depth_shift (16)
399 #define hwcfg3_dfifo_depth_mask (0xffff)
401 /* union hwcfg4_data */
402 #define hwcfg4_num_dev_perio_in_ep_shift (0)
403 #define hwcfg4_num_dev_perio_in_ep_mask (0xf)
404 #define hwcfg4_power_optimiz (1 << 4)
405 #define hwcfg4_min_ahb_freq (1 << 5)
406 #define hwcfg4_hiber (1 << 6)
407 #define hwcfg4_xhiber (1 << 7)
408 #define hwcfg4_reserved_shift (8)
409 #define hwcfg4_reserved_mask (0x3f)
410 #define hwcfg4_utmi_phy_data_width_shift (14)
411 #define hwcfg4_utmi_phy_data_width_mask (0x3)
412 #define hwcfg4_num_dev_mode_ctrl_ep_shift (16)
413 #define hwcfg4_num_dev_mode_ctrl_ep_mask (0xf)
414 #define hwcfg4_iddig_filt_en (1 << 20)
415 #define hwcfg4_vbus_valid_filt_en (1 << 21)
416 #define hwcfg4_a_valid_filt_en (1 << 22)
417 #define hwcfg4_b_valid_filt_en (1 << 23)
418 #define hwcfg4_session_end_filt_en (1 << 24)
419 #define hwcfg4_ded_fifo_en (1 << 25)
420 #define hwcfg4_num_in_eps_shift (26)
421 #define hwcfg4_num_in_eps_mask (0xf)
422 #define hwcfg4_desc_dma (1 << 30)
423 #define hwcfg4_desc_dma_dyn (1 << 31)
425 /* union glpmctl_data */
426 #define glpmctl_lpm_cap_en (1 << 0)
427 #define glpmctl_appl_resp (1 << 1)
428 #define glpmctl_hird_shift (2)
429 #define glpmctl_hird_mask (0xf)
430 #define glpmctl_rem_wkup_en (1 << 6)
431 #define glpmctl_en_utmi_sleep (1 << 7)
432 #define glpmctl_hird_thres_shift (8)
433 #define glpmctl_hird_thres_mask (0x1f)
434 #define glpmctl_lpm_resp_shift (13)
435 #define glpmctl_lpm_resp_mask (0x3)
436 #define glpmctl_prt_sleep_sts (1 << 15)
437 #define glpmctl_sleep_state_resumeok (1 << 16)
438 #define glpmctl_lpm_chan_index_shift (17)
439 #define glpmctl_lpm_chan_index_mask (0xf)
440 #define glpmctl_retry_count_shift (21)
441 #define glpmctl_retry_count_mask (0x7)
442 #define glpmctl_send_lpm (1 << 24)
443 #define glpmctl_retry_count_sts_shift (25)
444 #define glpmctl_retry_count_sts_mask (0x7)
445 #define glpmctl_reserved28_29_shift (28)
446 #define glpmctl_reserved28_29_mask (0x3)
447 #define glpmctl_hsic_connect (1 << 30)
448 #define glpmctl_inv_sel_hsic (1 << 31)
450 /* union adpctl_data */
451 #define adpctl_prb_dschg_shift (0)
452 #define adpctl_prb_dschg_mask (0x3)
453 #define adpctl_prb_delta_shift (2)
454 #define adpctl_prb_delta_mask (0x3)
455 #define adpctl_prb_per_shift (4)
456 #define adpctl_prb_per_mask (0x3)
457 #define adpctl_rtim_shift (6)
458 #define adpctl_rtim_mask (0x7ff)
459 #define adpctl_enaprb (1 << 17)
460 #define adpctl_enasns (1 << 18)
461 #define adpctl_adpres (1 << 19)
462 #define adpctl_adpen (1 << 20)
463 #define adpctl_adp_prb_int (1 << 21)
464 #define adpctl_adp_sns_int (1 << 22)
465 #define adpctl_adp_tmout_int (1 << 23)
466 #define adpctl_adp_prb_int_msk (1 << 24)
467 #define adpctl_adp_sns_int_msk (1 << 25)
468 #define adpctl_adp_tmout_int_msk (1 << 26)
469 #define adpctl_ar_shift (27)
470 #define adpctl_ar_mask (0x3)
471 #define adpctl_reserved29_31_shift (29)
472 #define adpctl_reserved29_31_mask (0x7)
474 /* union dcfg_data */
475 #define dcfg_devspd_shift (0)
476 #define dcfg_devspd_mask (0x3)
477 #define dcfg_nzstsouthshk (1 << 2)
478 #define DWC_DCFG_SEND_STALL 1
479 #define dcfg_ena32khzs (1 << 3)
480 #define dcfg_devaddr_shift (4)
481 #define dcfg_devaddr_mask (0x7f)
482 #define dcfg_perfrint_shift (11)
483 #define dcfg_perfrint_mask (0x3)
484 #define DWC_DCFG_FRAME_INTERVAL_80 0
485 #define DWC_DCFG_FRAME_INTERVAL_85 1
486 #define DWC_DCFG_FRAME_INTERVAL_90 2
487 #define DWC_DCFG_FRAME_INTERVAL_95 3
488 #define dcfg_endevoutnak (1 << 13)
489 #define dcfg_reserved14_17_shift (14)
490 #define dcfg_reserved14_17_mask (0xf)
491 #define dcfg_epmscnt_shift (18)
492 #define dcfg_epmscnt_mask (0x1f)
493 #define dcfg_descdma (1 << 23)
494 #define dcfg_perschintvl_shift (24)
495 #define dcfg_perschintvl_mask (0x3)
496 #define dcfg_resvalid_shift (26)
497 #define dcfg_resvalid_mask (0x3f)
499 /* union dctl_data */
500 #define dctl_rmtwkupsig (1 << 0)
501 #define dctl_sftdiscon (1 << 1)
502 #define dctl_gnpinnaksts (1 << 2)
503 #define dctl_goutnaksts (1 << 3)
504 #define dctl_tstctl_shift (4)
505 #define dctl_tstctl_mask (0x7)
506 #define dctl_sgnpinnak (1 << 7)
507 #define dctl_cgnpinnak (1 << 8)
508 #define dctl_sgoutnak (1 << 9)
509 #define dctl_cgoutnak (1 << 10)
510 #define dctl_pwronprgdone (1 << 11)
511 #define dctl_reserved (1 << 12)
512 #define dctl_gmc_shift (13)
513 #define dctl_gmc_mask (0x3)
514 #define dctl_ifrmnum (1 << 15)
515 #define dctl_nakonbble (1 << 16)
516 #define dctl_encontonbna (1 << 17)
517 #define dctl_reserved18_31_shift (18)
518 #define dctl_reserved18_31_mask (0x3fff)
520 /* union dsts_data */
521 #define dsts_suspsts (1 << 0)
522 #define dsts_enumspd_shift (1)
523 #define dsts_enumspd_mask (0x3)
524 #define DWC_DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ 0
525 #define DWC_DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ 1
526 #define DWC_DSTS_ENUMSPD_LS_PHY_6MHZ 2
527 #define DWC_DSTS_ENUMSPD_FS_PHY_48MHZ 3
528 #define dsts_errticerr (1 << 3)
529 #define dsts_reserved4_7_shift (4)
530 #define dsts_reserved4_7_mask (0xf)
531 #define dsts_soffn_shift (8)
532 #define dsts_soffn_mask (0x3fff)
533 #define dsts_reserved22_31_shift (22)
534 #define dsts_reserved22_31_mask (0x3ff)
536 /* union diepint_data */
537 #define diepint_xfercompl (1 << 0)
538 #define diepint_epdisabled (1 << 1)
539 #define diepint_ahberr (1 << 2)
540 #define diepint_timeout (1 << 3)
541 #define diepint_intktxfemp (1 << 4)
542 #define diepint_intknepmis (1 << 5)
543 #define diepint_inepnakeff (1 << 6)
544 #define diepint_emptyintr (1 << 7)
545 #define diepint_txfifoundrn (1 << 8)
546 #define diepint_bna (1 << 9)
547 #define diepint_reserved10_12_shift (10)
548 #define diepint_reserved10_12_mask (0x7)
549 #define diepint_nak (1 << 13)
550 #define diepint_reserved14_31_shift (14)
551 #define diepint_reserved14_31_mask (0x3ffff)
553 /* union doepint_data */
554 #define doepint_xfercompl (1 << 0)
555 #define doepint_epdisabled (1 << 1)
556 #define doepint_ahberr (1 << 2)
557 #define doepint_setup (1 << 3)
558 #define doepint_outtknepdis (1 << 4)
559 #define doepint_stsphsercvd (1 << 5)
560 #define doepint_back2backsetup (1 << 6)
561 #define doepint_reserved7 (1 << 7)
562 #define doepint_outpkterr (1 << 8)
563 #define doepint_bna (1 << 9)
564 #define doepint_reserved10 (1 << 10)
565 #define doepint_pktdrpsts (1 << 11)
566 #define doepint_babble (1 << 12)
567 #define doepint_nak (1 << 13)
568 #define doepint_nyet (1 << 14)
569 #define doepint_sr (1 << 15)
570 #define doepint_reserved16_31_shift (16)
571 #define doepint_reserved16_31_mask (0xffff)
573 /* union daint_data */
574 #define daint_in_shift (0)
575 #define daint_in_mask (0xffff)
576 #define daint_out_shift (16)
577 #define daint_out_mask (0xffff)
578 #define daint_b_inep0 (1 << 0)
579 #define daint_b_inep1 (1 << 1)
580 #define daint_b_inep2 (1 << 2)
581 #define daint_b_inep3 (1 << 3)
582 #define daint_b_inep4 (1 << 4)
583 #define daint_b_inep5 (1 << 5)
584 #define daint_b_inep6 (1 << 6)
585 #define daint_b_inep7 (1 << 7)
586 #define daint_b_inep8 (1 << 8)
587 #define daint_b_inep9 (1 << 9)
588 #define daint_b_inep10 (1 << 10)
589 #define daint_b_inep11 (1 << 11)
590 #define daint_b_inep12 (1 << 12)
591 #define daint_b_inep13 (1 << 13)
592 #define daint_b_inep14 (1 << 14)
593 #define daint_b_inep15 (1 << 15)
594 #define daint_b_outep0 (1 << 16)
595 #define daint_b_outep1 (1 << 17)
596 #define daint_b_outep2 (1 << 18)
597 #define daint_b_outep3 (1 << 19)
598 #define daint_b_outep4 (1 << 20)
599 #define daint_b_outep5 (1 << 21)
600 #define daint_b_outep6 (1 << 22)
601 #define daint_b_outep7 (1 << 23)
602 #define daint_b_outep8 (1 << 24)
603 #define daint_b_outep9 (1 << 25)
604 #define daint_b_outep10 (1 << 26)
605 #define daint_b_outep11 (1 << 27)
606 #define daint_b_outep12 (1 << 28)
607 #define daint_b_outep13 (1 << 29)
608 #define daint_b_outep14 (1 << 30)
609 #define daint_b_outep15 (1 << 31)
611 /* union dtknq1_data */
612 #define dtknq1_intknwptr_shift (0)
613 #define dtknq1_intknwptr_mask (0x1f)
614 #define dtknq1_reserved05_06_shift (5)
615 #define dtknq1_reserved05_06_mask (0x3)
616 #define dtknq1_wrap_bit (1 << 7)
617 #define dtknq1_epnums0_5_shift (8)
618 #define dtknq1_epnums0_5_mask (0xffffff)
620 /* union dthrctl_data */
621 #define dthrctl_non_iso_thr_en (1 << 0)
622 #define dthrctl_iso_thr_en (1 << 1)
623 #define dthrctl_tx_thr_len_shift (2)
624 #define dthrctl_tx_thr_len_mask (0x1ff)
625 #define dthrctl_ahb_thr_ratio_shift (11)
626 #define dthrctl_ahb_thr_ratio_mask (0x3)
627 #define dthrctl_reserved13_15_shift (13)
628 #define dthrctl_reserved13_15_mask (0x7)
629 #define dthrctl_rx_thr_en (1 << 16)
630 #define dthrctl_rx_thr_len_shift (17)
631 #define dthrctl_rx_thr_len_mask (0x1ff)
632 #define dthrctl_reserved26 (1 << 26)
633 #define dthrctl_arbprken (1 << 27)
634 #define dthrctl_reserved28_31_shift (28)
635 #define dthrctl_reserved28_31_mask (0xf)
637 /* union depctl_data */
638 #define depctl_mps_shift (0)
639 #define depctl_mps_mask (0x7ff)
640 #define DWC_DEP0CTL_MPS_64 0
641 #define DWC_DEP0CTL_MPS_32 1
642 #define DWC_DEP0CTL_MPS_16 2
643 #define DWC_DEP0CTL_MPS_8 3
644 #define depctl_nextep_shift (11)
645 #define depctl_nextep_mask (0xf)
646 #define depctl_usbactep (1 << 15)
647 #define depctl_dpid (1 << 16)
648 #define depctl_naksts (1 << 17)
649 #define depctl_eptype_shift (18)
650 #define depctl_eptype_mask (0x3)
651 #define depctl_snp (1 << 20)
652 #define depctl_stall (1 << 21)
653 #define depctl_txfnum_shift (22)
654 #define depctl_txfnum_mask (0xf)
655 #define depctl_cnak (1 << 26)
656 #define depctl_snak (1 << 27)
657 #define depctl_setd0pid (1 << 28)
658 #define depctl_setd1pid (1 << 29)
659 #define depctl_epdis (1 << 30)
660 #define depctl_epena (1 << 31)
662 /* union deptsiz_data */
663 #define deptsiz_xfersize_shift (0)
664 #define deptsiz_xfersize_mask (0x7ffff)
665 #define MAX_PKT_CNT 1023
666 #define deptsiz_pktcnt_shift (19)
667 #define deptsiz_pktcnt_mask (0x3ff)
668 #define deptsiz_mc_shift (29)
669 #define deptsiz_mc_mask (0x3)
670 #define deptsiz_reserved (1 << 31)
672 /* union deptsiz0_data */
673 #define deptsiz0_xfersize_shift (0)
674 #define deptsiz0_xfersize_mask (0x7f)
675 #define deptsiz0_reserved7_18_shift (7)
676 #define deptsiz0_reserved7_18_mask (0xfff)
677 #define deptsiz0_pktcnt_shift (19)
678 #define deptsiz0_pktcnt_mask (0x3)
679 #define deptsiz0_reserved21_28_shift (21)
680 #define deptsiz0_reserved21_28_mask (0xff)
681 #define deptsiz0_supcnt_shift (29)
682 #define deptsiz0_supcnt_mask (0x3)
683 #define deptsiz0_reserved31 (1 << 31)
684 #define BS_HOST_READY 0x0
685 #define BS_DMA_BUSY 0x1
686 #define BS_DMA_DONE 0x2
687 #define BS_HOST_BUSY 0x3
688 #define RTS_SUCCESS 0x0
689 #define RTS_BUFFLUSH 0x1
690 #define RTS_RESERVED 0x2
691 #define RTS_BUFERR 0x3
693 /* union dev_dma_desc_sts */
694 #define dev_dma_desc_sts_bytes_shift (0)
695 #define dev_dma_desc_sts_bytes_mask (0xffff)
696 #define dev_dma_desc_sts_nak (1 << 16)
697 #define dev_dma_desc_sts_reserved17_22_shift (17)
698 #define dev_dma_desc_sts_reserved17_22_mask (0x3f)
699 #define dev_dma_desc_sts_mtrf (1 << 23)
700 #define dev_dma_desc_sts_sr (1 << 24)
701 #define dev_dma_desc_sts_ioc (1 << 25)
702 #define dev_dma_desc_sts_sp (1 << 26)
703 #define dev_dma_desc_sts_l (1 << 27)
704 #define dev_dma_desc_sts_sts_shift (28)
705 #define dev_dma_desc_sts_sts_mask (0x3)
706 #define dev_dma_desc_sts_bs_shift (30)
707 #define dev_dma_desc_sts_bs_mask (0x3)
708 #define dev_dma_desc_sts_b_rxbytes_shift (0)
709 #define dev_dma_desc_sts_b_rxbytes_mask (0x7ff)
710 #define dev_dma_desc_sts_b_reserved11 (1 << 11)
711 #define dev_dma_desc_sts_b_framenum_shift (12)
712 #define dev_dma_desc_sts_b_framenum_mask (0x7ff)
713 #define dev_dma_desc_sts_b_pid_shift (23)
714 #define dev_dma_desc_sts_b_pid_mask (0x3)
715 #define dev_dma_desc_sts_b_ioc (1 << 25)
716 #define dev_dma_desc_sts_b_sp (1 << 26)
717 #define dev_dma_desc_sts_b_l (1 << 27)
718 #define dev_dma_desc_sts_b_rxsts_shift (28)
719 #define dev_dma_desc_sts_b_rxsts_mask (0x3)
720 #define dev_dma_desc_sts_b_bs_shift (30)
721 #define dev_dma_desc_sts_b_bs_mask (0x3)
722 #define dev_dma_desc_sts_b_b_txbytes_shift (0)
723 #define dev_dma_desc_sts_b_b_txbytes_mask (0xfff)
724 #define dev_dma_desc_sts_b_b_framenum_shift (12)
725 #define dev_dma_desc_sts_b_b_framenum_mask (0x7ff)
726 #define dev_dma_desc_sts_b_b_pid_shift (23)
727 #define dev_dma_desc_sts_b_b_pid_mask (0x3)
728 #define dev_dma_desc_sts_b_b_ioc (1 << 25)
729 #define dev_dma_desc_sts_b_b_sp (1 << 26)
730 #define dev_dma_desc_sts_b_b_l (1 << 27)
731 #define dev_dma_desc_sts_b_b_txsts_shift (28)
732 #define dev_dma_desc_sts_b_b_txsts_mask (0x3)
733 #define dev_dma_desc_sts_b_b_bs_shift (30)
734 #define dev_dma_desc_sts_b_b_bs_mask (0x3)
735 #define DWC_DEV_GLOBAL_REG_OFFSET 0x800
736 #define DWC_DEV_IN_EP_REG_OFFSET 0x900
737 #define DWC_EP_REG_OFFSET 0x20
738 #define DWC_DEV_OUT_EP_REG_OFFSET 0xB00
740 /* union hcfg_data */
741 #define hcfg_fslspclksel_shift (0)
742 #define hcfg_fslspclksel_mask (0x3)
743 #define DWC_HCFG_30_60_MHZ 0
744 #define DWC_HCFG_48_MHZ 1
745 #define DWC_HCFG_6_MHZ 2
746 #define hcfg_fslssupp (1 << 2)
747 #define hcfg_reserved3_6_shift (3)
748 #define hcfg_reserved3_6_mask (0xf)
749 #define hcfg_ena32khzs (1 << 7)
750 #define hcfg_resvalid_shift (8)
751 #define hcfg_resvalid_mask (0xff)
752 #define hcfg_reserved16_22_shift (16)
753 #define hcfg_reserved16_22_mask (0x7f)
754 #define hcfg_descdma (1 << 23)
755 #define hcfg_frlisten_shift (24)
756 #define hcfg_frlisten_mask (0x3)
757 #define hcfg_perschedena (1 << 26)
758 #define hcfg_reserved27_30_shift (27)
759 #define hcfg_reserved27_30_mask (0xf)
760 #define hcfg_modechtimen (1 << 31)
762 /* union hfir_data */
763 #define hfir_frint_shift (0)
764 #define hfir_frint_mask (0xffff)
765 #define hfir_hfirrldctrl (1 << 16)
766 #define hfir_reserved_shift (17)
767 #define hfir_reserved_mask (0x7fff)
769 /* union hfnum_data */
770 #define hfnum_frnum_shift (0)
771 #define hfnum_frnum_mask (0xffff)
772 #define DWC_HFNUM_MAX_FRNUM 0x3FFF
773 #define hfnum_frrem_shift (16)
774 #define hfnum_frrem_mask (0xffff)
776 /* union hptxsts_data */
777 #define hptxsts_ptxfspcavail_shift (0)
778 #define hptxsts_ptxfspcavail_mask (0xffff)
779 #define hptxsts_ptxqspcavail_shift (16)
780 #define hptxsts_ptxqspcavail_mask (0xff)
781 #define hptxsts_ptxqtop_terminate (1 << 24)
782 #define hptxsts_ptxqtop_token_shift (25)
783 #define hptxsts_ptxqtop_token_mask (0x3)
784 #define hptxsts_ptxqtop_chnum_shift (27)
785 #define hptxsts_ptxqtop_chnum_mask (0xf)
786 #define hptxsts_ptxqtop_odd (1 << 31)
788 /* union hprt0_data */
789 #define hprt0_prtconnsts (1 << 0)
790 #define hprt0_prtconndet (1 << 1)
791 #define hprt0_prtena (1 << 2)
792 #define hprt0_prtenchng (1 << 3)
793 #define hprt0_prtovrcurract (1 << 4)
794 #define hprt0_prtovrcurrchng (1 << 5)
795 #define hprt0_prtres (1 << 6)
796 #define hprt0_prtsusp (1 << 7)
797 #define hprt0_prtrst (1 << 8)
798 #define hprt0_reserved9 (1 << 9)
799 #define hprt0_prtlnsts_shift (10)
800 #define hprt0_prtlnsts_mask (0x3)
801 #define hprt0_prtpwr (1 << 12)
802 #define hprt0_prttstctl_shift (13)
803 #define hprt0_prttstctl_mask (0xf)
804 #define hprt0_prtspd_shift (17)
805 #define hprt0_prtspd_mask (0x3)
806 #define DWC_HPRT0_PRTSPD_HIGH_SPEED 0
807 #define DWC_HPRT0_PRTSPD_FULL_SPEED 1
808 #define DWC_HPRT0_PRTSPD_LOW_SPEED 2
809 #define hprt0_reserved19_31_shift (19)
810 #define hprt0_reserved19_31_mask (0x1fff)
812 /* union haint_data */
813 #define haint_ch0 (1 << 0)
814 #define haint_ch1 (1 << 1)
815 #define haint_ch2 (1 << 2)
816 #define haint_ch3 (1 << 3)
817 #define haint_ch4 (1 << 4)
818 #define haint_ch5 (1 << 5)
819 #define haint_ch6 (1 << 6)
820 #define haint_ch7 (1 << 7)
821 #define haint_ch8 (1 << 8)
822 #define haint_ch9 (1 << 9)
823 #define haint_ch10 (1 << 10)
824 #define haint_ch11 (1 << 11)
825 #define haint_ch12 (1 << 12)
826 #define haint_ch13 (1 << 13)
827 #define haint_ch14 (1 << 14)
828 #define haint_ch15 (1 << 15)
829 #define haint_reserved_shift (16)
830 #define haint_reserved_mask (0xffff)
831 #define haint_b_chint_shift (0)
832 #define haint_b_chint_mask (0xffff)
833 #define haint_b_reserved_shift (16)
834 #define haint_b_reserved_mask (0xffff)
836 /* union haintmsk_data */
837 #define haintmsk_ch0 (1 << 0)
838 #define haintmsk_ch1 (1 << 1)
839 #define haintmsk_ch2 (1 << 2)
840 #define haintmsk_ch3 (1 << 3)
841 #define haintmsk_ch4 (1 << 4)
842 #define haintmsk_ch5 (1 << 5)
843 #define haintmsk_ch6 (1 << 6)
844 #define haintmsk_ch7 (1 << 7)
845 #define haintmsk_ch8 (1 << 8)
846 #define haintmsk_ch9 (1 << 9)
847 #define haintmsk_ch10 (1 << 10)
848 #define haintmsk_ch11 (1 << 11)
849 #define haintmsk_ch12 (1 << 12)
850 #define haintmsk_ch13 (1 << 13)
851 #define haintmsk_ch14 (1 << 14)
852 #define haintmsk_ch15 (1 << 15)
853 #define haintmsk_reserved_shift (16)
854 #define haintmsk_reserved_mask (0xffff)
855 #define haintmsk_b_chint_shift (0)
856 #define haintmsk_b_chint_mask (0xffff)
857 #define haintmsk_b_reserved_shift (16)
858 #define haintmsk_b_reserved_mask (0xffff)
860 /* union hcchar_data */
861 #define hcchar_mps_shift (0)
862 #define hcchar_mps_mask (0x7ff)
863 #define hcchar_epnum_shift (11)
864 #define hcchar_epnum_mask (0xf)
865 #define hcchar_epdir (1 << 15)
866 #define hcchar_reserved (1 << 16)
867 #define hcchar_lspddev (1 << 17)
868 #define hcchar_eptype_shift (18)
869 #define hcchar_eptype_mask (0x3)
870 #define hcchar_multicnt_shift (20)
871 #define hcchar_multicnt_mask (0x3)
872 #define hcchar_devaddr_shift (22)
873 #define hcchar_devaddr_mask (0x7f)
874 #define hcchar_oddfrm (1 << 29)
875 #define hcchar_chdis (1 << 30)
876 #define hcchar_chen (1 << 31)
878 /* union hcsplt_data */
879 #define hcsplt_prtaddr_shift (0)
880 #define hcsplt_prtaddr_mask (0x7f)
881 #define hcsplt_hubaddr_shift (7)
882 #define hcsplt_hubaddr_mask (0x7f)
883 #define hcsplt_xactpos_shift (14)
884 #define hcsplt_xactpos_mask (0x3)
885 #define DWC_HCSPLIT_XACTPOS_MID 0
886 #define DWC_HCSPLIT_XACTPOS_END 1
887 #define DWC_HCSPLIT_XACTPOS_BEGIN 2
888 #define DWC_HCSPLIT_XACTPOS_ALL 3
889 #define hcsplt_compsplt (1 << 16)
890 #define hcsplt_reserved_shift (17)
891 #define hcsplt_reserved_mask (0x3fff)
892 #define hcsplt_spltena (1 << 31)
894 /* union hcint_data */
895 #define hcint_xfercomp (1 << 0)
896 #define hcint_chhltd (1 << 1)
897 #define hcint_ahberr (1 << 2)
898 #define hcint_stall (1 << 3)
899 #define hcint_nak (1 << 4)
900 #define hcint_ack (1 << 5)
901 #define hcint_nyet (1 << 6)
902 #define hcint_xacterr (1 << 7)
903 #define hcint_bblerr (1 << 8)
904 #define hcint_frmovrun (1 << 9)
905 #define hcint_datatglerr (1 << 10)
906 #define hcint_bna (1 << 11)
907 #define hcint_xcs_xact (1 << 12)
908 #define hcint_frm_list_roll (1 << 13)
909 #define hcint_reserved14_31_shift (14)
910 #define hcint_reserved14_31_mask (0x3ffff)
912 /* union hcintmsk_data */
913 #define hcintmsk_xfercompl (1 << 0)
914 #define hcintmsk_chhltd (1 << 1)
915 #define hcintmsk_ahberr (1 << 2)
916 #define hcintmsk_stall (1 << 3)
917 #define hcintmsk_nak (1 << 4)
918 #define hcintmsk_ack (1 << 5)
919 #define hcintmsk_nyet (1 << 6)
920 #define hcintmsk_xacterr (1 << 7)
921 #define hcintmsk_bblerr (1 << 8)
922 #define hcintmsk_frmovrun (1 << 9)
923 #define hcintmsk_datatglerr (1 << 10)
924 #define hcintmsk_bna (1 << 11)
925 #define hcintmsk_xcs_xact (1 << 12)
926 #define hcintmsk_frm_list_roll (1 << 13)
927 #define hcintmsk_reserved14_31_shift (14)
928 #define hcintmsk_reserved14_31_mask (0x3ffff)
930 /* union hctsiz_data */
931 #define hctsiz_xfersize_shift (0)
932 #define hctsiz_xfersize_mask (0x7ffff)
933 #define hctsiz_pktcnt_shift (19)
934 #define hctsiz_pktcnt_mask (0x3ff)
935 #define hctsiz_pid_shift (29)
936 #define hctsiz_pid_mask (0x3)
937 #define DWC_HCTSIZ_DATA0 0
938 #define DWC_HCTSIZ_DATA1 2
939 #define DWC_HCTSIZ_DATA2 1
940 #define DWC_HCTSIZ_MDATA 3
941 #define DWC_HCTSIZ_SETUP 3
942 #define hctsiz_dopng (1 << 31)
943 #define hctsiz_b_schinfo_shift (0)
944 #define hctsiz_b_schinfo_mask (0xff)
945 #define hctsiz_b_ntd_shift (8)
946 #define hctsiz_b_ntd_mask (0xff)
947 #define hctsiz_b_reserved16_28_shift (16)
948 #define hctsiz_b_reserved16_28_mask (0x1fff)
949 #define hctsiz_b_pid_shift (29)
950 #define hctsiz_b_pid_mask (0x3)
951 #define hctsiz_b_dopng (1 << 31)
953 /* union hcdma_data */
954 #define hcdma_reserved0_2_shift (0)
955 #define hcdma_reserved0_2_mask (0x7)
956 #define hcdma_ctd_shift (3)
957 #define hcdma_ctd_mask (0xff)
958 #define hcdma_dma_addr_shift (11)
959 #define hcdma_dma_addr_mask (0x1fffff)
961 /* union host_dma_desc_sts */
962 #define host_dma_desc_sts_n_bytes_shift (0)
963 #define host_dma_desc_sts_n_bytes_mask (0x1ffff)
964 #define host_dma_desc_sts_qtd_offset_shift (17)
965 #define host_dma_desc_sts_qtd_offset_mask (0x3f)
966 #define host_dma_desc_sts_a_qtd (1 << 23)
967 #define host_dma_desc_sts_sup (1 << 24)
968 #define host_dma_desc_sts_ioc (1 << 25)
969 #define host_dma_desc_sts_eol (1 << 26)
970 #define host_dma_desc_sts_reserved27 (1 << 27)
971 #define host_dma_desc_sts_sts_shift (28)
972 #define host_dma_desc_sts_sts_mask (0x3)
973 #define DMA_DESC_STS_PKTERR 1
974 #define host_dma_desc_sts_reserved30 (1 << 30)
975 #define host_dma_desc_sts_a (1 << 31)
976 #define host_dma_desc_sts_b_n_bytes_shift (0)
977 #define host_dma_desc_sts_b_n_bytes_mask (0xfff)
978 #define host_dma_desc_sts_b_reserved12_24_shift (12)
979 #define host_dma_desc_sts_b_reserved12_24_mask (0x1fff)
980 #define host_dma_desc_sts_b_ioc (1 << 25)
981 #define host_dma_desc_sts_b_reserved26_27_shift (26)
982 #define host_dma_desc_sts_b_reserved26_27_mask (0x3)
983 #define host_dma_desc_sts_b_sts_shift (28)
984 #define host_dma_desc_sts_b_sts_mask (0x3)
985 #define host_dma_desc_sts_b_reserved30 (1 << 30)
986 #define host_dma_desc_sts_b_a (1 << 31)
987 #define MAX_DMA_DESC_SIZE 131071
988 #define MAX_DMA_DESC_NUM_GENERIC 64
989 #define MAX_DMA_DESC_NUM_HS_ISOC 256
990 #define MAX_FRLIST_EN_NUM 64
991 #define DWC_OTG_HOST_GLOBAL_REG_OFFSET 0x400
992 #define DWC_OTG_HOST_PORT_REGS_OFFSET 0x440
993 #define DWC_OTG_HOST_CHAN_REGS_OFFSET 0x500
994 #define DWC_OTG_CHAN_REGS_OFFSET 0x20
996 /* union pcgcctl_data */
997 #define pcgcctl_stoppclk (1 << 0)
998 #define pcgcctl_gatehclk (1 << 1)
999 #define pcgcctl_pwrclmp (1 << 2)
1000 #define pcgcctl_rstpdwnmodule (1 << 3)
1001 #define pcgcctl_reserved (1 << 4)
1002 #define pcgcctl_enbl_sleep_gating (1 << 5)
1003 #define pcgcctl_phy_in_sleep (1 << 6)
1004 #define pcgcctl_deep_sleep (1 << 7)
1005 #define pcgcctl_resetaftsusp (1 << 8)
1006 #define pcgcctl_restoremode (1 << 9)
1007 #define pcgcctl_enbl_extnd_hiber (1 << 10)
1008 #define pcgcctl_extnd_hiber_pwrclmp (1 << 11)
1009 #define pcgcctl_extnd_hiber_switch (1 << 12)
1010 #define pcgcctl_ess_reg_restored (1 << 13)
1011 #define pcgcctl_prt_clk_sel_shift (14)
1012 #define pcgcctl_prt_clk_sel_mask (0x3)
1013 #define pcgcctl_port_power (1 << 16)
1014 #define pcgcctl_max_xcvrselect_shift (17)
1015 #define pcgcctl_max_xcvrselect_mask (0x3)
1016 #define pcgcctl_max_termsel (1 << 19)
1017 #define pcgcctl_mac_dev_addr_shift (20)
1018 #define pcgcctl_mac_dev_addr_mask (0x7f)
1019 #define pcgcctl_p2hd_dev_enum_spd_shift (27)
1020 #define pcgcctl_p2hd_dev_enum_spd_mask (0x3)
1021 #define pcgcctl_p2hd_prt_spd_shift (29)
1022 #define pcgcctl_p2hd_prt_spd_mask (0x3)
1023 #define pcgcctl_if_dev_mode (1 << 31)
1025 /* union gdfifocfg_data */
1026 #define gdfifocfg_gdfifocfg_shift (0)
1027 #define gdfifocfg_gdfifocfg_mask (0xffff)
1028 #define gdfifocfg_epinfobase_shift (16)
1029 #define gdfifocfg_epinfobase_mask (0xffff)
1031 /* union gpwrdn_data */
1032 #define gpwrdn_pmuintsel (1 << 0)
1033 #define gpwrdn_pmuactv (1 << 1)
1034 #define gpwrdn_restore (1 << 2)
1035 #define gpwrdn_pwrdnclmp (1 << 3)
1036 #define gpwrdn_pwrdnrstn (1 << 4)
1037 #define gpwrdn_pwrdnswtch (1 << 5)
1038 #define gpwrdn_dis_vbus (1 << 6)
1039 #define gpwrdn_lnstschng (1 << 7)
1040 #define gpwrdn_lnstchng_msk (1 << 8)
1041 #define gpwrdn_rst_det (1 << 9)
1042 #define gpwrdn_rst_det_msk (1 << 10)
1043 #define gpwrdn_disconn_det (1 << 11)
1044 #define gpwrdn_disconn_det_msk (1 << 12)
1045 #define gpwrdn_connect_det (1 << 13)
1046 #define gpwrdn_connect_det_msk (1 << 14)
1047 #define gpwrdn_srp_det (1 << 15)
1048 #define gpwrdn_srp_det_msk (1 << 16)
1049 #define gpwrdn_sts_chngint (1 << 17)
1050 #define gpwrdn_sts_chngint_msk (1 << 18)
1051 #define gpwrdn_linestate_shift (19)
1052 #define gpwrdn_linestate_mask (0x3)
1053 #define gpwrdn_idsts (1 << 21)
1054 #define gpwrdn_bsessvld (1 << 22)
1055 #define gpwrdn_adp_int (1 << 23)
1056 #define gpwrdn_mult_val_id_bc_shift (24)
1057 #define gpwrdn_mult_val_id_bc_mask (0x1f)
1058 #define gpwrdn_reserved29_31_shift (29)
1059 #define gpwrdn_reserved29_31_mask (0x7)
1061 #endif /* BCM2835_USB_REGS_H */