40 #define USB_DEVICE_HS_SUPPORT 43 #define USB_DEVICE_EP_CTRL_SIZE 64 49 #define CHIP_USB_PULLUP_INTERNAL 52 #define CHIP_USB_NUMENDPOINTS 10 55 #define CHIP_USB_ENDPOINTS_MAXPACKETSIZE(ep) \ 56 ((ep == 0) ? 64 : 1024) 59 #define CHIP_USB_ENDPOINTS_BANKS(ep) ((ep==0)?1:((ep<=2)?3:2)) 62 #define CHIP_USB_ENDPOINTS_HBW(ep) ((((ep)>=1) &&((ep)<=2))?true:false) 65 #define CHIP_USB_ENDPOINTS_DMA(ep) ((((ep)>=1)&&((ep)<=7))?true:false) 68 #define DMA_MAX_FIFO_SIZE (65536/1) 70 #define EPT_VIRTUAL_SIZE 8192 77 #define uhd_get_pipe_max_nbr() (9) 78 #define USBHS_EPT_NUM (uhd_get_pipe_max_nbr()+1) 79 #define uhd_get_pipe_bank_max_nbr(ep) ((ep == 0) ? 1 : ((ep <= 2) ? 3 : 2)) 81 #define uhd_get_pipe_size_max(ep) (((ep) == 0) ? 64 : 1024) 83 #define Is_uhd_pipe_dma_supported(ep) ((((ep) >= 1) && ((ep) <= 7)) ? true : false) 85 #define Is_uhd_pipe_high_bw_supported(ep) (((ep) >= 2) ? true : false) 95 #define UHD_PIPE_MAX_TRANS 0x8000 632 const uint8_t Type,
const uint8_t Dir,
633 const uint8_t Size,
const uint8_t Bank)
919 #define CHIP_USB_NUMPIPE 10 921 #define CHIP_USB_DMA_NUMPIPE 7 924 #define CHIP_USB_PIPE_MAXPACKETSIZE(ep) \ 925 ((ep == 0) ? 64 : 1024) 928 #define CHIP_USB_PIPE_BANKS(ep) ((ep==0)?1:((ep<=2)?3:2)) 931 #define CHIP_USB_PIPE_HBW(ep) ((((ep)>=1) &&((ep)<=2))?true:false) 934 #define CHIP_USB_PIPE_DMA(ep) ((((ep)>=1)&&((ep)<=7))?true:false) 1214 else if ((Pipe < 8) && (Pipe >= 4))
1227 else if ((Pipe < 8) && (Pipe >= 4))
1279 uint32_t pipeBank, uint8_t pipeSize, uint32_t pipeType, uint32_t pipeToken,
1280 uint8_t pipeEpNum, uint8_t PipeIntFreq)
1373 return (((pUsbhs->
USBHS_HSTPIPCFG[Pipe] & USBHS_HSTPIPCFG_PEPNUM_Msk) >>
1505 uint8_t Pipe, uint32_t intType)
1600 uint32_t status =
USBHS->USBHS_HSTISR;
1601 uint32_t mask =
USBHS->USBHS_HSTIMR;
1607 uint32_t status =
USBHS->USBHS_HSTISR;
1608 uint32_t mask =
USBHS->USBHS_HSTIMR;
__STATIC_INLINE void USBHS_Resume(void)
Sets USB host send Resume on USB bus.
__O uint32_t USBHS_HSTPIPICR[10]
(Usbhs Offset: 0x560) Host Pipe Clear Register (n = 0)
__STATIC_INLINE void USBHS_HostConfigureDma(UsbhsHstdma *pUsbDma, uint32_t Cfg)
Setup the USBHS DMA.
#define USBHS_DEVEPTCFG_EPBK_Msk
(USBHS_DEVEPTCFG[10]) Endpoint Banks
__I uint32_t USBHS_HSTPIPISR[10]
(Usbhs Offset: 0x530) Host Pipe Status Register (n = 0)
#define USBHS_DEVCTRL_LS
(USBHS_DEVCTRL) Low-Speed Mode Force
__STATIC_INLINE void USBHS_DisableSOF(void)
Sets USB host disable the Generation of Start of Frame.
#define USBHS_DEVCTRL_SPDCONF_FORCED_FS
(USBHS_DEVCTRL) The peripheral remains in Full-speed mode whatever the host speed capability...
__STATIC_INLINE uint32_t USBHS_GetHostDmaBuffAdd(UsbhsHstdma *pUsbDma)
Gets USBHS's DMA Buffer addresse.
#define USBHS_DEVCTRL_DETACH
(USBHS_DEVCTRL) Detach
#define USBHS_HSTPIPCFG_ALLOC
(USBHS_HSTPIPCFG[10]) Pipe Memory Allocate
__STATIC_INLINE uint32_t USBHS_GetEpSize(Usbhs *pUsbhs, uint8_t Ep)
#define USBHS_HSTPIPISR_DTSEQ_Msk
(USBHS_HSTPIPISR[10]) Data Toggle Sequence
__STATIC_INLINE void USBHS_HostDisableInReq(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_HostIntDisable(Usbhs *pUsbhs, uint32_t IntType)
Gets USB host interrupt status.
#define USBHS_DEVEPTISR_BYCT_Pos
#define USBHS_DEVCTRL_SPDCONF_HIGH_SPEED
(USBHS_DEVCTRL) Forced high speed.
__STATIC_INLINE void USBHS_HostFreeMem(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
#define USBHS_HSTPIP_PRST0
(USBHS_HSTPIP) Pipe 0 Reset
#define USBHS_CTRL_UIMOD_DEVICE
(USBHS_CTRL) The module is in USB Device mode.
__I uint32_t USBHS_DEVEPTISR[10]
(Usbhs Offset: 0x130) Device Endpoint Status Register (n = 0)
__O uint32_t USBHS_HSTPIPIFR[10]
(Usbhs Offset: 0x590) Host Pipe Set Register (n = 0)
#define USBHS_HSTPIPISR_NBUSYBK_Pos
__IO uint32_t USBHS_HSTPIPERR[10]
(Usbhs Offset: 0x680) Host Pipe Error Register (n = 0)
__I uint32_t USBHS_DEVIMR
(Usbhs Offset: 0x0010) Device Global Interrupt Mask Register
#define USBHS_DEVFNUM_FNUM_Pos
#define USBHS_HSTIDR_PEP_0
(USBHS_HSTIDR) Pipe 0 Interrupt Disable
__STATIC_INLINE void USBHS_Set(Usbhs *pUsbhs, uint32_t SetStatus)
Raise interrupt for endpoint.
#define USBHS_DEVDMASTATUS_BUFF_COUNT_Pos
__STATIC_INLINE uint32_t USBHS_ReadDmaIntStatus(Usbhs *pUsbhs, uint8_t DmaNum)
Read status for a DMA Endpoint.
__STATIC_INLINE void USBHS_EnableEPIntType(Usbhs *pUsbhs, uint8_t Ep, uint32_t EpInt)
__STATIC_INLINE uint32_t USBHS_GetDmaConfiguration(UsbhsDevdma *pUsbDma)
Get DMA configuration.
__STATIC_INLINE uint32_t USBHS_ReadIntStatus(Usbhs *pUsbhs, uint32_t IntType)
Read status for an interrupt.
#define USBHS_DEVCTRL_ADDEN
(USBHS_DEVCTRL) Address Enable
__O uint32_t USBHS_DEVIDR
(Usbhs Offset: 0x0014) Device Global Interrupt Disable Register
__STATIC_INLINE uint32_t USBHS_GetHostDmaNDA(UsbhsHstdma *pUsbDma)
Gets DMA next descriptor address.
static uint8_t USBHS_GetInterruptPipeDmaNum(void)
__STATIC_INLINE void USBHS_RaiseInt(Usbhs *pUsbhs, uint32_t IntType)
Raise interrupt for endpoint.
__IO uint32_t USBHS_HSTPIP
(Usbhs Offset: 0x0041C) Host Pipe Register
__STATIC_INLINE uint16_t USBHS_HostGetFramePos(void)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_StopReset(void)
Sets USB host sends reste signal on USB Bus.
__STATIC_INLINE void USBHS_SetHostDmaBuffAdd(UsbhsHstdma *pUsbDma, uint32_t Addr)
Sets USBHS's DMA Buffer addresse.
__STATIC_INLINE void USBHS_EnableAddress(Usbhs *pUsbhs, uint8_t Enable)
Enable or disable USB address.
__I uint32_t USBHS_DEVEPTIMR[10]
(Usbhs Offset: 0x1C0) Device Endpoint Mask Register (n = 0)
__O uint32_t USBHS_HSTPIPIDR[10]
(Usbhs Offset: 0x620) Host Pipe Disable Register (n = 0)
__STATIC_INLINE void USBHS_ConfigureEPs(Usbhs *pUsbhs, const uint8_t Ep, const uint8_t Type, const uint8_t Dir, const uint8_t Size, const uint8_t Bank)
__STATIC_INLINE uint8_t USBHS_GetFrameNum(Usbhs *pUsbhs)
Get Frame number.
__STATIC_INLINE uint16_t USBHS_HostGetSize(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
#define CHIP_USB_DMA_NUMPIPE
__STATIC_INLINE uint32_t USBHS_GetUsbSpeed(Usbhs *pUsbhs)
Enable or disable USB address.
#define USBHS_DEVIFR_DMA_1
(USBHS_DEVIFR) DMA Channel 1 Interrupt Set
__STATIC_INLINE uint32_t USBHS_HostGetIntTypeStatus(Usbhs *pUsbhs, uint8_t Pipe, uint32_t intType)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_ResetEP(Usbhs *pUsbhs, uint8_t Ep)
Rests Endpoint.
__STATIC_INLINE void USBHS_HostPipeDisable(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
__IO uint32_t USBHS_HSTADDR2
(Usbhs Offset: 0x0428) Host Address 2 Register
__STATIC_INLINE uint8_t USBHS_GetMicroFrameNum(Usbhs *pUsbhs)
Get MicrFrame number.
__STATIC_INLINE uint32_t USBHS_IsDmaIntEnable(Usbhs *pUsbhs, uint8_t DmaNum)
Check if endpoint's DMA interrupt is enabled for a given endpoint DMA number.
#define USBHS_HSTPIPINRQ_INMODE
(USBHS_HSTPIPINRQ[10]) IN Request Mode
__STATIC_INLINE uint32_t USBHS_IsHostPipeIntEnable(Usbhs *pUsbhs, uint8_t PipeInt)
Gets USB host interrupt status.
#define USBHS_HSTFNUM_MFNUM_Msk
(USBHS_HSTFNUM) Micro Frame Number
__STATIC_INLINE uint8_t USBHS_IsEnableSOF(Usbhs *pUsbhs)
Sets USB host Enable the Generation of Start of Frame.
__IO uint32_t USBHS_HSTDMANXTDSC
(UsbhsHstdma Offset: 0x0) Host DMA Channel Next Descriptor Address Register
#define USBHS_HSTCTRL_SPDCONF_Msk
(USBHS_HSTCTRL) Mode Configuration
__O uint32_t USBHS_SCR
(Usbhs Offset: 0x0808) General Status Clear Register
__STATIC_INLINE uint32_t USBHS_HostGetToken(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
#define USBHS_SR_SPEED_LOW_SPEED
(USBHS_SR) Low-Speed mode
#define USBHS_DEVFNUM_FNCERR
(USBHS_DEVFNUM) Frame Number CRC Error
__STATIC_INLINE uint8_t USBHS_HostGetCurrentBank(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_SetHostDmaNDA(UsbhsHstdma *pUsbDma, uint32_t Desc)
Sets DMA next descriptor address.
__STATIC_INLINE void USBHS_HostSetPipeType(Usbhs *pUsbhs, uint8_t Pipe, uint8_t PipeType)
Gets USB host interrupt status.
__O uint32_t USBHS_HSTIDR
(Usbhs Offset: 0x0414) Host Global Interrupt Disable Register
#define USBHS_HSTPIPCFG_PTOKEN_Msk
(USBHS_HSTPIPCFG[10]) Pipe Token
#define USBHS_HSTIER_PEP_0
(USBHS_HSTIER) Pipe 0 Interrupt Enable
#define USBHS_DEVFNUM_FNUM_Msk
(USBHS_DEVFNUM) Frame Number
#define USBHS_DEVEPTIMR_KILLBK
(USBHS_DEVEPTIMR[10]) Kill IN Bank
__STATIC_INLINE uint8_t USBHS_GetFrameNumCrcErr(Usbhs *pUsbhs)
Get Frame number CRC error.
__STATIC_INLINE uint8_t USBHS_HostGetNumOfBusyBank(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
#define USBHS_DEVEPTISR_NBUSYBK_Pos
__STATIC_INLINE void USBHS_KillBank(Usbhs *pUsbhs, uint8_t Ep)
__STATIC_INLINE void USBHS_FreezeClock(Usbhs *pUsbhs)
Freeze or unfreeze USB clock.
__STATIC_INLINE uint8_t USBHS_GetEpType(Usbhs *pUsbhs, uint8_t Ep)
#define USBHS_DEVIMR_PEP_0
(USBHS_DEVIMR) Endpoint 0 Interrupt Mask
__STATIC_INLINE uint32_t USBHS_GetHostStatus(Usbhs *pUsbhs, uint8_t IntType)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_HostSetAddr(Usbhs *pUsbhs, uint8_t Pipe, uint8_t Addr)
#define USBHS_CTRL_USBE
(USBHS_CTRL) USBHS Enable
__STATIC_INLINE uint32_t USBHS_IsHostDmaIntEnable(Usbhs *pUsbhs, uint8_t PipeInt)
Gets USB host interrupt status.
__IO uint32_t USBHS_CTRL
(Usbhs Offset: 0x0800) General Control Register
__STATIC_INLINE void USBHS_HostEnableAutoSw(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
__IO uint32_t USBHS_DEVEPT
(Usbhs Offset: 0x001C) Device Endpoint Register
__STATIC_INLINE void USBHS_Ack(Usbhs *pUsbhs, uint32_t AckType)
Raise interrupt for endpoint.
__I uint32_t USBHS_DEVFNUM
(Usbhs Offset: 0x0020) Device Frame Number Register
__IO uint32_t USBHS_HSTDMASTATUS
(UsbhsHstdma Offset: 0xC) Host DMA Channel Status Register
#define USBHS_HSTPIPISR_NBUSYBK_Msk
(USBHS_HSTPIPISR[10]) Number of Busy Banks
#define USBHS_HSTPIPCFG_AUTOSW
(USBHS_HSTPIPCFG[10]) Automatic Switch
__O uint32_t USBHS_DEVEPTIER[10]
(Usbhs Offset: 0x1F0) Device Endpoint Enable Register (n = 0)
#define USBHS_DEVCTRL_UADD_Msk
(USBHS_DEVCTRL) USB Address
#define USBHS_HSTPIPCFG_PEPNUM(value)
__STATIC_INLINE void USBHS_HostDmaIntEnable(Usbhs *pUsbhs, uint8_t PipeInt)
Gets USB host interrupt status.
__STATIC_INLINE uint16_t USBHS_GetDmaBuffCount(UsbhsDevdma *pUsbDma)
Get DMA buffer's count.
__O uint32_t USBHS_HSTIER
(Usbhs Offset: 0x0418) Host Global Interrupt Enable Register
#define USBHS_SR_SPEED_FULL_SPEED
(USBHS_SR) Full-Speed mode
__STATIC_INLINE uint16_t USBHS_HostGetSOF(void)
Gets USB host interrupt status.
__STATIC_INLINE uint32_t USBHS_GetHostDmaConfiguration(UsbhsHstdma *pUsbDma)
Get DMA configuration.
#define USBHS_HSTCTRL_SOFE
(USBHS_HSTCTRL) Start of Frame Generation Enable
__STATIC_INLINE void USBHS_EnableEP(Usbhs *pUsbhs, uint8_t Ep, uint8_t Enable)
Enables or disables endpoint.
__O uint32_t USBHS_HSTIFR
(Usbhs Offset: 0x040C) Host Global Interrupt Set Register
__STATIC_INLINE void USBHS_SetDmaNDA(UsbhsDevdma *pUsbDma, uint32_t Desc)
Sets DMA next descriptor address.
__IO uint32_t USBHS_DEVDMASTATUS
(UsbhsDevdma Offset: 0xC) Device DMA Channel Status Register
#define USBHS_HSTFNUM_FLENHIGH_Msk
(USBHS_HSTFNUM) Frame Length
__STATIC_INLINE void USBHS_HostSetPipeIntType(Usbhs *pUsbhs, uint8_t Pipe, uint32_t intType)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_SetDmaBuffAdd(UsbhsDevdma *pUsbDma, uint32_t Addr)
Sets USBHS's DMA Buffer addresse.
#define USBHS_HSTPIPINRQ_INRQ(value)
__STATIC_INLINE uint32_t USBHS_ReadStatus(Usbhs *pUsbhs)
Raise interrupt for endpoint.
__IO uint32_t USBHS_DEVDMAADDRESS
(UsbhsDevdma Offset: 0x4) Device DMA Channel Address Register
__STATIC_INLINE uint32_t USBHS_ReadEPStatus(Usbhs *pUsbhs, uint8_t Ep, uint32_t EpInt)
__STATIC_INLINE void USBHS_HostPipeEnable(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_EnableDMAIntEP(Usbhs *pUsbhs, uint32_t DmaEp)
Enables DMA interrupt for a given endpoint.
__STATIC_INLINE uint8_t USBHS_GetPipeEpAddr(Usbhs *pUsbhs, uint8_t Pipe)
#define USBHS_HSTPIPCFG_PSIZE_Pos
#define USBHS_HSTCTRL_SPDCONF_NORMAL
(USBHS_HSTCTRL) The host starts in Full-speed mode and performs a high-speed reset to switch to High-...
#define USBHS_HSTPIPISR_PBYCT_Msk
(USBHS_HSTPIPISR[10]) Pipe Byte Count
#define USBHS_HSTPIPCFG_PSIZE(value)
#define USBHS_HSTCTRL_SPDCONF_FORCED_FS
(USBHS_HSTCTRL) The host remains in Full-speed mode whatever the peripheral speed capability...
#define USBHS_HSTIFR_DMA_1
(USBHS_HSTIFR) DMA Channel 1 Interrupt Set
__I uint32_t USBHS_HSTPIPIMR[10]
(Usbhs Offset: 0x5C0) Host Pipe Mask Register (n = 0)
__STATIC_INLINE void USBHS_SetAddress(Usbhs *pUsbhs, uint8_t Addr)
Configure USB address and enable or disable it.
__STATIC_INLINE void USBHS_EnableHSTestMode(Usbhs *pUsbhs)
Disable/Enables HS Test mode.
#define USBHS_HSTPIPCFG_BINTERVAL(value)
__STATIC_INLINE void USBHS_RaiseDmaInt(Usbhs *pUsbhs, uint8_t Dma)
Raise DMA interrupt for endpoint.
#define USBHS_DEVIDR_DMA_1
(USBHS_DEVIDR) DMA Channel 1 Interrupt Disable
#define USBHS_HSTPIPCFG_PINGEN
(USBHS_HSTPIPCFG[10]) Ping Enable
__STATIC_INLINE void USBHS_AutoSwitchBankEnable(Usbhs *pUsbhs, uint8_t Ep, uint8_t Enable)
__STATIC_INLINE void USBHS_HostPipeIntDisable(Usbhs *pUsbhs, uint8_t PipeInt)
Gets USB host interrupt status.
#define USBHS
(USBHS ) Base Address
__STATIC_INLINE void USBHS_HostAckPipeIntType(Usbhs *pUsbhs, uint8_t Pipe, uint32_t intType)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_EnableSOF(Usbhs *pUsbhs)
Sets USB host Enable the Generation of Start of Frame.
__STATIC_INLINE uint32_t USBHS_IsIntEnable(Usbhs *pUsbhs, uint32_t IntType)
check for interrupt of endpoint.
__STATIC_INLINE void USBHS_HostClearErr(Usbhs *pUsbhs, uint8_t Pipe, uint8_t Err)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_HostAllocMem(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_DisableIntEP(Usbhs *pUsbhs, uint8_t Ep)
Disables interrupt for endpoint.
__STATIC_INLINE void USBHS_EnableHighSpeed(Usbhs *pUsbhs, uint8_t Enable)
Disable/Enables High Speed mode.
#define USBHS_SR_CLKUSABLE
(USBHS_SR) UTMI Clock Usable
__STATIC_INLINE void USBHS_SetHostHighSpeed(Usbhs *pUsbhs)
Sets USB host's speed to Normal , it sets to HS from FS.
__STATIC_INLINE uint32_t USBHS_GetHostDmaPipeStatus(Usbhs *pUsbhs, uint8_t PipeInt)
Gets USB host interrupt status.
#define USBHS_DEVEPTCFG_AUTOSW
(USBHS_DEVEPTCFG[10]) Automatic Switch
__O uint32_t USBHS_DEVIFR
(Usbhs Offset: 0x000C) Device Global Interrupt Set Register
__STATIC_INLINE uint32_t USBHS_GetHostPipeDmaStatus(UsbhsHstdma *pUsbDma)
Get Dma Status.
#define USBHS_SR_SPEED_Msk
(USBHS_SR) Speed Status (Device mode only)
__STATIC_INLINE bool USBHS_IsUsbHighSpeed(Usbhs *pUsbhs)
Enable or disable USB address.
__STATIC_INLINE void USBHS_SetHostForcedFullSpeed(Usbhs *pUsbhs)
Sets USB host's speed to forced Full speed.
__STATIC_INLINE void USBHS_DisableInt(Usbhs *pUsbhs, uint32_t IntType)
Disables interrupt for endpoint.
__STATIC_INLINE void USBHS_HostDmaIntDisable(Usbhs *pUsbhs, uint8_t PipeInt)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_AckInt(Usbhs *pUsbhs, uint32_t IntType)
Acknowledge interrupt for endpoint.
#define USBHS_HSTPIPCFG_PEPNUM_Msk
(USBHS_HSTPIPCFG[10]) Pipe Endpoint Number
#define USBHS_DEVEPTCFG_EPTYPE_Pos
#define USBHS_DEVCTRL_UADD(value)
#define USBHS_DEVISR_DMA_1
(USBHS_DEVISR) DMA Channel 1 Interrupt
#define USBHS_DEVEPTCFG_NBTRANS(value)
#define USBHS_DEVEPTCFG_EPBK_Pos
__STATIC_INLINE void USBHS_HostSetToken(Usbhs *pUsbhs, uint8_t Pipe, uint32_t Token)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_ConfigureDma(UsbhsDevdma *pUsbDma, uint32_t Cfg)
Setup the USBHS DMA.
__STATIC_INLINE void USBHS_HostSetErr(Usbhs *pUsbhs, uint8_t Pipe, uint8_t Err)
Gets USB host interrupt status.
__O uint32_t USBHS_DEVEPTIFR[10]
(Usbhs Offset: 0x190) Device Endpoint Set Register (n = 0)
#define ctz(u)
Counts the trailing zero bits of the given value considered as a 32-bit integer.
__I uint32_t USBHS_HSTISR
(Usbhs Offset: 0x0404) Host Global Interrupt Status Register
__STATIC_INLINE uint32_t USBHS_GetDmaBuffAdd(UsbhsDevdma *pUsbDma)
Gets USBHS's DMA Buffer addresse.
__STATIC_INLINE void USBHS_SetHostDmaStatus(Usbhs *pUsbhs, uint8_t PipeInt)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_SetHostPipeDmaStatus(UsbhsHstdma *pUsbDma, uint32_t Status)
Set DMA status.
__STATIC_INLINE void USBHS_AllocateMemory(Usbhs *pUsbhs, uint8_t Ep)
#define USBHS_DEVISR_PEP_0
(USBHS_DEVISR) Endpoint 0 Interrupt
__STATIC_INLINE void USBHS_Reset(void)
Sets USB host sends reste signal on USB Bus.
__I uint32_t USBHS_HSTIMR
(Usbhs Offset: 0x0410) Host Global Interrupt Mask Register
__STATIC_INLINE void USBHS_SetIsoTrans(Usbhs *pUsbhs, uint8_t Ep, uint8_t nbTrans)
#define USBHS_DEVEPTCFG_EPSIZE_Msk
(USBHS_DEVEPTCFG[10]) Endpoint Size
__O uint32_t USBHS_DEVICR
(Usbhs Offset: 0x0008) Device Global Interrupt Clear Register
__O uint32_t USBHS_SFR
(Usbhs Offset: 0x080C) General Status Set Register
__STATIC_INLINE void USBHS_ForceLowSpeed(Usbhs *pUsbhs, uint8_t Enable)
Force Low Speed mode.
__STATIC_INLINE void USBHS_EnableInt(Usbhs *pUsbhs, uint32_t IntType)
Enables Interrupt.
__STATIC_INLINE uint8_t USBHS_HostGetDataTogSeq(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
__O uint32_t USBHS_DEVEPTIDR[10]
(Usbhs Offset: 0x220) Device Endpoint Disable Register (n = 0)
__IO uint32_t USBHS_HSTDMAADDRESS
(UsbhsHstdma Offset: 0x4) Host DMA Channel Address Register
#define USBHS_HSTPIPISR_DTSEQ_Pos
__STATIC_INLINE void USBHS_UnFreezeClock(Usbhs *pUsbhs)
Freeze or unfreeze USB clock.
__IO uint32_t USBHS_HSTPIPCFG[10]
(Usbhs Offset: 0x500) Host Pipe Configuration Register (n = 0)
#define USBHS_DEVEPTISR_NBUSYBK_Msk
(USBHS_DEVEPTISR[10]) Number of Busy Banks
__STATIC_INLINE bool USBHS_IsUsbLowSpeed(Usbhs *pUsbhs)
Enable or disable USB address.
__STATIC_INLINE uint32_t USBHS_HostGetPipeType(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
#define USBHS_DEVCTRL_RMWKUP
(USBHS_DEVCTRL) Remote Wake-Up
__STATIC_INLINE void USBHS_HostDisableAutoSw(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
#define USBHS_DEVIDR_PEP_0
(USBHS_DEVIDR) Endpoint 0 Interrupt Disable
__STATIC_INLINE void USBHS_HostPipeIntEnable(Usbhs *pUsbhs, uint8_t PipeInt)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_HostInReq(Usbhs *pUsbhs, uint8_t Pipe, uint8_t InReq)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_HostEnableInReq(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
#define USBHS_HSTPIP_PEN0
(USBHS_HSTPIP) Pipe 0 Enable
__STATIC_INLINE uint8_t USBHS_HostGetPipeByteCount(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
__STATIC_INLINE uint32_t USBHS_IsIntEnableEP(Usbhs *pUsbhs, uint8_t EpNum)
Check if endpoint's interrupt is enabled for a given endpoint number.
#define USBHS_CTRL_FRZCLK
(USBHS_CTRL) Freeze USB Clock
__STATIC_INLINE uint32_t USBHS_IsBankKilled(Usbhs *pUsbhs, uint8_t Ep)
__STATIC_INLINE void USBHS_FreeMemory(Usbhs *pUsbhs, uint8_t Ep)
__IO uint32_t USBHS_HSTCTRL
(Usbhs Offset: 0x0400) Host General Control Register
#define USBHS_HSTISR_PEP_0
(USBHS_HSTISR) Pipe 0 Interrupt
#define USBHS_HSTFNUM_FLENHIGH_Pos
__STATIC_INLINE void USBHS_HostEnablePipeIntType(Usbhs *pUsbhs, uint8_t Pipe, uint32_t intType)
Gets USB host interrupt status.
#define USBHS_HSTPIPCFG_PTYPE_Msk
(USBHS_HSTPIPCFG[10]) Pipe Type
#define USBHS_DEVEPTIER_KILLBKS
(USBHS_DEVEPTIER[10]) Kill IN Bank
#define USBHS_DEVFNUM_MFNUM_Msk
(USBHS_DEVFNUM) Micro Frame Number
__IO uint32_t USBHS_HSTADDR1
(Usbhs Offset: 0x0424) Host Address 1 Register
__STATIC_INLINE uint8_t USBHS_HostGetErr(Usbhs *pUsbhs, uint8_t Pipe, uint8_t Err)
Gets USB host interrupt status.
__IO uint32_t USBHS_DEVDMANXTDSC
(UsbhsDevdma Offset: 0x0) Device DMA Channel Next Descriptor Address Register
#define USBHS_HSTIDR_DMA_1
(USBHS_HSTIDR) DMA Channel 1 Interrupt Disable
__STATIC_INLINE uint8_t USBHS_GetAddress(Usbhs *pUsbhs)
Get USB address.
__STATIC_INLINE void USBHS_ClearHostStatus(Usbhs *pUsbhs, uint32_t IntType)
Gets USB host interrupt status.
#define USBHS_DEVEPT_EPEN0
(USBHS_DEVEPT) Endpoint 0 Enable
#define USBHS_HSTFNUM_FNUM_Msk
(USBHS_HSTFNUM) Frame Number
__IO uint32_t USBHS_HSTADDR3
(Usbhs Offset: 0x042C) Host Address 3 Register
__STATIC_INLINE uint8_t USBHS_IsHostIntEnable(Usbhs *pUsbhs, uint8_t IntType)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_DisableDMAIntEP(Usbhs *pUsbhs, uint8_t DmaEp)
Disables DMA interrupt for endpoint.
__STATIC_INLINE uint32_t USBHS_IsHostConfigOk(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
#define USBHS_DEVEPTCFG_ALLOC
(USBHS_DEVEPTCFG[10]) Endpoint Memory Allocate
__STATIC_INLINE void USBHS_HostIntEnable(Usbhs *pUsbhs, uint32_t IntType)
Gets USB host interrupt status.
#define USBHS_HSTPIPISR_PBYCT_Pos
UsbhsHstdma hardware registers.
#define USBHS_SR_SPEED_HIGH_SPEED
(USBHS_SR) High-Speed mode
__STATIC_INLINE void USBHS_HostEnablePing(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
__STATIC_INLINE uint8_t USBHS_IsHostInReqEnable(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
#define USBHS_HSTISR_DMA_1
(USBHS_HSTISR) DMA Channel 1 Interrupt
__O uint32_t USBHS_HSTICR
(Usbhs Offset: 0x0408) Host Global Interrupt Clear Register
__IO uint32_t USBHS_DEVEPTCFG[10]
(Usbhs Offset: 0x100) Device Endpoint Configuration Register (n = 0)
#define USBHS_HSTFNUM_MFNUM_Pos
__STATIC_INLINE void USBHS_UsbEnable(Usbhs *pUsbhs, uint8_t Enable)
Enables or disables USB.
#define USBHS_DEVEPT_EPRST0
(USBHS_DEVEPT) Endpoint 0 Reset
__STATIC_INLINE uint32_t USBHS_IsEPEnabled(Usbhs *pUsbhs, uint8_t Ep)
Checks if Endpoint is enable.
#define USBHS_HSTCTRL_RESUME
(USBHS_HSTCTRL) Send USB Resume
__STATIC_INLINE uint8_t USBHS_HostGetAddr(Usbhs *pUsbhs, uint8_t Pipe)
__STATIC_INLINE void USBHS_DetachUsb(Usbhs *pUsbhs, uint8_t Enable)
Attach or detach USB.
#define USBHS_DEVEPTISR_CFGOK
(USBHS_DEVEPTISR[10]) Configuration OK Status
#define USBHS_DEVEPTCFG_EPSIZE_Pos
#define USBHS_DEVIMR_DMA_1
(USBHS_DEVIMR) DMA Channel 1 Interrupt Mask
__O uint32_t USBHS_DEVIER
(Usbhs Offset: 0x0018) Device Global Interrupt Enable Register
#define USBHS_HSTCTRL_RESET
(USBHS_HSTCTRL) Send USB Reset
__STATIC_INLINE uint8_t USBHS_GetInterruptPipeNum(void)
__IO uint32_t USBHS_HSTDMACONTROL
(UsbhsHstdma Offset: 0x8) Host DMA Channel Control Register
__I uint32_t USBHS_DEVISR
(Usbhs Offset: 0x0004) Device Global Interrupt Status Register
#define USBHS_DEVEPTCFG_EPTYPE_Msk
(USBHS_DEVEPTCFG[10]) Endpoint Type
__STATIC_INLINE void USBHS_UsbMode(Usbhs *pUsbhs, USB_Mode_t Mode)
Device or Host Mode.
#define USBHS_HSTPIPISR_CURRBK_Msk
(USBHS_HSTPIPISR[10]) Current Bank
__STATIC_INLINE uint8_t USBHS_ISUsableClock(Usbhs *pUsbhs)
Check if clock is usable or not.
__O uint32_t USBHS_HSTPIPIER[10]
(Usbhs Offset: 0x5F0) Host Pipe Enable Register (n = 0)
#define USBHS_DEVEPTCFG_EPDIR
(USBHS_DEVEPTCFG[10]) Endpoint Direction
__STATIC_INLINE uint16_t USBHS_ByteCount(Usbhs *pUsbhs, uint8_t Ep)
#define USBHS_DEVIER_PEP_0
(USBHS_DEVIER) Endpoint 0 Interrupt Enable
#define USBHS_HSTCTRL_SPDCONF_LOW_POWER
(USBHS_HSTCTRL) For a better consumption, if high speed is not needed.
__STATIC_INLINE void USBHS_HostPipeReset(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
#define USBHS_HSTFNUM_FNUM_Pos
__STATIC_INLINE uint32_t USBHS_IsEpIntEnable(Usbhs *pUsbhs, uint8_t Ep, uint32_t EpIntType)
#define USBHS_DEVCTRL_SPDCONF_Msk
(USBHS_DEVCTRL) Mode Configuration
#define USBHS_HSTPIPCFG_INTFRQ(value)
#define USBHS_HSTPIPCFG_PTOKEN_IN
(USBHS_HSTPIPCFG[10]) IN
__STATIC_INLINE void USBHS_AckEpInterrupt(Usbhs *pUsbhs, uint8_t Ep, uint32_t EpInt)
__STATIC_INLINE uint32_t USBHS_IsHostPipeIntTypeEnable(Usbhs *pUsbhs, uint8_t Pipe, uint32_t intType)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_VBusHWC(Usbhs *pUsbhs, uint8_t Enable)
Freeze or unfreeze USB clock.
#define USBHS_HSTIMR_PEP_0
(USBHS_HSTIMR) Pipe 0 Interrupt Enable
#define USBHSDEVDMA_NUMBER
Usbhs hardware registers.
#define USBHS_HSTIMR_DMA_1
(USBHS_HSTIMR) DMA Channel 1 Interrupt Enable
__IO uint32_t USBHS_HSTPIPINRQ[10]
(Usbhs Offset: 0x650) Host Pipe IN Request Register (n = 0)
#define USBHS_DEVDMASTATUS_BUFF_COUNT_Msk
(USBHS_DEVDMASTATUS) Buffer Byte Count
__STATIC_INLINE void USBHS_SetRemoteWakeUp(Usbhs *pUsbhs)
Set Remote WakeUp mode.
#define USBHS_HSTPIPISR_CURRBK_Pos
__STATIC_INLINE uint16_t USBHS_HostGetMSOF(void)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_SetHostStatus(Usbhs *pUsbhs, uint32_t IntType)
Gets USB host interrupt status.
__IO uint32_t USBHS_DEVCTRL
(Usbhs Offset: 0x0000) Device General Control Register
__STATIC_INLINE void USBHS_SetHostLowSpeed(Usbhs *pUsbhs)
Sets USB host's speed to Low speed.
__STATIC_INLINE uint32_t USBHS_GetDmaStatus(UsbhsDevdma *pUsbDma)
Get Dma Status.
#define USBHS_HSTPIPCFG_PEPNUM_Pos
__STATIC_INLINE void USBHS_HostConfigure(Usbhs *pUsbhs, uint8_t Pipe, uint32_t pipeBank, uint8_t pipeSize, uint32_t pipeType, uint32_t pipeToken, uint8_t pipeEpNum, uint8_t PipeIntFreq)
Gets USB host interrupt status.
__STATIC_INLINE void USBHS_HostSetIntFreq(Usbhs *pUsbhs, uint8_t Pipe, uint8_t Freq)
Gets USB host interrupt status.
#define USBHS_DEVIER_DMA_1
(USBHS_DEVIER) DMA Channel 1 Interrupt Enable
__STATIC_INLINE uint32_t USBHS_IsHostPipeEnable(Usbhs *pUsbhs, uint8_t Pipe)
Gets USB host interrupt status.
__STATIC_INLINE uint32_t USBHS_ReadEpIntStatus(Usbhs *pUsbhs, uint8_t EpNum)
Read status for an Endpoint.
__STATIC_INLINE uint8_t USBHS_IsBankFree(Usbhs *pUsbhs, uint8_t Ep)
__STATIC_INLINE void USBHS_SetDmaStatus(UsbhsDevdma *pUsbDma, uint32_t Status)
Set DMA status.
__O uint32_t USBHS_DEVEPTICR[10]
(Usbhs Offset: 0x160) Device Endpoint Clear Register (n = 0)
#define USBHS_HSTPIPCFG_PSIZE_Msk
(USBHS_HSTPIPCFG[10]) Pipe Size
__I uint32_t USBHS_SR
(Usbhs Offset: 0x0804) General Status Register
#define USBHS_DEVEPTISR_BYCT_Msk
(USBHS_DEVEPTISR[10]) Byte Count
__STATIC_INLINE uint8_t USBHS_NumOfBanksInUse(Usbhs *pUsbhs, uint8_t Ep)
__IO uint32_t USBHS_DEVDMACONTROL
(UsbhsDevdma Offset: 0x8) Device DMA Channel Control Register
__STATIC_INLINE uint32_t USBHS_GetConfigureEPs(Usbhs *pUsbhs, uint8_t Ep, uint32_t IntType)
__STATIC_INLINE uint32_t USBHS_GetHostPipeStatus(Usbhs *pUsbhs, uint8_t PipeInt)
Gets USB host interrupt status.
__STATIC_INLINE bool USBHS_IsUsbFullSpeed(Usbhs *pUsbhs)
Enable or disable USB address.
__STATIC_INLINE void USBHS_EnableIntEP(Usbhs *pUsbhs, uint8_t EpNum)
Enables interrupt for a given endpoint.
__STATIC_INLINE uint32_t USBHS_GetDmaNDA(UsbhsDevdma *pUsbDma)
Gets DMA next descriptor address.
#define USBHS_HSTIER_DMA_1
(USBHS_HSTIER) DMA Channel 1 Interrupt Enable
__STATIC_INLINE void USBHS_DisableEPIntType(Usbhs *pUsbhs, uint8_t Ep, uint32_t EpInt)
__STATIC_INLINE void USBHS_EnableTestMode(Usbhs *pUsbhs, uint32_t mode)
Disable/Enables Test mode.
__STATIC_INLINE void USBHS_RaiseEPInt(Usbhs *pUsbhs, uint8_t Ep, uint32_t EpInt)
UsbhsDevdma hardware registers.
__STATIC_INLINE void USBHS_HostDisablePipeIntType(Usbhs *pUsbhs, uint8_t Pipe, uint32_t intType)
Gets USB host interrupt status.