#include <dwc_otg_hcd.h>
Data Fields | |
dwc_otg_core_if_t * | core_if |
DWC OTG Core Interface Layer. | |
dwc_otg_hcd_function_ops * | fops |
Function HCD driver callbacks. | |
dwc_otg_hcd::dwc_otg_hcd_internal_flags | flags |
Internal DWC HCD Flags. | |
dwc_list_link_t | non_periodic_sched_inactive |
Inactive items in the non-periodic schedule. | |
dwc_list_link_t | non_periodic_sched_active |
Active items in the non-periodic schedule. | |
dwc_list_link_t * | non_periodic_qh_ptr |
Pointer to the next Queue Head to process in the active non-periodic schedule. | |
dwc_list_link_t | periodic_sched_inactive |
Inactive items in the periodic schedule. | |
dwc_list_link_t | periodic_sched_ready |
List of periodic QHs that are ready for execution in the next frame, but have not yet been assigned to host channels. | |
dwc_list_link_t | periodic_sched_assigned |
List of periodic QHs to be executed in the next frame that are assigned to host channels. | |
dwc_list_link_t | periodic_sched_queued |
List of periodic QHs that have been queued for execution. | |
uint16_t | periodic_usecs |
Total bandwidth claimed so far for periodic transfers. | |
uint16_t | frame_number |
Frame number read from the core at SOF. | |
hc_list | free_hc_list |
Free host channels in the controller. | |
int | periodic_channels |
Number of host channels assigned to periodic transfers. | |
int | non_periodic_channels |
Number of host channels assigned to non-periodic transfers. | |
dwc_hc * | hc_ptr_array [MAX_EPS_CHANNELS] |
Array of pointers to the host channel descriptors. | |
uint8_t * | status_buf |
Buffer to use for any data received during the status phase of a control transfer. | |
dma_addr_t | status_buf_dma |
DMA address for status_buf. | |
dwc_timer_t * | conn_timer |
Connection timer. | |
dwc_tasklet_t * | reset_tasklet |
dwc_spinlock_t * | lock |
void * | priv |
Private data that could be used by OS wrapper. | |
uint8_t | otg_port |
uint32_t * | frame_list |
Frame List. | |
dma_addr_t | frame_list_dma |
Frame List DMA address. | |
Data Structures | |
union | dwc_otg_hcd_internal_flags |
Internal DWC HCD Flags. More... |
Definition at line 372 of file dwc_otg_hcd.h.
dwc_list_link_t dwc_otg_hcd::non_periodic_sched_inactive |
Inactive items in the non-periodic schedule.
This is a list of Queue Heads. Transfers associated with these Queue Heads are not currently assigned to a host channel.
Definition at line 399 of file dwc_otg_hcd.h.
dwc_list_link_t dwc_otg_hcd::non_periodic_sched_active |
Active items in the non-periodic schedule.
This is a list of Queue Heads. Transfers associated with these Queue Heads are currently assigned to a host channel.
Definition at line 406 of file dwc_otg_hcd.h.
dwc_list_link_t dwc_otg_hcd::periodic_sched_inactive |
Inactive items in the periodic schedule.
This is a list of QHs for periodic transfers that are _not_ scheduled for the next frame. Each QH in the list has an interval counter that determines when it needs to be scheduled for execution. This scheduling mechanism allows only a simple calculation for periodic bandwidth used (i.e. must assume that all periodic transfers may need to execute in the same frame). However, it greatly simplifies scheduling and should be sufficient for the vast majority of OTG hosts, which need to connect to a small number of peripherals at one time.
Items move from this list to periodic_sched_ready when the QH interval counter is 0 at SOF.
Definition at line 428 of file dwc_otg_hcd.h.
dwc_list_link_t dwc_otg_hcd::periodic_sched_ready |
List of periodic QHs that are ready for execution in the next frame, but have not yet been assigned to host channels.
Items move from this list to periodic_sched_assigned as host channels become available during the current frame.
Definition at line 437 of file dwc_otg_hcd.h.
dwc_list_link_t dwc_otg_hcd::periodic_sched_assigned |
List of periodic QHs to be executed in the next frame that are assigned to host channels.
Items move from this list to periodic_sched_queued as the transactions for the QH are queued to the DWC_otg controller.
Definition at line 446 of file dwc_otg_hcd.h.
dwc_list_link_t dwc_otg_hcd::periodic_sched_queued |
List of periodic QHs that have been queued for execution.
Items move from this list to either periodic_sched_inactive or periodic_sched_ready when the channel associated with the transfer is released. If the interval for the QH is 1, the item moves to periodic_sched_ready because it must be rescheduled for the next frame. Otherwise, the item moves to periodic_sched_inactive.
Definition at line 457 of file dwc_otg_hcd.h.
uint16_t dwc_otg_hcd::periodic_usecs |
Total bandwidth claimed so far for periodic transfers.
This value is in microseconds per (micro)frame. The assumption is that all periodic transfers may occur in the same (micro)frame.
Definition at line 464 of file dwc_otg_hcd.h.
uint16_t dwc_otg_hcd::frame_number |
Frame number read from the core at SOF.
The value ranges from 0 to DWC_HFNUM_MAX_FRNUM.
Definition at line 470 of file dwc_otg_hcd.h.
struct hc_list dwc_otg_hcd::free_hc_list |
Free host channels in the controller.
This is a list of dwc_hc_t items.
Definition at line 476 of file dwc_otg_hcd.h.
Number of host channels assigned to periodic transfers.
Currently assuming that there is a dedicated host channel for each periodic transaction and at least one host channel available for non-periodic transactions.
Definition at line 483 of file dwc_otg_hcd.h.
struct dwc_hc* dwc_otg_hcd::hc_ptr_array[MAX_EPS_CHANNELS] |
Array of pointers to the host channel descriptors.
Allows accessing a host channel descriptor given the host channel number. This is useful in interrupt handlers.
Definition at line 495 of file dwc_otg_hcd.h.
uint8_t* dwc_otg_hcd::status_buf |
Buffer to use for any data received during the status phase of a control transfer.
Normally no data is transferred during the status phase. This buffer is used as a bit bucket.
Definition at line 502 of file dwc_otg_hcd.h.
dwc_timer_t* dwc_otg_hcd::conn_timer |
Connection timer.
An OTG host must display a message if the device does not connect. Started when the VBus power is turned on via sysfs attribute "buspower".
Definition at line 515 of file dwc_otg_hcd.h.