17#ifndef LIBBSP_ARM_STM32F4_STM32F4XXXX_OTGFS_H
18#define LIBBSP_ARM_STM32F4_STM32F4XXXX_OTGFS_H
22#define USB_OTG_NUM_EPS 4
23#define USB_OTG_MAX_TX_FIFOS 4
25#define USB_FIFO_BASE 0x1000
26#define USB_FIFO_OFFS 0x1000
30#define STM32F4_OTGFS_GOTGCTL_BSVLD BSP_BIT32(19)
31#define STM32F4_OTGFS_GOTGCTL_ASVLD BSP_BIT32(18)
32#define STM32F4_OTGFS_GOTGCTL_DBCT BSP_BIT32(17)
33#define STM32F4_OTGFS_GOTGCTL_CIDSTS BSP_BIT32(16)
34#define STM32F4_OTGFS_GOTGCTL_DHNPEN BSP_BIT32(11)
35#define STM32F4_OTGFS_GOTGCTL_HSHNPEN BSP_BIT32(10)
36#define STM32F4_OTGFS_GOTGCTL_HNPRQ BSP_BIT32(9)
37#define STM32F4_OTGFS_GOTGCTL_HNGSCS BSP_BIT32(8)
38#define STM32F4_OTGFS_GOTGCTL_SRQ BSP_BIT32(1)
39#define STM32F4_OTGFS_GOTGCTL_SRQSCS BSP_BIT32(0)
42#define STM32F4_OTGFS_GOTGINT_DBCDNE BSP_BIT32(19)
43#define STM32F4_OTGFS_GOTGINT_ADTOCHG BSP_BIT32(18)
44#define STM32F4_OTGFS_GOTGINT_HNGDET BSP_BIT32(17)
45#define STM32F4_OTGFS_GOTGINT_HNSSCHG BSP_BIT32(9)
46#define STM32F4_OTGFS_GOTGINT_SRSSCHG BSP_BIT32(8)
47#define STM32F4_OTGFS_GOTGINT_SEDET BSP_BIT32(2)
50#define STM32F4_OTGFS_GAHBCFG_PTXFELVL BSP_BIT32(8)
51#define STM32F4_OTGFS_GAHBCFG_TXFELVL BSP_BIT32(7)
52#define STM32F4_OTGFS_GAHBCFG_GINTMSK BSP_BIT32(0)
55#define STM32F4_OTGFS_GUSBCFG_CTXPKT BSP_BIT32(31)
56#define STM32F4_OTGFS_GUSBCFG_FDMOD BSP_BIT32(30)
57#define STM32F4_OTGFS_GUSBCFG_FHMOD BSP_BIT32(29)
58#define STM32F4_OTGFS_GUSBCFG_TRDT(val) BSP_FLD32(val, 10, 13)
59#define STM32F4_OTGFS_GUSBCFG_TRDT_GET(reg) BSP_FLD32GET(reg, 10, 13)
60#define STM32F4_OTGFS_GUSBCFG_TRDT_SET(reg, val) BSP_FLD32SET(reg, val, 10, 13)
61#define STM32F4_OTGFS_GUSBCFG_HNPCAP BSP_BIT32(9)
62#define STM32F4_OTGFS_GUSBCFG_SRPCAP BSP_BIT32(8)
63#define STM32F4_OTGFS_GUSBCFG_PHYSEL BSP_BIT32(6)
64#define STM32F4_OTGFS_GUSBCFG_TOCAL(val) BSP_FLD32(val, 0, 2)
65#define STM32F4_OTGFS_GUSBCFG_TOCAL_GET(reg) BSP_FLD32GET(reg, 0, 2)
66#define STM32F4_OTGFS_GUSBCFG_TOCAL_SET(reg, val) BSP_FLD32SET(reg, val, 0, 2)
69#define STM32F4_OTGFS_GRSTCTL_AHBIDL BSP_BIT32(31)
70#define STM32F4_OTGFS_GRSTCTL_TXFNUM(val) BSP_FLD32(val, 6, 10)
71#define STM32F4_OTGFS_GRSTCTL_TXFNUM_GET(reg) BSP_FLD32GET(reg, 6, 10)
72#define STM32F4_OTGFS_GRSTCTL_TXFNUM_SET(reg, val) BSP_FLD32SET(reg, val, 6, 10)
73#define STM32F4_OTGFS_GRSTCTL_TXFNUM_ALL STM32F4_OTGFS_GRSTCTL_TXFNUM(0x10)
74#define STM32F4_OTGFS_GRSTCTL_TXFFLSH BSP_BIT32(5)
75#define STM32F4_OTGFS_GRSTCTL_RXFFLSH BSP_BIT32(4)
76#define STM32F4_OTGFS_GRSTCTL_FCRST BSP_BIT32(2)
77#define STM32F4_OTGFS_GRSTCTL_HSRST BSP_BIT32(1)
78#define STM32F4_OTGFS_GRSTCTL_CSRST BSP_BIT32(0)
81#define STM32F4_OTGFS_GINTSTS_WKUPINT BSP_BIT32(31)
82#define STM32F4_OTGFS_GINTSTS_SRQINT BSP_BIT32(30)
83#define STM32F4_OTGFS_GINTSTS_DISCINT BSP_BIT32(29)
84#define STM32F4_OTGFS_GINTSTS_CIDSCHG BSP_BIT32(28)
85#define STM32F4_OTGFS_GINTSTS_PTXFE BSP_BIT32(26)
86#define STM32F4_OTGFS_GINTSTS_HCINT BSP_BIT32(25)
87#define STM32F4_OTGFS_GINTSTS_HPRTINT BSP_BIT32(24)
88#define STM32F4_OTGFS_GINTSTS_IPXFR BSP_BIT32(21)
89#define STM32F4_OTGFS_GINTSTS_IISOOXFR BSP_BIT32(21)
90#define STM32F4_OTGFS_GINTSTS_IISOIXFR BSP_BIT32(20)
91#define STM32F4_OTGFS_GINTSTS_OEPINT BSP_BIT32(19)
92#define STM32F4_OTGFS_GINTSTS_IEPINT BSP_BIT32(18)
93#define STM32F4_OTGFS_GINTSTS_EOPF BSP_BIT32(15)
94#define STM32F4_OTGFS_GINTSTS_ISOODRP BSP_BIT32(14)
95#define STM32F4_OTGFS_GINTSTS_ENUMDNE BSP_BIT32(13)
96#define STM32F4_OTGFS_GINTSTS_USBRST BSP_BIT32(12)
97#define STM32F4_OTGFS_GINTSTS_USBSUSP BSP_BIT32(11)
98#define STM32F4_OTGFS_GINTSTS_ESUSP BSP_BIT32(10)
99#define STM32F4_OTGFS_GINTSTS_GONAKEFF BSP_BIT32(7)
100#define STM32F4_OTGFS_GINTSTS_GINAKEFF BSP_BIT32(6)
101#define STM32F4_OTGFS_GINTSTS_NPTXFE BSP_BIT32(5)
102#define STM32F4_OTGFS_GINTSTS_RXFLVL BSP_BIT32(4)
103#define STM32F4_OTGFS_GINTSTS_SOF BSP_BIT32(3)
104#define STM32F4_OTGFS_GINTSTS_OTGINT BSP_BIT32(2)
105#define STM32F4_OTGFS_GINTSTS_MMIS BSP_BIT32(1)
106#define STM32F4_OTGFS_GINTSTS_CMOD BSP_BIT32(0)
113#define STM32F4_OTGFS_GRXSTSP_FRMNUM(val) BSP_FLD32(val, 21, 24)
114#define STM32F4_OTGFS_GRXSTSP_FRMNUM_GET(reg) BSP_FLD32GET(reg, 21, 24)
115#define STM32F4_OTGFS_GRXSTSP_FRMNUM_SET(reg, val) BSP_FLD32SET(reg, val, 21, 24)
116#define STM32F4_OTGFS_GRXSTSP_PKTSTS(val) BSP_FLD32(val, 17, 20)
117#define STM32F4_OTGFS_GRXSTSP_PKTSTS_GET(reg) BSP_FLD32GET(reg, 17, 20)
118#define STM32F4_OTGFS_GRXSTSP_PKTSTS_SET(reg, val) BSP_FLD32SET(reg, val, 17, 20)
119#define PKTSTS_IN_DATA (0x2)
120#define PKTSTS_IN_COMPLETE (0x3)
121#define PKTSTS_TOGGLE_ERR (0x5)
122#define PKTSTS_HALTED (0x7)
123#define PKTSTS_OUTNAK (0x1)
124#define PKTSTS_OUT_DATA (0x2)
125#define PKTSTS_OUT_COMPLETE (0x3)
126#define PKTSTS_SETUP_COMPLETE (0x4)
127#define PKTSTS_SETUP_DATA (0x6)
128#define STM32F4_OTGFS_GRXSTSP_DPIG(val) BSP_FLD32(val, 15, 16)
129#define STM32F4_OTGFS_GRXSTSP_DPID_GET(reg) BSP_FLD32GET(reg, 15, 16)
130#define STM32F4_OTGFS_GRXSTSP_DPID_SET(reg, val) BSP_FLD32SET(reg, val, 15, 16)
131#define STM32F4_OTGFS_GRXSTSP_DPID_DATA0 STM32F4_OTGFS_GRXSTSP_PKTSTS(0x0)
132#define STM32F4_OTGFS_GRXSTSP_DPID_DATA1 STM32F4_OTGFS_GRXSTSP_PKTSTS(0x1)
133#define STM32F4_OTGFS_GRXSTSP_DPID_DATA2 STM32F4_OTGFS_GRXSTSP_PKTSTS(0x2)
134#define STM32F4_OTGFS_GRXSTSP_DPID_MDATA0 STM32F4_OTGFS_GRXSTSP_PKTSTS(0x3)
135#define STM32F4_OTGFS_GRXSTSP_BCNT(val) BSP_FLD32(val, 4, 14)
136#define STM32F4_OTGFS_GRXSTSP_BCNT_GET(reg) BSP_FLD32GET(reg, 4, 14)
137#define STM32F4_OTGFS_GRXSTSP_BCNT_SET(reg, val) BSP_FLD32SET(reg, val, 4, 14)
138#define STM32F4_OTGFS_GRXSTSP_CHNUM(val) BSP_FLD32(val, 0, 3)
139#define STM32F4_OTGFS_GRXSTSP_CHNUM_GET(reg) BSP_FLD32GET(reg, 0, 3)
140#define STM32F4_OTGFS_GRXSTSP_CHNUM_SET(reg, val) BSP_FLD32SET(reg, val, 0, 3)
141#define STM32F4_OTGFS_GRXSTSP_EPNUM(val) BSP_FLD32(val, 0, 3)
142#define STM32F4_OTGFS_GRXSTSP_EPNUM_GET(reg) BSP_FLD32GET(reg, 0, 3)
143#define STM32F4_OTGFS_GRXSTSP_EPNUM_SET(reg, val) BSP_FLD32SET(reg, val, 0, 3)
146#define STM32F4_OTGFS_GRXFSIZ_RXFD(val) BSP_FLD32(val, 0, 15)
147#define STM32F4_OTGFS_GRXFSIZ_RXFD_GET(reg) BSP_FLD32GET(reg, 0, 15)
148#define STM32F4_OTGFS_GRXFSIZ_RXFD_SET(reg, val) BSP_FLD32SET(reg, val, 0, 15)
149#define STM32F4_OTGFS_GRXFSIZ_RXFD_MIN 16
150#define STM32F4_OTGFS_GRXFSIZ_RXFD_MAX 256
153#define STM32F4_OTGFS_DIEPTXF_DEPTH(val) BSP_FLD32(val, 16, 31)
154#define STM32F4_OTGFS_DIEPTXF_DEPTH_GET(reg) BSP_FLD32GET(reg, 16, 31)
155#define STM32F4_OTGFS_DIEPTXF_DEPTH_SET(reg, val) BSP_FLD32SET(reg, val, 16, 31)
156#define STM32F4_OTGFS_DIEPTXF_DEPTH_MIN 16
157#define STM32F4_OTGFS_DIEPTXF_DEPTH_MAX 256
158#define STM32F4_OTGFS_DIEPTXF_SADDR(val) BSP_FLD32(val, 0, 15)
159#define STM32F4_OTGFS_DIEPTXF_SADDR_GET(reg) BSP_FLD32GET(reg, 0, 15)
160#define STM32F4_OTGFS_DIEPTXF_SADDR_SET(reg, val) BSP_FLD32SET(reg, val, 0, 15)
168#define STM32F4_OTGFS_GCCFG_NOVBUSSENS BSP_BIT32(21)
169#define STM32F4_OTGFS_GCCFG_SOFOUTEN BSP_BIT32(20)
170#define STM32F4_OTGFS_GCCFG_VBUSBSEN BSP_BIT32(19)
171#define STM32F4_OTGFS_GCCFG_VBUSASEN BSP_BIT32(18)
172#define STM32F4_OTGFS_GCCFG_PWRDWN BSP_BIT32(16)
180 uint32_t dieptxf[USB_OTG_MAX_TX_FIFOS];
187#define STM32F4_OTGFS_DCFG_PFIVL(val) BSP_FLD32(val, 11, 12)
188#define STM32F4_OTGFS_DCFG_PFIVL_GET(reg) BSP_FLD32GET(reg, 11, 12)
189#define STM32F4_OTGFS_DCFG_PFIVL_SET(reg, val) BSP_FLD32SET(reg, val, 11, 12)
194#define STM32F4_OTGFS_DCFG_DAD(val) BSP_FLD32(val, 4, 10)
195#define STM32F4_OTGFS_DCFG_DAD_GET(reg) BSP_FLD32GET(reg, 4, 10)
196#define STM32F4_OTGFS_DCFG_DAD_SET(reg, val) BSP_FLD32SET(reg, val, 4, 10)
197#define STM32F4_OTGFS_DCFG_NZLSOHSK BSP_BIT32(2)
198#define STM32F4_OTGFS_DCFG_DSPD(val) BSP_FLD32(val, 0, 1)
199#define STM32F4_OTGFS_DCFG_DSPD_GET(reg) BSP_FLD32GET(reg, 0, 1)
200#define STM32F4_OTGFS_DCFG_DSPD_SET(reg, val) BSP_FLD32SET(reg, val, 0, 1)
201#define STM32F4_OTGFS_DCFG_DSPD_FULL STM32F4_OTGFS_DCFG_DSPD(0x3)
204#define STM32F4_OTGFS_DCTL_POPRGDNE BSP_BIT32(11)
205#define STM32F4_OTGFS_DCTL_CGONAK BSP_BIT32(10)
206#define STM32F4_OTGFS_DCTL_SGONAK BSP_BIT32(9)
207#define STM32F4_OTGFS_DCTL_CGINAK BSP_BIT32(8)
208#define STM32F4_OTGFS_DCTL_SGINAK BSP_BIT32(7)
209#define STM32F4_OTGFS_DCTL_TCTL(val) BSP_FLD32(val, 4, 6)
210#define STM32F4_OTGFS_DCTL_TCTL_GET(reg) BSP_FLD32GET(reg, 4, 6)
211#define STM32F4_OTGFS_DCTL_TCTL_SET(reg, val) BSP_FLD32SET(reg, val, 4, 6)
212#define STM32F4_OTGFS_DCTL_GONSTS BSP_BIT32(3)
213#define STM32F4_OTGFS_DCTL_GINSTS BSP_BIT32(2)
214#define STM32F4_OTGFS_DCTL_SDIS BSP_BIT32(1)
215#define STM32F4_OTGFS_DCTL_RWUSIG BSP_BIT32(0)
218#define STM32F4_OTGFS_DSTS_FNSOF(val) BSP_FLD32(val, 8, 21)
219#define STM32F4_OTGFS_DSTS_FNSOF_GET(reg) BSP_FLD32GET(reg, 8, 21)
220#define STM32F4_OTGFS_DSTS_EERR BSP_BIT32(3)
221#define STM32F4_OTGFS_DSTS_ENUMSPD(val) BSP_FLD32(val, 1, 2)
222#define STM32F4_OTGFS_DSTS_ENUMSPD_GET(reg) BSP_FLD32GET(reg, 1, 2)
223#define STM32F4_OTGFS_DSTS_ENUMSPD_FULL STM32F4_OTGFS_DSTS_ENUMSPD(0x3)
224#define STM32F4_OTGFS_DSTS_SUSPSTS BSP_BIT32(0)
233#define STM32F4_OTGFS_DAINT_OEPINT15 BSP_BIT32(31)
234#define STM32F4_OTGFS_DAINT_OEPINT14 BSP_BIT32(30)
235#define STM32F4_OTGFS_DAINT_OEPINT13 BSP_BIT32(29)
236#define STM32F4_OTGFS_DAINT_OEPINT12 BSP_BIT32(28)
237#define STM32F4_OTGFS_DAINT_OEPINT11 BSP_BIT32(27)
238#define STM32F4_OTGFS_DAINT_OEPINT10 BSP_BIT32(26)
239#define STM32F4_OTGFS_DAINT_OEPINT9 BSP_BIT32(25)
240#define STM32F4_OTGFS_DAINT_OEPINT8 BSP_BIT32(24)
241#define STM32F4_OTGFS_DAINT_OEPINT7 BSP_BIT32(23)
242#define STM32F4_OTGFS_DAINT_OEPINT6 BSP_BIT32(22)
243#define STM32F4_OTGFS_DAINT_OEPINT5 BSP_BIT32(21)
244#define STM32F4_OTGFS_DAINT_OEPINT4 BSP_BIT32(20)
245#define STM32F4_OTGFS_DAINT_OEPINT3 BSP_BIT32(19)
246#define STM32F4_OTGFS_DAINT_OEPINT2 BSP_BIT32(18)
247#define STM32F4_OTGFS_DAINT_OEPINT1 BSP_BIT32(17)
248#define STM32F4_OTGFS_DAINT_OEPINT0 BSP_BIT32(16)
249#define STM32F4_OTGFS_DAINT_IEPINT15 BSP_BIT32(15)
250#define STM32F4_OTGFS_DAINT_IEPINT14 BSP_BIT32(14)
251#define STM32F4_OTGFS_DAINT_IEPINT13 BSP_BIT32(13)
252#define STM32F4_OTGFS_DAINT_IEPINT12 BSP_BIT32(12)
253#define STM32F4_OTGFS_DAINT_IEPINT11 BSP_BIT32(11)
254#define STM32F4_OTGFS_DAINT_IEPINT10 BSP_BIT32(10)
255#define STM32F4_OTGFS_DAINT_IEPINT9 BSP_BIT32(9)
256#define STM32F4_OTGFS_DAINT_IEPINT8 BSP_BIT32(8)
257#define STM32F4_OTGFS_DAINT_IEPINT7 BSP_BIT32(7)
258#define STM32F4_OTGFS_DAINT_IEPINT6 BSP_BIT32(6)
259#define STM32F4_OTGFS_DAINT_IEPINT5 BSP_BIT32(5)
260#define STM32F4_OTGFS_DAINT_IEPINT4 BSP_BIT32(4)
261#define STM32F4_OTGFS_DAINT_IEPINT3 BSP_BIT32(3)
262#define STM32F4_OTGFS_DAINT_IEPINT2 BSP_BIT32(2)
263#define STM32F4_OTGFS_DAINT_IEPINT1 BSP_BIT32(1)
264#define STM32F4_OTGFS_DAINT_IEPINT0 BSP_BIT32(0)
267#define STM32F4_OTGFS_DAINTMSK_OEPM(val) BSP_FLD32(val, 16, 31)
268#define STM32F4_OTGFS_DAINTMSK_OEPM_GET(reg) BSP_FLD32GET(reg, 16, 31)
269#define STM32F4_OTGFS_DAINTMSK_OEPM_SET(reg, val) BSP_FLD32SET(reg, val, 16, 31)
270#define STM32F4_OTGFS_DAINTMSK_IEPM(val) BSP_FLD32(val, 0, 15)
271#define STM32F4_OTGFS_DAINTMSK_IEPM_GET(reg) BSP_FLD32GET(reg, 0, 15)
272#define STM32F4_OTGFS_DAINTMSK_IEPM_SET(reg, val) BSP_FLD32SET(reg, val, 0, 15)
277#define STM32F4_OTGFS_DVBUSDIS_VBUSDT(val) BSP_FLD32(val, 0, 15)
278#define STM32F4_OTGFS_DVBUSDIS_VBUSDT_GET(reg) BSP_FLD32GET(reg, 0, 15)
279#define STM32F4_OTGFS_DVBUSDIS_VBUSDT_SET(reg, val) BSP_FLD32SET(reg, val, 0, 15)
282#define STM32F4_OTGFS_DVBUSPULSE_DVBUSP(val) BSP_FLD32(val, 0, 15)
283#define STM32F4_OTGFS_DVBUSPULSE_DVBUSP_GET(reg) BSP_FLD32GET(reg, 0, 15)
284#define STM32F4_OTGFS_DVBUSPULSE_DVBUSP_SET(reg, val) BSP_FLD32SET(reg, val, 0, 15)
289#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM15 BSP_BIT32(15)
290#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM14 BSP_BIT32(14)
291#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM13 BSP_BIT32(13)
292#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM12 BSP_BIT32(12)
293#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM11 BSP_BIT32(11)
294#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM10 BSP_BIT32(10)
295#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM9 BSP_BIT32(9)
296#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM8 BSP_BIT32(8)
297#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM7 BSP_BIT32(7)
298#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM6 BSP_BIT32(6)
299#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM5 BSP_BIT32(5)
300#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM4 BSP_BIT32(4)
301#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM3 BSP_BIT32(3)
302#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM2 BSP_BIT32(2)
303#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM1 BSP_BIT32(1)
304#define STM32F4_OTGFS_DIEPEMPMSK_INEPTXFEM0 BSP_BIT32(0)
311#define STM32F4_OTGFS_DIEPCTL_EPENA BSP_BIT32(31)
312#define STM32F4_OTGFS_DIEPCTL_EPDIS BSP_BIT32(30)
313#define STM32F4_OTGFS_DIEPCTL_SODDFRM BSP_BIT32(29)
314#define STM32F4_OTGFS_DIEPCTL_SD0PID BSP_BIT32(28)
315#define STM32F4_OTGFS_DIEPCTL_SEVNFRM BSP_BIT32(28)
316#define STM32F4_OTGFS_DIEPCTL_SNAK BSP_BIT32(27)
317#define STM32F4_OTGFS_DIEPCTL_CNAK BSP_BIT32(26)
318#define STM32F4_OTGFS_DIEPCTL_TXFNUM(val) BSP_FLD32(val, 22, 25)
319#define STM32F4_OTGFS_DIEPCTL_TXFNUM_GET(reg) BSP_FLD32GET(reg, 22, 25)
320#define STM32F4_OTGFS_DIEPCTL_TXFNUM_SET(reg, val) BSP_FLD32SET(reg, val, 22, 25)
321#define STM32F4_OTGFS_DIEPCTL_STALL BSP_BIT32(21)
322#define STM32F4_OTGFS_DIEPCTL_EPTYP(val) BSP_FLD32(val, 18, 19)
323#define STM32F4_OTGFS_DIEPCTL_EPTYP_GET(reg) BSP_FLD32GET(reg, 18, 19)
324#define STM32F4_OTGFS_DIEPCTL_EPTYP_SET(reg, val) BSP_FLD32SET(reg, val, 18, 19)
329#define STM32F4_OTGFS_DIEPCTL_NAKSTS BSP_BIT32(17)
330#define STM32F4_OTGFS_DIEPCTL_EONUM_DPID BSP_BIT32(16)
331#define STM32F4_OTGFS_DIEPCTL_USBAEP BSP_BIT32(15)
332#define STM32F4_OTGFS_DIEPCTL_EP0_MPSIZ(val) BSP_FLD32(val, 0, 1)
333#define STM32F4_OTGFS_DIEPCTL_EP0_MPSIZ_GET(reg) BSP_FLD32GET(reg, 0, 1)
334#define STM32F4_OTGFS_DIEPCTL_EP0_MPSIZ_SET(reg, val) BSP_FLD32SET(reg, val, 0, 1)
336#define EP0_MPSIZ_16 2
337#define EP0_MPSIZ_32 1
338#define EP0_MPSIZ_64 0
339#define STM32F4_OTGFS_DIEPCTL_EP0_MPSIZ_8 STM32F4_OTGFS_DIEPCTL_MPSIZ(EP0_MPSIZ_8)
340#define STM32F4_OTGFS_DIEPCTL_EP0_MPSIZ_16 STM32F4_OTGFS_DIEPCTL_MPSIZ(EP0_MPSIZ_16)
341#define STM32F4_OTGFS_DIEPCTL_EP0_MPSIZ_32 STM32F4_OTGFS_DIEPCTL_MPSIZ(EP0_MPSIZ_32)
342#define STM32F4_OTGFS_DIEPCTL_EP0_MPSIZ_64 STM32F4_OTGFS_DIEPCTL_MPSIZ(EP0_MPSIZ_64)
343#define STM32F4_OTGFS_DIEPCTL_MPSIZ(val) BSP_FLD32(val, 0, 10)
344#define STM32F4_OTGFS_DIEPCTL_MPSIZ_GET(reg) BSP_FLD32GET(reg, 0, 10)
345#define STM32F4_OTGFS_DIEPCTL_MPSIZ_SET(reg, val) BSP_FLD32SET(reg, val, 0, 10)
347 uint32_t reserved_04;
350#define STM32F4_OTGFS_DIEPINT_TXFE BSP_BIT32(7)
351#define STM32F4_OTGFS_DIEPINT_INEPNE BSP_BIT32(6)
352#define STM32F4_OTGFS_DIEPINT_ITTXFE BSP_BIT32(4)
353#define STM32F4_OTGFS_DIEPINT_TOC BSP_BIT32(3)
354#define STM32F4_OTGFS_DIEPINT_EPDISD BSP_BIT32(1)
355#define STM32F4_OTGFS_DIEPINT_XFRC BSP_BIT32(0)
357 uint32_t reserved_0C;
360#define STM32F4_OTGFS_DIEPTSIZ_EP0_PKTCNT(val) BSP_FLD32(val, 19, 20)
361#define STM32F4_OTGFS_DIEPTSIZ_EP0_PKTCNT_GET(reg) BSP_FLD32GET(reg, 19, 20)
362#define STM32F4_OTGFS_DIEPTSIZ_EP0_PKTCNT_SET(reg, val) BSP_FLD32SET(reg, val, 19, 20)
363#define STM32F4_OTGFS_DIEPTSIZ_EP0_XFRSIZ(val) BSP_FLD32(val, 0, 6)
364#define STM32F4_OTGFS_DIEPTSIZ_EP0_XFRSIZ_GET(reg) BSP_FLD32GET(reg, 0, 6)
365#define STM32F4_OTGFS_DIEPTSIZ_EP0_XFRSIZ_SET(reg, val) BSP_FLD32SET(reg, val, 0, 6)
366#define STM32F4_OTGFS_DIEPTSIZ_MCNT(val) BSP_FLD32(val, 29, 30)
367#define STM32F4_OTGFS_DIEPTSIZ_MCNT_GET(reg) BSP_FLD32GET(reg, 29, 30)
368#define STM32F4_OTGFS_DIEPTSIZ_MCNT_SET(reg, val) BSP_FLD32SET(reg, val, 29, 30)
369#define STM32F4_OTGFS_DIEPTSIZ_PKTCNT(val) BSP_FLD32(val, 19, 28)
370#define STM32F4_OTGFS_DIEPTSIZ_PKTCNT_GET(reg) BSP_FLD32GET(reg, 19, 28)
371#define STM32F4_OTGFS_DIEPTSIZ_PKTCNT_SET(reg, val) BSP_FLD32SET(reg, val, 19, 28)
372#define STM32F4_OTGFS_DIEPTSIZ_XFRSIZ(val) BSP_FLD32(val, 0, 18)
373#define STM32F4_OTGFS_DIEPTSIZ_XFRSIZ_GET(reg) BSP_FLD32GET(reg, 0, 18)
374#define STM32F4_OTGFS_DIEPTSIZ_XFRSIZ_SET(reg, val) BSP_FLD32SET(reg, val, 0, 18)
376 uint32_t reserved_14;
379#define STM32F4_OTGFS_DTXFSTS_INEPTFSAV(val) BSP_FLD32(val, 0, 15)
380#define STM32F4_OTGFS_DTXFSTS_INEPTFSAV_GET(reg) BSP_FLD32(reg, 0, 15)
381#define STM32F4_OTGFS_DTXFSTS_INEPTFSAV_SET(reg, val) BSP_FLD32SET(reg, val, 0, 15)
383 uint32_t reserved_1C;
390#define STM32F4_OTGFS_DOEPCTL_EPENA BSP_BIT32(31)
391#define STM32F4_OTGFS_DOEPCTL_EPDIS BSP_BIT32(30)
392#define STM32F4_OTGFS_DOEPCTL_SD1PID BSP_BIT32(29)
393#define STM32F4_OTGFS_DOEPCTL_SD0PID BSP_BIT32(28)
394#define STM32F4_OTGFS_DOEPCTL_SNAK BSP_BIT32(27)
395#define STM32F4_OTGFS_DOEPCTL_CNAK BSP_BIT32(26)
396#define STM32F4_OTGFS_DOEPCTL_STALL BSP_BIT32(21)
397#define STM32F4_OTGFS_DOEPCTL_SNPM BSP_BIT32(20)
398#define STM32F4_OTGFS_DOEPCTL_EPTYP(val) BSP_FLD32(val, 18, 19)
399#define STM32F4_OTGFS_DOEPCTL_EPTYP_GET(reg) BSP_FLD32GET(reg, 18, 19)
400#define STM32F4_OTGFS_DOEPCTL_EPTYP_SET(reg, val) BSP_FLD32SET(reg, val, 18, 19)
401#define STM32F4_OTGFS_DOEPCTL_NAKSTS BSP_BIT32(17)
402#define STM32F4_OTGFS_DOEPCTL_EONUM_DPID BSP_BIT32(16)
403#define STM32F4_OTGFS_DOEPCTL_USBAEP BSP_BIT32(15)
404#define STM32F4_OTGFS_DOEPCTL_MPSIZ(val) BSP_FLD32(val, 0, 10)
405#define STM32F4_OTGFS_DOEPCTL_MPSIZ_GET(reg) BSP_FLD32GET(reg, 0, 10)
406#define STM32F4_OTGFS_DOEPCTL_MPSIZ_SET(reg, val) BSP_FLD32SET(reg, val, 0, 10)
411#define STM32F4_OTGFS_DOEPINT_B2BSTUP BSP_BIT32(6)
412#define STM32F4_OTGFS_DOEPINT_OTEPDIS BSP_BIT32(4)
413#define STM32F4_OTGFS_DOEPINT_STUP BSP_BIT32(3)
414#define STM32F4_OTGFS_DOEPINT_EPDISD BSP_BIT32(1)
415#define STM32F4_OTGFS_DOEPINT_XFRC BSP_BIT32(0)
418#define STM32F4_OTGFS_DOEPTSIZ_EP0_STUPCNT(val) BSP_FLD32(val, 29, 30)
419#define STM32F4_OTGFS_DOEPTSIZ_EP0_STUPCNT_GET(reg) BSP_FLD32GET(reg, 29, 30)
420#define STM32F4_OTGFS_DOEPTSIZ_EP0_STUPCNT_SET(reg, val) BSP_FLD32SET(reg, val, 29, 30)
421#define STM32F4_OTGFS_DOEPTSIZ_EP0_PKTCNT BSP_BIT32(19)
422#define STM32F4_OTGFS_DOEPTSIZ_EP0_XFRSIZ(val) BSP_FLD32(val, 0, 6)
423#define STM32F4_OTGFS_DOEPTSIZ_EP0_XFRSIZ_GET(reg) BSP_FLD32GET(reg, 0, 6)
424#define STM32F4_OTGFS_DOEPTSIZ_EP0_XFRSIZ_SET(reg, val) BSP_FLD32SET(reg, val, 0, 6)
425#define STM32F4_OTGFS_DOEPTSIZ_RXDPID(val) BSP_FLD32(val, 29, 30)
426#define STM32F4_OTGFS_DOEPTSIZ_RXDPID_GET(reg) BSP_FLD32GET(reg, 29, 30)
427#define STM32F4_OTGFS_DOEPTSIZ_RXDPID_SET(reg, val) BSP_FLD32SET(reg, val, 29, 30)
428#define STM32F4_OTGFS_DOEPTSIZ_PKTCNT(val) BSP_FLD32(val, 19, 28)
429#define STM32F4_OTGFS_DOEPTSIZ_PKTCNT_GET(reg) BSP_FLD32GET(reg, 19, 28)
430#define STM32F4_OTGFS_DOEPTSIZ_PKTCNT_SET(reg, val) BSP_FLD32SET(reg, val, 19, 28)
431#define STM32F4_OTGFS_DOEPTSIZ_XFRSIZ(val) BSP_FLD32(val, 0, 18)
432#define STM32F4_OTGFS_DOEPTSIZ_XFRSIZ_GET(reg) BSP_FLD32GET(reg, 0, 18)
433#define STM32F4_OTGFS_DOEPTSIZ_XFRSIZ_SET(reg, val) BSP_FLD32SET(reg, val, 0, 18)
441#define STM32F4_OTGFS_PCGCCTL_PHYSUSP BSP_BIT32(4)
442#define STM32F4_OTGFS_PCGCCTL_GATEHCLK BSP_BIT32(1)
443#define STM32F4_OTGFS_PCGCCTL_STPPCLK BSP_BIT32(0)
This header file provides utility macros for BSPs.
Definition: xnandpsu_onfi.h:185
Definition: stm32f4xxxx_otgfs.h:185
Definition: stm32f4xxxx_otgfs.h:309
Definition: stm32f4xxxx_otgfs.h:388
Definition: stm32f4xxxx_otgfs.h:439
Definition: stm32f4xxxx_otgfs.h:28