/** @file Copyright 2017, 2020 NXP SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef USB_HCD_H_ #define USB_HCD_H_ #include /* Global constants */ #define DWC3_GSNPSID_MASK 0xffff0000 #define DWC3_SYNOPSYS_ID 0x55330000 #define DWC3_RELEASE_MASK 0xffff #define DWC3_REG_OFFSET 0xC100 #define DWC3_RELEASE_190a 0x190a /* Global Configuration Register */ #define DWC3_GCTL_U2RSTECN BIT16 #define DWC3_GCTL_PRTCAPDIR(N) ((N) << 12) #define DWC3_GCTL_PRTCAP_HOST 1 #define DWC3_GCTL_PRTCAP_OTG 3 #define DWC3_GCTL_CORESOFTRESET BIT11 #define DWC3_GCTL_SCALEDOWN(N) ((N) << 4) #define DWC3_GCTL_SCALEDOWN_MASK DWC3_GCTL_SCALEDOWN(3) #define DWC3_GCTL_DISSCRAMBLE BIT3 #define DWC3_GCTL_DSBLCLKGTNG BIT0 /* Global HWPARAMS1 Register */ #define DWC3_GHWPARAMS1_EN_PWROPT(N) (((N) & (3 << 24)) >> 24) #define DWC3_GHWPARAMS1_EN_PWROPT_CLK 1 /* Global USB2 PHY Configuration Register */ #define DWC3_GUSB2PHYCFG_PHYSOFTRST BIT31 /* Global USB3 PIPE Control Register */ #define DWC3_GUSB3PIPECTL_PHYSOFTRST BIT31 /* Global Frame Length Adjustment Register */ #define GFLADJ_30MHZ_REG_SEL BIT7 #define GFLADJ_30MHZ(N) ((N) & 0x3f) #define GFLADJ_30MHZ_DEFAULT 0x20 /* Default to the FSL XHCI defines */ #define USB3_ENABLE_BEAT_BURST 0xF #define USB3_ENABLE_BEAT_BURST_MASK 0xFF #define USB3_SET_BEAT_BURST_LIMIT 0xF00 typedef struct { UINT32 GEvntAdrLo; UINT32 GEvntAdrHi; UINT32 GEvntSiz; UINT32 GEvntCount; } G_EVENT_BUFFER; typedef struct { UINT32 DDepCmdPar2; UINT32 DDepCmdPar1; UINT32 DDepCmdPar0; UINT32 DDepCmd; } D_PHYSICAL_EP; typedef struct { UINT32 GSBusCfg0; UINT32 GSBusCfg1; UINT32 GTxThrCfg; UINT32 GRxThrCfg; UINT32 GCtl; UINT32 Res1; UINT32 GSts; UINT32 Res2; UINT32 GSnpsId; UINT32 GGpio; UINT32 GUid; UINT32 GUctl; UINT64 GBusErrAddr; UINT64 GPrtbImap; UINT32 GHwParams0; UINT32 GHwParams1; UINT32 GHwParams2; UINT32 GHwParams3; UINT32 GHwParams4; UINT32 GHwParams5; UINT32 GHwParams6; UINT32 GHwParams7; UINT32 GDbgFifoSpace; UINT32 GDbgLtssm; UINT32 GDbgLnmcc; UINT32 GDbgBmu; UINT32 GDbgLspMux; UINT32 GDbgLsp; UINT32 GDbgEpInfo0; UINT32 GDbgEpInfo1; UINT64 GPrtbImapHs; UINT64 GPrtbImapFs; UINT32 Res3[28]; UINT32 GUsb2PhyCfg[16]; UINT32 GUsb2I2cCtl[16]; UINT32 GUsb2PhyAcc[16]; UINT32 GUsb3PipeCtl[16]; UINT32 GTxFifoSiz[32]; UINT32 GRxFifoSiz[32]; G_EVENT_BUFFER GEvntBuf[32]; UINT32 GHwParams8; UINT32 Res4[11]; UINT32 GFLAdj; UINT32 Res5[51]; UINT32 DCfg; UINT32 DCtl; UINT32 DEvten; UINT32 DSts; UINT32 DGCmdPar; UINT32 DGCmd; UINT32 Res6[2]; UINT32 DAlepena; UINT32 Res7[55]; D_PHYSICAL_EP DPhyEpCmd[32]; UINT32 Res8[128]; UINT32 OCfg; UINT32 OCtl; UINT32 OEvt; UINT32 OEvtEn; UINT32 OSts; UINT32 Res9[3]; UINT32 AdpCfg; UINT32 AdpCtl; UINT32 AdpEvt; UINT32 AdpEvten; UINT32 BcCfg; UINT32 Res10; UINT32 BcEvt; UINT32 BcEvten; } DWC3; #endif