| LPCOpen Platform v1.03 LPCOpen Platform for NXP LPC Microcontrollers

- Main Page
- Modules
- Data Structures
- Files
- Related Pages

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
Enhanced Host Controller Interface Driver
Host Controller Drivers

## Detailed Description

## Data Structures
union | NextLinkPointer
struct | PHCD_QTD
struct | st_EHCD_QHD
struct | st_EHCD_ITD
struct | st_EHCD_SITD
struct | EHCI_HOST_DATA_T
struct | Pipe_Handle_T
struct | Pipe_Stream_Handle_T

## Macros
#define | HCD_MAX_QHD HCD_MAX_ENDPOINT /* USBD_USB_HC_EHCI */
#define | HCD_MAX_QTD 8 /* USBD_USB_HC_EHCI */
#define | HCD_MAX_HS_ITD 4 /* USBD_USB_HC_EHCI */
#define | HCD_MAX_SITD 16 /* USBD_USB_HC_EHCI */
#define | FRAMELIST_SIZE_BITS 5 /* (0:1024) - (1:512) - (2:256) - (3:128) - (4:64) - (5:32) - (6:16) - (7:8) */
#define | FRAME_LIST_SIZE (1024 >> FRAMELIST_SIZE_BITS)
#define | INT_THRESHOLD_CTRL 0x00080000UL/* Max Int Interval = 8 uframes */
#define | ASYNC_SCHEDULE_PARK_MODE_ENABLE NO
#define | ASYNC_SCHEDULE_PARK_MODE_COUNT 0
#define | INT_SOF_RECEIVED_ENABLE NO
#define | INT_FRAME_ROLL_OVER_ENABLE NO
#define | PORT_WAKE_OVER_CURRENT NO
#define | PORT_WAKE_ON_DISCONNECT NO
#define | PORT_WAKE_ON_CONNECT NO
#define | PORT_INDICATOR NO
#define | USBMODE_DeviceController (2)
#define | USBMODE_HostController (3)
#define | USBMODE_VBusPowerSelect_High (1 << 5)
#define | EHC_USBCMD_RunStop 0x00000001UL /* Run or Stop */
#define | EHC_USBCMD_HostReset 0x00000002UL /* Host Controller Reset */
#define | EHC_USBCMD_FrameListSize 0x0000000CUL /* Frame List Size */
#define | EHC_USBCMD_PeriodScheduleEnable 0x00000010UL /* Periodic Schedule Enable */
#define | EHC_USBCMD_AsynScheduleEnable 0x00000020UL /* Asynchronous Schedule Enable */
#define | EHC_USBCMD_IntAsyncAdvanceDoorbell 0x00000040UL /* Interrupt on Async Advance Doorbell */
#define | EHC_USBCMD_LightReset 0x00000080UL /* Light Host Controller Reset */
#define | EHC_USBCMD_AsyncScheduleParkCount 0x00000300UL /* Asynchronous Schedule Park Mode Count */
#define | EHC_USBCMD_AsyncScheduleParkEnable 0x00000800UL /* Asynchronous Schedule Park Mode Enable */
#define | EHC_USBCMD_FrameListSizeBit2 0x00008000UL /* Frame List Size bit 2 - EHCI derivation */
#define | EHC_USBCMD_InterruptThresholdControl 0x00FF0000UL /* Interrupt Threshold control */
#define | EHC_USBSTS_UsbInt 0x00000001UL /* USB Interrupt */
#define | EHC_USBSTS_UsbErrorInt 0x00000002UL /* USB Error Interrupt */
#define | EHC_USBSTS_PortChangeDetect 0x00000004UL /* Port Change Detect */
#define | EHC_USBSTS_FrameListRollover 0x00000008UL /* Frame List Rollover */
#define | EHC_USBSTS_HostSystemError 0x00000010UL /* Host System Error */
#define | EHC_USBSTS_IntAsyncAdvance 0x00000020UL /* Interrupt on Async Advance */
#define | EHC_USBSTS_SofRecieveInt 0x00000080UL /* SOF - EHCI derivation */
#define | EHC_USBSTS_HCHalted 0x00001000UL /* HCHalted */
#define | EHC_USBSTS_Reclamation 0x00002000UL /* Reclamation */
#define | EHC_USBSTS_PeriodScheduleStatus 0x00004000UL /* Periodic Schedule Status */
#define | EHC_USBSTS_AsyncScheduleStatus 0x00008000UL /* Asynchronous Schedule Status */
#define | EHC_USBSTS_UsbAsyncInt 0x00040000UL /* USB Asynchronous Interrupt - EHCI derivation */
#define | EHC_USBSTS_UsbPeriodInt 0x00080000UL /* USB Period Interrupt - EHCI derivation */
#define | EHC_USBINTR_UsbIntEnable 0x00000001UL /* USB Interrupt Enable */
#define | EHC_USBINTR_UsbErroIntEnable 0x00000002UL /* USB Error Interrupt Enable */
#define | EHC_USBINTR_PortChangeIntEnable 0x00000004UL /* Port Change Interrupt Enable */
#define | EHC_USBINTR_FrameListRolloverEnable 0x00000008UL /* Frame List Rollover Enable */
#define | EHC_USBINTR_HostSystemErrorEnable 0x00000010UL /* Host System Error Enable */
#define | EHC_USBINTR_IntAsyncAdvanceEnable 0x00000020UL /* Interrupt on Async Advance Enable */
#define | EHC_USBINTR_SofRecieveEnable 0x00000080UL /* SOF - EHCI derivation */
#define | EHC_USBINTR_UsbAsyncEnable 0x00040000UL /* USB Asynchronous Interrupt - EHCI derivation */
#define | EHC_USBINTR_UsbPeriodEnable 0x00080000UL /* USB Period Interrupt - EHCI derivation */
#define | EHC_USBINTR_ALL 0x000C00BFUL /* All Interrupt */
#define | EHC_FRINDEX_MASK 0x000003FFUL /* Frame Index */
#define | EHC_UFRAME_MASK 0x00000007UL /* u-Frame Index */
#define | EHC_MFRAME_MASK 0x00001FF8UL /* m-Frame Index */
#define | EHC_PORTSC_CurrentConnectStatus 0x00000001UL /* Current Connect Status */
#define | EHC_PORTSC_ConnectStatusChange 0x00000002UL /* Connect Status Change */
#define | EHC_PORTSC_PortEnable 0x00000004UL /* Port Enabled Status */
#define | EHC_PORTSC_PortEnableChange 0x00000008UL /* Port Enabled/Disabled Change */
#define | EHC_PORTSC_OvercurrentActive 0x00000010UL /* Over-current Status */
#define | EHC_PORTSC_OvercurrentChange 0x00000020UL /* Over-current Change */
#define | EHC_PORTSC_ForcePortResume 0x00000040UL /* Force Port Resume */
#define | EHC_PORTSC_PortSuspend 0x00000080UL /* Port Suspend */
#define | EHC_PORTSC_PortReset 0x00000100UL /* Port Reset */
#define | EHC_PORTSC_LineStatus 0x00000C00UL /* Line Status */
#define | EHC_PORTSC_PortPowerControl 0x00001000UL /* Port Power Status */
#define | EHC_PORTSC_PortOwner 0x00002000UL /* Port Owner Status */
#define | EHC_PORTSC_PortIndicatorControl 0x0000C000UL /* Port Indicator Control */
#define | EHC_PORTSC_PortTestControl 0x000F0000UL /* Port Test Control */
#define | EHC_PORTSC_WakeonConnectEnable 0x00100000UL /* Wake on Connect Enable */
#define | EHC_PORTSC_WakeonDisconnectEnable 0x00200000UL /* Wake on Disconnect Enable */
#define | EHC_PORTSC_WakeonOvercurrentEnable 0x00400000UL /* Wake on Over-Current Enable */
#define | EHC_PORTSC_PhyClockDisable 0x00800000UL /* PHY Clock Disable - EHCI derivation */
#define | EHC_PORTSC_PortForceFullspeedConnect 0x01000000UL /* Force Device on Fullspeed mode (disable chirp sequences) - EHCI derivation */
#define | EHC_PORTSC_PortSpeed 0x0C000000UL /* Device Speed - EHCI derivation */
#define | QTD_MAX_XFER_LENGTH 0x5000
#define | FRAMELIST_ALIGNMENT 4096 /* Frame List Alignment */
#define | SPLIT_MAX_LEN_UFRAME 188
#define | EHCI_FRAME_LIST(HostID) ((HostID) ? PeriodFrameList1 : PeriodFrameList0 )

## Enumerations
enum | TD_TYPE { ITD_TYPE = 0, QHD_TYPE, SITD_TYPE, FSTN_TYPE }

## Functions
struct st_EHCD_QHD | ATTR_ALIGNED (32) HCD_QHD
void | USB_Host_Enumerate (uint8_t HostID)
void | USB_Host_DeEnumerate (uint8_t HostID)
static INLINE HCD_STATUS | EHciHostInit (uint8_t HostID)
static INLINE HCD_STATUS | EHciHostRun (uint8_t HostID)
static INLINE HCD_STATUS | EHciHostStop (uint8_t HostID)
static INLINE HCD_STATUS | EHciHostReset (uint8_t HostID)
static void | DisableAsyncSchedule (uint8_t HostID)
static void | EnableAsyncSchedule (uint8_t HostID)
static void | DisablePeriodSchedule (uint8_t HostID) __attribute__((unused))
static void | EnablePeriodSchedule (uint8_t HostID) __attribute__((unused))
static INLINE void | DisableSchedule (uint8_t HostID, uint8_t isPeriod)
static INLINE void | EnableSchedule (uint8_t HostID, uint8_t isPeriod)
static INLINE PHCD_QHD | HcdAsyncHead (uint8_t HostID)
static INLINE PHCD_QHD | HcdIntHead (uint8_t HostID)
static INLINE PHCD_QHD | HcdQHD (uint8_t HostID, uint8_t idx)
static INLINE PHCD_QTD | HcdQTD (uint8_t HostID, uint8_t idx)
static INLINE PHCD_HS_ITD | HcdHsITD (uint8_t HostID, uint8_t idx)
static INLINE PHCD_SITD | HcdSITD (uint8_t HostID, uint8_t idx)
static INLINE bool | isValidLink (uint32_t link)
static INLINE bool | IsInterruptQhd (uint8_t HostID, uint8_t QhdIdx)
static void | FreeQhd (uint8_t HostID, uint8_t QhdIdx)
static HCD_STATUS | AllocQhd (uint8_t HostID, uint8_t DeviceAddr, HCD_USB_SPEED DeviceSpeed, uint8_t EndpointNumber, HCD_TRANSFER_TYPE TransferType, HCD_TRANSFER_DIR TransferDir, uint16_t MaxPacketSize, uint8_t Interval, uint8_t Mult, uint8_t HSHubDevAddr, uint8_t HSHubPortNum, uint32_t *pQhdIdx)
static HCD_STATUS | InsertLinkPointer (NextLinkPointer *pList, NextLinkPointer *pNew, uint8_t type)
static HCD_STATUS | RemoveQueueHead (uint8_t HostID, uint8_t QhdIdx)
static void | FreeQtd (PHCD_QTD pQtd)
static HCD_STATUS | AllocQTD (uint8_t HostID, uint32_t *pTdIdx, uint8_t *const BufferPointer, uint32_t xferLen, HCD_TRANSFER_DIR PIDCode, uint8_t DataToggle, uint8_t IOC)
static HCD_STATUS | QueueQTDs (uint8_t HostID, uint32_t *pTdIdx, uint8_t *dataBuff, uint32_t xferLen, HCD_TRANSFER_DIR PIDCode, uint8_t DataToggle)
static void | FreeHsItd (PHCD_HS_ITD pItd)
static HCD_STATUS | AllocHsItd (uint8_t HostID, uint32_t *pTdIdx, uint8_t IhdIdx, uint8_t *dataBuff, uint32_t TDLen, uint8_t XactPerITD, uint8_t IntOnComplete)
static HCD_STATUS | QueueITDs (uint8_t HostID, uint8_t IhdIdx, uint8_t *dataBuff, uint32_t xferLen)
static void | FreeSItd (PHCD_SITD pSItd)
static HCD_STATUS | AllocSItd (uint8_t HostID, uint32_t *TdIdx, uint8_t HeadIdx, uint8_t *dataBuff, uint32_t TDLen, uint8_t IntOnComplete)
static HCD_STATUS | QueueSITDs (uint8_t HostID, uint8_t HeadIdx, uint8_t *dataBuff, uint32_t xferLen)
static HCD_STATUS | WaitForTransferComplete (uint8_t HostID, uint8_t EpIdx)
static HCD_STATUS | PipehandleParse (uint32_t Pipehandle, uint8_t *pHostID, HCD_TRANSFER_TYPE *XferType, uint8_t *pIdx)
static void | PipehandleCreate (uint32_t *pPipeHandle, uint8_t HostID, HCD_TRANSFER_TYPE XferType, uint8_t idx)
static void | AsyncScheduleIsr (uint8_t HostID)
static void | PeriodScheduleIsr (uint8_t HostID)
static HCD_STATUS | PortStatusChangeIsr (uint8_t HostID, uint32_t deviceConnect)
static void | AsyncAdvanceIsr (uint8_t HostID)
static void | UsbErrorIsr (uint8_t HostID)

## Variables
struct st_EHCD_QHD * | PHCD_QHD
struct st_EHCD_ITD * | PHCD_HS_ITD
struct st_EHCD_SITD * | PHCD_SITD
EHCI_HOST_DATA_T | ehci_data [MAX_USB_CORE]
NextLinkPointer | PeriodFrameList0 [FRAME_LIST_SIZE]
NextLinkPointer | PeriodFrameList1 [FRAME_LIST_SIZE]

## Macro Definition Documentation

#define ASYNC_SCHEDULE_PARK_MODE_COUNT 0

Definition at line 64 of file EHCI.h.

#define ASYNC_SCHEDULE_PARK_MODE_ENABLE NO

Definition at line 63 of file EHCI.h.

#define EHC_FRINDEX_MASK 0x000003FFUL /* Frame Index */

Definition at line 144 of file EHCI.h.

#define EHC_MFRAME_MASK 0x00001FF8UL /* m-Frame Index */

Definition at line 146 of file EHCI.h.

#define EHC_PORTSC_ConnectStatusChange 0x00000002UL /* Connect Status Change */

Definition at line 150 of file EHCI.h.

#define EHC_PORTSC_CurrentConnectStatus 0x00000001UL /* Current Connect Status */

Definition at line 149 of file EHCI.h.

#define EHC_PORTSC_ForcePortResume 0x00000040UL /* Force Port Resume */

Definition at line 155 of file EHCI.h.

#define EHC_PORTSC_LineStatus 0x00000C00UL /* Line Status */

Definition at line 158 of file EHCI.h.

#define EHC_PORTSC_OvercurrentActive 0x00000010UL /* Over-current Status */

Definition at line 153 of file EHCI.h.

#define EHC_PORTSC_OvercurrentChange 0x00000020UL /* Over-current Change */

Definition at line 154 of file EHCI.h.

#define EHC_PORTSC_PhyClockDisable 0x00800000UL /* PHY Clock Disable - EHCI derivation */

Definition at line 166 of file EHCI.h.

#define EHC_PORTSC_PortEnable 0x00000004UL /* Port Enabled Status */

Definition at line 151 of file EHCI.h.

#define EHC_PORTSC_PortEnableChange 0x00000008UL /* Port Enabled/Disabled Change */

Definition at line 152 of file EHCI.h.

#define EHC_PORTSC_PortForceFullspeedConnect 0x01000000UL /* Force Device on Fullspeed mode (disable chirp sequences) - EHCI derivation */

Definition at line 167 of file EHCI.h.

#define EHC_PORTSC_PortIndicatorControl 0x0000C000UL /* Port Indicator Control */

Definition at line 161 of file EHCI.h.

#define EHC_PORTSC_PortOwner 0x00002000UL /* Port Owner Status */

Definition at line 160 of file EHCI.h.

#define EHC_PORTSC_PortPowerControl 0x00001000UL /* Port Power Status */

Definition at line 159 of file EHCI.h.

#define EHC_PORTSC_PortReset 0x00000100UL /* Port Reset */

Definition at line 157 of file EHCI.h.

#define EHC_PORTSC_PortSpeed 0x0C000000UL /* Device Speed - EHCI derivation */

Definition at line 168 of file EHCI.h.

#define EHC_PORTSC_PortSuspend 0x00000080UL /* Port Suspend */

Definition at line 156 of file EHCI.h.

#define EHC_PORTSC_PortTestControl 0x000F0000UL /* Port Test Control */

Definition at line 162 of file EHCI.h.

#define EHC_PORTSC_WakeonConnectEnable 0x00100000UL /* Wake on Connect Enable */

Definition at line 163 of file EHCI.h.

#define EHC_PORTSC_WakeonDisconnectEnable 0x00200000UL /* Wake on Disconnect Enable */

Definition at line 164 of file EHCI.h.

#define EHC_PORTSC_WakeonOvercurrentEnable 0x00400000UL /* Wake on Over-Current Enable */

Definition at line 165 of file EHCI.h.

#define EHC_UFRAME_MASK 0x00000007UL /* u-Frame Index */

Definition at line 145 of file EHCI.h.

#define EHC_USBCMD_AsyncScheduleParkCount 0x00000300UL /* Asynchronous Schedule Park Mode Count */

Definition at line 111 of file EHCI.h.

#define EHC_USBCMD_AsyncScheduleParkEnable 0x00000800UL /* Asynchronous Schedule Park Mode Enable */

Definition at line 112 of file EHCI.h.

#define EHC_USBCMD_AsynScheduleEnable 0x00000020UL /* Asynchronous Schedule Enable */

Definition at line 108 of file EHCI.h.

#define EHC_USBCMD_FrameListSize 0x0000000CUL /* Frame List Size */

Definition at line 106 of file EHCI.h.

#define EHC_USBCMD_FrameListSizeBit2 0x00008000UL /* Frame List Size bit 2 - EHCI derivation */

Definition at line 113 of file EHCI.h.

#define EHC_USBCMD_HostReset 0x00000002UL /* Host Controller Reset */

Definition at line 105 of file EHCI.h.

#define EHC_USBCMD_IntAsyncAdvanceDoorbell 0x00000040UL /* Interrupt on Async Advance Doorbell */

Definition at line 109 of file EHCI.h.

#define EHC_USBCMD_InterruptThresholdControl 0x00FF0000UL /* Interrupt Threshold control */

Definition at line 114 of file EHCI.h.

#define EHC_USBCMD_LightReset 0x00000080UL /* Light Host Controller Reset */

Definition at line 110 of file EHCI.h.

#define EHC_USBCMD_PeriodScheduleEnable 0x00000010UL /* Periodic Schedule Enable */

Definition at line 107 of file EHCI.h.

#define EHC_USBCMD_RunStop 0x00000001UL /* Run or Stop */

Definition at line 104 of file EHCI.h.

#define EHC_USBINTR_ALL 0x000C00BFUL /* All Interrupt */

Definition at line 141 of file EHCI.h.

#define EHC_USBINTR_FrameListRolloverEnable 0x00000008UL /* Frame List Rollover Enable */

Definition at line 135 of file EHCI.h.

#define EHC_USBINTR_HostSystemErrorEnable 0x00000010UL /* Host System Error Enable */

Definition at line 136 of file EHCI.h.

#define EHC_USBINTR_IntAsyncAdvanceEnable 0x00000020UL /* Interrupt on Async Advance Enable */

Definition at line 137 of file EHCI.h.

#define EHC_USBINTR_PortChangeIntEnable 0x00000004UL /* Port Change Interrupt Enable */

Definition at line 134 of file EHCI.h.

#define EHC_USBINTR_SofRecieveEnable 0x00000080UL /* SOF - EHCI derivation */

Definition at line 138 of file EHCI.h.

#define EHC_USBINTR_UsbAsyncEnable 0x00040000UL /* USB Asynchronous Interrupt - EHCI derivation */

Definition at line 139 of file EHCI.h.

#define EHC_USBINTR_UsbErroIntEnable 0x00000002UL /* USB Error Interrupt Enable */

Definition at line 133 of file EHCI.h.

#define EHC_USBINTR_UsbIntEnable 0x00000001UL /* USB Interrupt Enable */

Definition at line 132 of file EHCI.h.

#define EHC_USBINTR_UsbPeriodEnable 0x00080000UL /* USB Period Interrupt - EHCI derivation */

Definition at line 140 of file EHCI.h.

#define EHC_USBSTS_AsyncScheduleStatus 0x00008000UL /* Asynchronous Schedule Status */

Definition at line 127 of file EHCI.h.

#define EHC_USBSTS_FrameListRollover 0x00000008UL /* Frame List Rollover */

Definition at line 120 of file EHCI.h.

#define EHC_USBSTS_HCHalted 0x00001000UL /* HCHalted */

Definition at line 124 of file EHCI.h.

#define EHC_USBSTS_HostSystemError 0x00000010UL /* Host System Error */

Definition at line 121 of file EHCI.h.

#define EHC_USBSTS_IntAsyncAdvance 0x00000020UL /* Interrupt on Async Advance */

Definition at line 122 of file EHCI.h.

#define EHC_USBSTS_PeriodScheduleStatus 0x00004000UL /* Periodic Schedule Status */

Definition at line 126 of file EHCI.h.

#define EHC_USBSTS_PortChangeDetect 0x00000004UL /* Port Change Detect */

Definition at line 119 of file EHCI.h.

#define EHC_USBSTS_Reclamation 0x00002000UL /* Reclamation */

Definition at line 125 of file EHCI.h.

#define EHC_USBSTS_SofRecieveInt 0x00000080UL /* SOF - EHCI derivation */

Definition at line 123 of file EHCI.h.

#define EHC_USBSTS_UsbAsyncInt 0x00040000UL /* USB Asynchronous Interrupt - EHCI derivation */

Definition at line 128 of file EHCI.h.

#define EHC_USBSTS_UsbErrorInt 0x00000002UL /* USB Error Interrupt */

Definition at line 118 of file EHCI.h.

#define EHC_USBSTS_UsbInt 0x00000001UL /* USB Interrupt */

Definition at line 117 of file EHCI.h.

#define EHC_USBSTS_UsbPeriodInt 0x00080000UL /* USB Period Interrupt - EHCI derivation */

Definition at line 129 of file EHCI.h.

#define EHCI_FRAME_LIST | ( |  | HostID | ) | ((HostID) ? PeriodFrameList1 : PeriodFrameList0 )

Definition at line 403 of file EHCI.h.

#define FRAME_LIST_SIZE (1024 >> FRAMELIST_SIZE_BITS)

Definition at line 57 of file EHCI.h.

#define FRAMELIST_ALIGNMENT 4096 /* Frame List Alignment */

Definition at line 172 of file EHCI.h.

#define FRAMELIST_SIZE_BITS 5 /* (0:1024) - (1:512) - (2:256) - (3:128) - (4:64) - (5:32) - (6:16) - (7:8) */

Definition at line 56 of file EHCI.h.

#define HCD_MAX_HS_ITD 4 /* USBD_USB_HC_EHCI */

Definition at line 53 of file EHCI.h.

#define HCD_MAX_QHD HCD_MAX_ENDPOINT /* USBD_USB_HC_EHCI */

Definition at line 50 of file EHCI.h.

#define HCD_MAX_QTD 8 /* USBD_USB_HC_EHCI */

Definition at line 52 of file EHCI.h.

#define HCD_MAX_SITD 16 /* USBD_USB_HC_EHCI */

Definition at line 54 of file EHCI.h.

#define INT_FRAME_ROLL_OVER_ENABLE NO

Definition at line 76 of file EHCI.h.

#define INT_SOF_RECEIVED_ENABLE NO

Definition at line 73 of file EHCI.h.

#define INT_THRESHOLD_CTRL 0x00080000UL/* Max Int Interval = 8 uframes */

Definition at line 62 of file EHCI.h.

#define PORT_INDICATOR NO

Definition at line 89 of file EHCI.h.

#define PORT_WAKE_ON_CONNECT NO

Definition at line 88 of file EHCI.h.

#define PORT_WAKE_ON_DISCONNECT NO

Definition at line 87 of file EHCI.h.

#define PORT_WAKE_OVER_CURRENT NO

Definition at line 86 of file EHCI.h.

#define QTD_MAX_XFER_LENGTH 0x5000

Definition at line 171 of file EHCI.h.

#define SPLIT_MAX_LEN_UFRAME 188

Definition at line 174 of file EHCI.h.

#define USBMODE_DeviceController (2)

Definition at line 99 of file EHCI.h.

#define USBMODE_HostController (3)

Definition at line 100 of file EHCI.h.

#define USBMODE_VBusPowerSelect_High (1 << 5)

Definition at line 101 of file EHCI.h.

## Enumeration Type Documentation

enum TD_TYPE

Enumerator:

  ITD_TYPE |
  QHD_TYPE |
  SITD_TYPE |
  FSTN_TYPE |

Definition at line 375 of file EHCI.h.

## Function Documentation

static HCD_STATUS AllocHsItd | ( | uint8_t | HostID,
|  | uint32_t * | pTdIdx,
|  | uint8_t | IhdIdx,
|  | uint8_t * | dataBuff,
|  | uint32_t | TDLen,
|  | uint8_t | XactPerITD,
|  | uint8_t | IntOnComplete
| ) |  |
| static

static HCD_STATUS AllocQhd | ( | uint8_t | HostID,
|  | uint8_t | DeviceAddr,
|  | HCD_USB_SPEED | DeviceSpeed,
|  | uint8_t | EndpointNumber,
|  | HCD_TRANSFER_TYPE | TransferType,
|  | HCD_TRANSFER_DIR | TransferDir,
|  | uint16_t | MaxPacketSize,
|  | uint8_t | Interval,
|  | uint8_t | Mult,
|  | uint8_t | HSHubDevAddr,
|  | uint8_t | HSHubPortNum,
|  | uint32_t * | pQhdIdx
| ) |  |
| static

static HCD_STATUS AllocQTD | ( | uint8_t | HostID,
|  | uint32_t * | pTdIdx,
|  | uint8_t *const | BufferPointer,
|  | uint32_t | xferLen,
|  | HCD_TRANSFER_DIR | PIDCode,
|  | uint8_t | DataToggle,
|  | uint8_t | IOC
| ) |  |
| static

static HCD_STATUS AllocSItd | ( | uint8_t | HostID,
|  | uint32_t * | TdIdx,
|  | uint8_t | HeadIdx,
|  | uint8_t * | dataBuff,
|  | uint32_t | TDLen,
|  | uint8_t | IntOnComplete
| ) |  |
| static

static void AsyncAdvanceIsr | ( | uint8_t | HostID | ) |
| static

static void AsyncScheduleIsr | ( | uint8_t | HostID | ) |
| static

struct st_EHCD_SITD ATTR_ALIGNED | ( | 32 |  | ) |

static void DisableAsyncSchedule | ( | uint8_t | HostID | ) |
| static

static void DisablePeriodSchedule | ( | uint8_t | HostID | ) |
| static

static INLINE void DisableSchedule | ( | uint8_t | HostID,
|  | uint8_t | isPeriod
| ) |  |
| static

static INLINE HCD_STATUS EHciHostInit | ( | uint8_t | HostID | ) |
| static

static INLINE HCD_STATUS EHciHostReset | ( | uint8_t | HostID | ) |
| static

static INLINE HCD_STATUS EHciHostRun | ( | uint8_t | HostID | ) |
| static

static INLINE HCD_STATUS EHciHostStop | ( | uint8_t | HostID | ) |
| static

static void EnableAsyncSchedule | ( | uint8_t | HostID | ) |
| static

static void EnablePeriodSchedule | ( | uint8_t | HostID | ) |
| static

static INLINE void EnableSchedule | ( | uint8_t | HostID,
|  | uint8_t | isPeriod
| ) |  |
| static

static void FreeHsItd | ( | PHCD_HS_ITD | pItd | ) |
| static

static void FreeQhd | ( | uint8_t | HostID,
|  | uint8_t | QhdIdx
| ) |  |
| static

static void FreeQtd | ( | PHCD_QTD | pQtd | ) |
| static

static void FreeSItd | ( | PHCD_SITD | pSItd | ) |
| static

static INLINE PHCD_QHD HcdAsyncHead | ( | uint8_t | HostID | ) |
| static

static INLINE PHCD_HS_ITD HcdHsITD | ( | uint8_t | HostID,
|  | uint8_t | idx
| ) |  |
| static

static INLINE PHCD_QHD HcdIntHead | ( | uint8_t | HostID | ) |
| static

static INLINE PHCD_QHD HcdQHD | ( | uint8_t | HostID,
|  | uint8_t | idx
| ) |  |
| static

static INLINE PHCD_QTD HcdQTD | ( | uint8_t | HostID,
|  | uint8_t | idx
| ) |  |
| static

static INLINE PHCD_SITD HcdSITD | ( | uint8_t | HostID,
|  | uint8_t | idx
| ) |  |
| static

static HCD_STATUS InsertLinkPointer | ( | NextLinkPointer * | pList,
|  | NextLinkPointer * | pNew,
|  | uint8_t | type
| ) |  |
| static

static INLINE bool IsInterruptQhd | ( | uint8_t | HostID,
|  | uint8_t | QhdIdx
| ) |  |
| static

static INLINE bool isValidLink | ( | uint32_t | link | ) |
| static

static void PeriodScheduleIsr | ( | uint8_t | HostID | ) |
| static

static void PipehandleCreate | ( | uint32_t * | pPipeHandle,
|  | uint8_t | HostID,
|  | HCD_TRANSFER_TYPE | XferType,
|  | uint8_t | idx
| ) |  |
| static

static HCD_STATUS PipehandleParse | ( | uint32_t | Pipehandle,
|  | uint8_t * | pHostID,
|  | HCD_TRANSFER_TYPE * | XferType,
|  | uint8_t * | pIdx
| ) |  |
| static

static HCD_STATUS PortStatusChangeIsr | ( | uint8_t | HostID,
|  | uint32_t | deviceConnect
| ) |  |
| static

static HCD_STATUS QueueITDs | ( | uint8_t | HostID,
|  | uint8_t | IhdIdx,
|  | uint8_t * | dataBuff,
|  | uint32_t | xferLen
| ) |  |
| static

static HCD_STATUS QueueQTDs | ( | uint8_t | HostID,
|  | uint32_t * | pTdIdx,
|  | uint8_t * | dataBuff,
|  | uint32_t | xferLen,
|  | HCD_TRANSFER_DIR | PIDCode,
|  | uint8_t | DataToggle
| ) |  |
| static

static HCD_STATUS QueueSITDs | ( | uint8_t | HostID,
|  | uint8_t | HeadIdx,
|  | uint8_t * | dataBuff,
|  | uint32_t | xferLen
| ) |  |
| static

static HCD_STATUS RemoveQueueHead | ( | uint8_t | HostID,
|  | uint8_t | QhdIdx
| ) |  |
| static

void USB_Host_DeEnumerate | ( | uint8_t | HostID | ) |

Definition at line 206 of file Host.c.

void USB_Host_Enumerate | ( | uint8_t | HostID | ) |

Definition at line 198 of file Host.c.

static void UsbErrorIsr | ( | uint8_t | HostID | ) |
| static

static HCD_STATUS WaitForTransferComplete | ( | uint8_t | HostID,
|  | uint8_t | EpIdx
| ) |  |
| static

## Variable Documentation

EHCI_HOST_DATA_T ehci_data[MAX_USB_CORE]

NextLinkPointer PeriodFrameList0[FRAME_LIST_SIZE]

NextLinkPointer PeriodFrameList1[FRAME_LIST_SIZE]

struct st_EHCD_ITD * PHCD_HS_ITD

Definition at line 304 of file EHCI.h.

struct st_EHCD_QHD * PHCD_QHD

Definition at line 277 of file EHCI.h.

struct st_EHCD_SITD * PHCD_SITD

Definition at line 364 of file EHCI.h.