FreeBSD kernel usb device Code
ehci.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ehci_itd
 
struct  ehci_sitd
 
struct  ehci_qtd
 
struct  ehci_qh_sub
 
struct  ehci_qh
 
struct  ehci_fstn
 
struct  ehci_hw_softc
 
struct  ehci_config_desc
 
union  ehci_hub_desc
 
struct  ehci_softc
 

Macros

#define EHCI_MAX_DEVICES   MIN(USB_MAX_DEVICES, 128)
 
#define EHCI_FRAMELIST_ALIGN   0x1000 /* bytes */
 
#define EHCI_FRAMELIST_COUNT   1024 /* units */
 
#define EHCI_VIRTUAL_FRAMELIST_COUNT   128 /* units */
 
#define EHCI_LINK_TERMINATE   0x00000001
 
#define EHCI_LINK_TYPE(x)   ((x) & 0x00000006)
 
#define EHCI_LINK_ITD   0x0
 
#define EHCI_LINK_QH   0x2
 
#define EHCI_LINK_SITD   0x4
 
#define EHCI_LINK_FSTN   0x6
 
#define EHCI_LINK_ADDR(x)   ((x) &~ 0x1f)
 
#define EHCI_ITD_ALIGN   128
 
#define EHCI_SITD_ALIGN   64
 
#define EHCI_QTD_ALIGN   64
 
#define EHCI_QH_ALIGN   128
 
#define EHCI_FSTN_ALIGN   32
 
#define EHCI_PAGE_SIZE   0x1000
 
#define EHCI_ITD_SET_LEN(x)   ((x) << 16)
 
#define EHCI_ITD_GET_LEN(x)   (((x) >> 16) & 0xFFF)
 
#define EHCI_ITD_IOC   (1 << 15)
 
#define EHCI_ITD_SET_PG(x)   ((x) << 12)
 
#define EHCI_ITD_GET_PG(x)   (((x) >> 12) & 0x7)
 
#define EHCI_ITD_SET_OFFS(x)   (x)
 
#define EHCI_ITD_GET_OFFS(x)   (((x) >> 0) & 0xFFF)
 
#define EHCI_ITD_ACTIVE   (1U << 31)
 
#define EHCI_ITD_DATABUFERR   (1 << 30)
 
#define EHCI_ITD_BABBLE   (1 << 29)
 
#define EHCI_ITD_XACTERR   (1 << 28)
 
#define EHCI_ITD_SET_ADDR(x)   (x)
 
#define EHCI_ITD_GET_ADDR(x)   (((x) >> 0) & 0x7F)
 
#define EHCI_ITD_SET_ENDPT(x)   ((x) << 8)
 
#define EHCI_ITD_GET_ENDPT(x)   (((x) >> 8) & 0xF)
 
#define EHCI_ITD_SET_DIR_IN   (1 << 11)
 
#define EHCI_ITD_SET_DIR_OUT   (0 << 11)
 
#define EHCI_ITD_SET_MPL(x)   (x)
 
#define EHCI_ITD_GET_MPL(x)   (((x) >> 0) & 0x7FF)
 
#define EHCI_SITD_SET_DIR_OUT   (0 << 31)
 
#define EHCI_SITD_SET_DIR_IN   (1U << 31)
 
#define EHCI_SITD_SET_ADDR(x)   (x)
 
#define EHCI_SITD_GET_ADDR(x)   ((x) & 0x7F)
 
#define EHCI_SITD_SET_ENDPT(x)   ((x) << 8)
 
#define EHCI_SITD_GET_ENDPT(x)   (((x) >> 8) & 0xF)
 
#define EHCI_SITD_GET_DIR(x)   ((x) >> 31)
 
#define EHCI_SITD_SET_PORT(x)   ((x) << 24)
 
#define EHCI_SITD_GET_PORT(x)   (((x) >> 24) & 0x7F)
 
#define EHCI_SITD_SET_HUBA(x)   ((x) << 16)
 
#define EHCI_SITD_GET_HUBA(x)   (((x) >> 16) & 0x7F)
 
#define EHCI_SITD_SET_SMASK(x)   (x)
 
#define EHCI_SITD_SET_CMASK(x)   ((x) << 8)
 
#define EHCI_SITD_COMPLETE_SPLIT   (1<<1)
 
#define EHCI_SITD_START_SPLIT   (0<<1)
 
#define EHCI_SITD_MISSED_MICRO_FRAME   (1<<2)
 
#define EHCI_SITD_XACTERR   (1<<3)
 
#define EHCI_SITD_BABBLE   (1<<4)
 
#define EHCI_SITD_DATABUFERR   (1<<5)
 
#define EHCI_SITD_ERROR   (1<<6)
 
#define EHCI_SITD_ACTIVE   (1<<7)
 
#define EHCI_SITD_IOC   (1<<31)
 
#define EHCI_SITD_SET_LEN(len)   ((len)<<16)
 
#define EHCI_SITD_GET_LEN(x)   (((x)>>16) & 0x3FF)
 
#define EHCI_QTD_GET_STATUS(x)   (((x) >> 0) & 0xff)
 
#define EHCI_QTD_SET_STATUS(x)   ((x) << 0)
 
#define EHCI_QTD_ACTIVE   0x80
 
#define EHCI_QTD_HALTED   0x40
 
#define EHCI_QTD_BUFERR   0x20
 
#define EHCI_QTD_BABBLE   0x10
 
#define EHCI_QTD_XACTERR   0x08
 
#define EHCI_QTD_MISSEDMICRO   0x04
 
#define EHCI_QTD_SPLITXSTATE   0x02
 
#define EHCI_QTD_PINGSTATE   0x01
 
#define EHCI_QTD_STATERRS   0x74
 
#define EHCI_QTD_GET_PID(x)   (((x) >> 8) & 0x3)
 
#define EHCI_QTD_SET_PID(x)   ((x) << 8)
 
#define EHCI_QTD_PID_OUT   0x0
 
#define EHCI_QTD_PID_IN   0x1
 
#define EHCI_QTD_PID_SETUP   0x2
 
#define EHCI_QTD_GET_CERR(x)   (((x) >> 10) & 0x3)
 
#define EHCI_QTD_SET_CERR(x)   ((x) << 10)
 
#define EHCI_QTD_GET_C_PAGE(x)   (((x) >> 12) & 0x7)
 
#define EHCI_QTD_SET_C_PAGE(x)   ((x) << 12)
 
#define EHCI_QTD_GET_IOC(x)   (((x) >> 15) & 0x1)
 
#define EHCI_QTD_IOC   0x00008000
 
#define EHCI_QTD_GET_BYTES(x)   (((x) >> 16) & 0x7fff)
 
#define EHCI_QTD_SET_BYTES(x)   ((x) << 16)
 
#define EHCI_QTD_GET_TOGGLE(x)   (((x) >> 31) & 0x1)
 
#define EHCI_QTD_SET_TOGGLE(x)   ((x) << 31)
 
#define EHCI_QTD_TOGGLE_MASK   0x80000000
 
#define EHCI_QTD_NBUFFERS   5
 
#define EHCI_QTD_PAYLOAD_MAX   ((EHCI_QTD_NBUFFERS-1)*EHCI_PAGE_SIZE)
 
#define EHCI_QH_GET_ADDR(x)   (((x) >> 0) & 0x7f) /* endpoint addr */
 
#define EHCI_QH_SET_ADDR(x)   (x)
 
#define EHCI_QH_ADDRMASK   0x0000007f
 
#define EHCI_QH_GET_INACT(x)   (((x) >> 7) & 0x01) /* inactivate on next */
 
#define EHCI_QH_INACT   0x00000080
 
#define EHCI_QH_GET_ENDPT(x)   (((x) >> 8) & 0x0f) /* endpoint no */
 
#define EHCI_QH_SET_ENDPT(x)   ((x) << 8)
 
#define EHCI_QH_GET_EPS(x)   (((x) >> 12) & 0x03) /* endpoint speed */
 
#define EHCI_QH_SET_EPS(x)   ((x) << 12)
 
#define EHCI_QH_SPEED_FULL   0x0
 
#define EHCI_QH_SPEED_LOW   0x1
 
#define EHCI_QH_SPEED_HIGH   0x2
 
#define EHCI_QH_GET_DTC(x)   (((x) >> 14) & 0x01) /* data toggle control */
 
#define EHCI_QH_DTC   0x00004000
 
#define EHCI_QH_GET_HRECL(x)   (((x) >> 15) & 0x01) /* head of reclamation */
 
#define EHCI_QH_HRECL   0x00008000
 
#define EHCI_QH_GET_MPL(x)   (((x) >> 16) & 0x7ff) /* max packet len */
 
#define EHCI_QH_SET_MPL(x)   ((x) << 16)
 
#define EHCI_QH_MPLMASK   0x07ff0000
 
#define EHCI_QH_GET_CTL(x)   (((x) >> 27) & 0x01) /* control endpoint */
 
#define EHCI_QH_CTL   0x08000000
 
#define EHCI_QH_GET_NRL(x)   (((x) >> 28) & 0x0f) /* NAK reload */
 
#define EHCI_QH_SET_NRL(x)   ((x) << 28)
 
#define EHCI_QH_GET_SMASK(x)   (((x) >> 0) & 0xff) /* intr sched mask */
 
#define EHCI_QH_SET_SMASK(x)   ((x) << 0)
 
#define EHCI_QH_GET_CMASK(x)   (((x) >> 8) & 0xff) /* split completion mask */
 
#define EHCI_QH_SET_CMASK(x)   ((x) << 8)
 
#define EHCI_QH_GET_HUBA(x)   (((x) >> 16) & 0x7f) /* hub address */
 
#define EHCI_QH_SET_HUBA(x)   ((x) << 16)
 
#define EHCI_QH_GET_PORT(x)   (((x) >> 23) & 0x7f) /* hub port */
 
#define EHCI_QH_SET_PORT(x)   ((x) << 23)
 
#define EHCI_QH_GET_MULT(x)   (((x) >> 30) & 0x03) /* pipe multiplier */
 
#define EHCI_QH_SET_MULT(x)   ((x) << 30)
 
#define EHCI_SCFLG_NORESTERM   0x0004 /* don't terminate reset sequence */
 
#define EHCI_SCFLG_BIGEDESC   0x0008 /* big-endian byte order descriptors */
 
#define EHCI_SCFLG_TT   0x0020 /* transaction translator present */
 
#define EHCI_SCFLG_LOSTINTRBUG   0x0040 /* workaround for VIA / ATI chipsets */
 
#define EHCI_SCFLG_IAADBUG   0x0080 /* workaround for nVidia chipsets */
 
#define EHCI_SCFLG_DONTRESET   0x0100 /* don't reset ctrl. in ehci_init() */
 
#define EHCI_SCFLG_DONEINIT   0x1000 /* ehci_init() has been called. */
 
#define EREAD1(sc, a)   bus_space_read_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (a))
 
#define EREAD2(sc, a)   bus_space_read_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (a))
 
#define EREAD4(sc, a)   bus_space_read_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (a))
 
#define EWRITE1(sc, a, x)    bus_space_write_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (a), (x))
 
#define EWRITE2(sc, a, x)    bus_space_write_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (a), (x))
 
#define EWRITE4(sc, a, x)    bus_space_write_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (a), (x))
 
#define EOREAD1(sc, a)    bus_space_read_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a))
 
#define EOREAD2(sc, a)    bus_space_read_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a))
 
#define EOREAD4(sc, a)    bus_space_read_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a))
 
#define EOWRITE1(sc, a, x)    bus_space_write_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a), (x))
 
#define EOWRITE2(sc, a, x)    bus_space_write_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a), (x))
 
#define EOWRITE4(sc, a, x)    bus_space_write_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a), (x))
 

Typedefs

typedef struct ehci_itd ehci_itd_t
 
typedef struct ehci_sitd ehci_sitd_t
 
typedef struct ehci_qtd ehci_qtd_t
 
typedef struct ehci_qh ehci_qh_t
 
typedef struct ehci_fstn ehci_fstn_t
 
typedef struct ehci_softc ehci_softc_t
 

Functions

struct ehci_itd __aligned (EHCI_ITD_ALIGN)
 
struct ehci_sitd __aligned (EHCI_SITD_ALIGN)
 
struct ehci_qtd __aligned (EHCI_QTD_ALIGN)
 
struct ehci_qh_sub __aligned (4)
 
struct ehci_qh __aligned (EHCI_QH_ALIGN)
 
struct ehci_fstn __aligned (EHCI_FSTN_ALIGN)
 
static __inline uint32_t htohc32 (const struct ehci_softc *sc, const uint32_t v)
 
static __inline uint16_t htohc16 (const struct ehci_softc *sc, const uint16_t v)
 
static __inline uint32_t hc32toh (const struct ehci_softc *sc, const uint32_t v)
 
static __inline uint16_t hc16toh (const struct ehci_softc *sc, const uint16_t v)
 
usb_error_t ehci_reset (ehci_softc_t *sc)
 
usb_error_t ehci_init (ehci_softc_t *sc)
 
void ehci_detach (struct ehci_softc *sc)
 
void ehci_interrupt (ehci_softc_t *sc)
 
uint16_t ehci_get_port_speed_portsc (struct ehci_softc *sc, uint16_t index)
 
uint16_t ehci_get_port_speed_hostc (struct ehci_softc *sc, uint16_t index)
 

Variables

volatile uint32_t itd_next
 
volatile uint32_t itd_status [8]
 
volatile uint32_t itd_bp [7]
 
volatile uint32_t itd_bp_hi [7]
 
uint32_t itd_self
 
struct ehci_itdnext
 
struct ehci_itdprev
 
struct ehci_itdobj_next
 
struct usb_page_cachepage_cache
 
volatile uint32_t sitd_next
 
volatile uint32_t sitd_portaddr
 
volatile uint32_t sitd_mask
 
volatile uint32_t sitd_status
 
volatile uint32_t sitd_bp [2]
 
volatile uint32_t sitd_back
 
volatile uint32_t sitd_bp_hi [2]
 
uint32_t sitd_self
 
volatile uint32_t qtd_next
 
volatile uint32_t qtd_altnext
 
volatile uint32_t qtd_status
 
volatile uint32_t qtd_buffer [EHCI_QTD_NBUFFERS]
 
volatile uint32_t qtd_buffer_hi [EHCI_QTD_NBUFFERS]
 
struct ehci_qtdalt_next
 
uint32_t qtd_self
 
uint16_t len
 
volatile uint32_t qh_link
 
volatile uint32_t qh_endp
 
volatile uint32_t qh_endphub
 
volatile uint32_t qh_curqtd
 
struct ehci_qh_sub qh_qtd
 
uint32_t qh_self
 
volatile uint32_t fstn_link
 
volatile uint32_t fstn_back
 
struct ehci_hw_softc __aligned
 
struct ehci_config_desc __packed
 
usb_bus_mem_cb_t ehci_iterate_hw_softc
 

Macro Definition Documentation

◆ EHCI_FRAMELIST_ALIGN

#define EHCI_FRAMELIST_ALIGN   0x1000 /* bytes */

Definition at line 42 of file ehci.h.

◆ EHCI_FRAMELIST_COUNT

#define EHCI_FRAMELIST_COUNT   1024 /* units */

Definition at line 43 of file ehci.h.

◆ EHCI_FSTN_ALIGN

#define EHCI_FSTN_ALIGN   32

Definition at line 68 of file ehci.h.

◆ EHCI_ITD_ACTIVE

#define EHCI_ITD_ACTIVE   (1U << 31)

Definition at line 9 of file ehci.h.

◆ EHCI_ITD_ALIGN

#define EHCI_ITD_ALIGN   128

Definition at line 64 of file ehci.h.

◆ EHCI_ITD_BABBLE

#define EHCI_ITD_BABBLE   (1 << 29)

Definition at line 11 of file ehci.h.

◆ EHCI_ITD_DATABUFERR

#define EHCI_ITD_DATABUFERR   (1 << 30)

Definition at line 10 of file ehci.h.

◆ EHCI_ITD_GET_ADDR

#define EHCI_ITD_GET_ADDR (   x)    (((x) >> 0) & 0x7F)

Definition at line 16 of file ehci.h.

◆ EHCI_ITD_GET_ENDPT

#define EHCI_ITD_GET_ENDPT (   x)    (((x) >> 8) & 0xF)

Definition at line 18 of file ehci.h.

◆ EHCI_ITD_GET_LEN

#define EHCI_ITD_GET_LEN (   x)    (((x) >> 16) & 0xFFF)

Definition at line 3 of file ehci.h.

◆ EHCI_ITD_GET_MPL

#define EHCI_ITD_GET_MPL (   x)    (((x) >> 0) & 0x7FF)

Definition at line 23 of file ehci.h.

◆ EHCI_ITD_GET_OFFS

#define EHCI_ITD_GET_OFFS (   x)    (((x) >> 0) & 0xFFF)

Definition at line 8 of file ehci.h.

◆ EHCI_ITD_GET_PG

#define EHCI_ITD_GET_PG (   x)    (((x) >> 12) & 0x7)

Definition at line 6 of file ehci.h.

◆ EHCI_ITD_IOC

#define EHCI_ITD_IOC   (1 << 15)

Definition at line 4 of file ehci.h.

◆ EHCI_ITD_SET_ADDR

#define EHCI_ITD_SET_ADDR (   x)    (x)

Definition at line 15 of file ehci.h.

◆ EHCI_ITD_SET_DIR_IN

#define EHCI_ITD_SET_DIR_IN   (1 << 11)

Definition at line 20 of file ehci.h.

◆ EHCI_ITD_SET_DIR_OUT

#define EHCI_ITD_SET_DIR_OUT   (0 << 11)

Definition at line 21 of file ehci.h.

◆ EHCI_ITD_SET_ENDPT

#define EHCI_ITD_SET_ENDPT (   x)    ((x) << 8)

Definition at line 17 of file ehci.h.

◆ EHCI_ITD_SET_LEN

#define EHCI_ITD_SET_LEN (   x)    ((x) << 16)

Definition at line 2 of file ehci.h.

◆ EHCI_ITD_SET_MPL

#define EHCI_ITD_SET_MPL (   x)    (x)

Definition at line 22 of file ehci.h.

◆ EHCI_ITD_SET_OFFS

#define EHCI_ITD_SET_OFFS (   x)    (x)

Definition at line 7 of file ehci.h.

◆ EHCI_ITD_SET_PG

#define EHCI_ITD_SET_PG (   x)    ((x) << 12)

Definition at line 5 of file ehci.h.

◆ EHCI_ITD_XACTERR

#define EHCI_ITD_XACTERR   (1 << 28)

Definition at line 12 of file ehci.h.

◆ EHCI_LINK_ADDR

#define EHCI_LINK_ADDR (   x)    ((x) &~ 0x1f)

Definition at line 61 of file ehci.h.

◆ EHCI_LINK_FSTN

#define EHCI_LINK_FSTN   0x6

Definition at line 60 of file ehci.h.

◆ EHCI_LINK_ITD

#define EHCI_LINK_ITD   0x0

Definition at line 57 of file ehci.h.

◆ EHCI_LINK_QH

#define EHCI_LINK_QH   0x2

Definition at line 58 of file ehci.h.

◆ EHCI_LINK_SITD

#define EHCI_LINK_SITD   0x4

Definition at line 59 of file ehci.h.

◆ EHCI_LINK_TERMINATE

#define EHCI_LINK_TERMINATE   0x00000001

Definition at line 55 of file ehci.h.

◆ EHCI_LINK_TYPE

#define EHCI_LINK_TYPE (   x)    ((x) & 0x00000006)

Definition at line 56 of file ehci.h.

◆ EHCI_MAX_DEVICES

#define EHCI_MAX_DEVICES   MIN(USB_MAX_DEVICES, 128)

Definition at line 36 of file ehci.h.

◆ EHCI_PAGE_SIZE

#define EHCI_PAGE_SIZE   0x1000

Definition at line 70 of file ehci.h.

◆ EHCI_QH_ADDRMASK

#define EHCI_QH_ADDRMASK   0x0000007f

Definition at line 4 of file ehci.h.

◆ EHCI_QH_ALIGN

#define EHCI_QH_ALIGN   128

Definition at line 67 of file ehci.h.

◆ EHCI_QH_CTL

#define EHCI_QH_CTL   0x08000000

Definition at line 22 of file ehci.h.

◆ EHCI_QH_DTC

#define EHCI_QH_DTC   0x00004000

Definition at line 15 of file ehci.h.

◆ EHCI_QH_GET_ADDR

#define EHCI_QH_GET_ADDR (   x)    (((x) >> 0) & 0x7f) /* endpoint addr */

Definition at line 2 of file ehci.h.

◆ EHCI_QH_GET_CMASK

#define EHCI_QH_GET_CMASK (   x)    (((x) >> 8) & 0xff) /* split completion mask */

Definition at line 28 of file ehci.h.

◆ EHCI_QH_GET_CTL

#define EHCI_QH_GET_CTL (   x)    (((x) >> 27) & 0x01) /* control endpoint */

Definition at line 21 of file ehci.h.

◆ EHCI_QH_GET_DTC

#define EHCI_QH_GET_DTC (   x)    (((x) >> 14) & 0x01) /* data toggle control */

Definition at line 14 of file ehci.h.

◆ EHCI_QH_GET_ENDPT

#define EHCI_QH_GET_ENDPT (   x)    (((x) >> 8) & 0x0f) /* endpoint no */

Definition at line 7 of file ehci.h.

◆ EHCI_QH_GET_EPS

#define EHCI_QH_GET_EPS (   x)    (((x) >> 12) & 0x03) /* endpoint speed */

Definition at line 9 of file ehci.h.

◆ EHCI_QH_GET_HRECL

#define EHCI_QH_GET_HRECL (   x)    (((x) >> 15) & 0x01) /* head of reclamation */

Definition at line 16 of file ehci.h.

◆ EHCI_QH_GET_HUBA

#define EHCI_QH_GET_HUBA (   x)    (((x) >> 16) & 0x7f) /* hub address */

Definition at line 30 of file ehci.h.

◆ EHCI_QH_GET_INACT

#define EHCI_QH_GET_INACT (   x)    (((x) >> 7) & 0x01) /* inactivate on next */

Definition at line 5 of file ehci.h.

◆ EHCI_QH_GET_MPL

#define EHCI_QH_GET_MPL (   x)    (((x) >> 16) & 0x7ff) /* max packet len */

Definition at line 18 of file ehci.h.

◆ EHCI_QH_GET_MULT

#define EHCI_QH_GET_MULT (   x)    (((x) >> 30) & 0x03) /* pipe multiplier */

Definition at line 34 of file ehci.h.

◆ EHCI_QH_GET_NRL

#define EHCI_QH_GET_NRL (   x)    (((x) >> 28) & 0x0f) /* NAK reload */

Definition at line 23 of file ehci.h.

◆ EHCI_QH_GET_PORT

#define EHCI_QH_GET_PORT (   x)    (((x) >> 23) & 0x7f) /* hub port */

Definition at line 32 of file ehci.h.

◆ EHCI_QH_GET_SMASK

#define EHCI_QH_GET_SMASK (   x)    (((x) >> 0) & 0xff) /* intr sched mask */

Definition at line 26 of file ehci.h.

◆ EHCI_QH_HRECL

#define EHCI_QH_HRECL   0x00008000

Definition at line 17 of file ehci.h.

◆ EHCI_QH_INACT

#define EHCI_QH_INACT   0x00000080

Definition at line 6 of file ehci.h.

◆ EHCI_QH_MPLMASK

#define EHCI_QH_MPLMASK   0x07ff0000

Definition at line 20 of file ehci.h.

◆ EHCI_QH_SET_ADDR

#define EHCI_QH_SET_ADDR (   x)    (x)

Definition at line 3 of file ehci.h.

◆ EHCI_QH_SET_CMASK

#define EHCI_QH_SET_CMASK (   x)    ((x) << 8)

Definition at line 29 of file ehci.h.

◆ EHCI_QH_SET_ENDPT

#define EHCI_QH_SET_ENDPT (   x)    ((x) << 8)

Definition at line 8 of file ehci.h.

◆ EHCI_QH_SET_EPS

#define EHCI_QH_SET_EPS (   x)    ((x) << 12)

Definition at line 10 of file ehci.h.

◆ EHCI_QH_SET_HUBA

#define EHCI_QH_SET_HUBA (   x)    ((x) << 16)

Definition at line 31 of file ehci.h.

◆ EHCI_QH_SET_MPL

#define EHCI_QH_SET_MPL (   x)    ((x) << 16)

Definition at line 19 of file ehci.h.

◆ EHCI_QH_SET_MULT

#define EHCI_QH_SET_MULT (   x)    ((x) << 30)

Definition at line 35 of file ehci.h.

◆ EHCI_QH_SET_NRL

#define EHCI_QH_SET_NRL (   x)    ((x) << 28)

Definition at line 24 of file ehci.h.

◆ EHCI_QH_SET_PORT

#define EHCI_QH_SET_PORT (   x)    ((x) << 23)

Definition at line 33 of file ehci.h.

◆ EHCI_QH_SET_SMASK

#define EHCI_QH_SET_SMASK (   x)    ((x) << 0)

Definition at line 27 of file ehci.h.

◆ EHCI_QH_SPEED_FULL

#define EHCI_QH_SPEED_FULL   0x0

Definition at line 11 of file ehci.h.

◆ EHCI_QH_SPEED_HIGH

#define EHCI_QH_SPEED_HIGH   0x2

Definition at line 13 of file ehci.h.

◆ EHCI_QH_SPEED_LOW

#define EHCI_QH_SPEED_LOW   0x1

Definition at line 12 of file ehci.h.

◆ EHCI_QTD_ACTIVE

#define EHCI_QTD_ACTIVE   0x80

Definition at line 5 of file ehci.h.

◆ EHCI_QTD_ALIGN

#define EHCI_QTD_ALIGN   64

Definition at line 66 of file ehci.h.

◆ EHCI_QTD_BABBLE

#define EHCI_QTD_BABBLE   0x10

Definition at line 8 of file ehci.h.

◆ EHCI_QTD_BUFERR

#define EHCI_QTD_BUFERR   0x20

Definition at line 7 of file ehci.h.

◆ EHCI_QTD_GET_BYTES

#define EHCI_QTD_GET_BYTES (   x)    (((x) >> 16) & 0x7fff)

Definition at line 25 of file ehci.h.

◆ EHCI_QTD_GET_C_PAGE

#define EHCI_QTD_GET_C_PAGE (   x)    (((x) >> 12) & 0x7)

Definition at line 21 of file ehci.h.

◆ EHCI_QTD_GET_CERR

#define EHCI_QTD_GET_CERR (   x)    (((x) >> 10) & 0x3)

Definition at line 19 of file ehci.h.

◆ EHCI_QTD_GET_IOC

#define EHCI_QTD_GET_IOC (   x)    (((x) >> 15) & 0x1)

Definition at line 23 of file ehci.h.

◆ EHCI_QTD_GET_PID

#define EHCI_QTD_GET_PID (   x)    (((x) >> 8) & 0x3)

Definition at line 14 of file ehci.h.

◆ EHCI_QTD_GET_STATUS

#define EHCI_QTD_GET_STATUS (   x)    (((x) >> 0) & 0xff)

Definition at line 3 of file ehci.h.

◆ EHCI_QTD_GET_TOGGLE

#define EHCI_QTD_GET_TOGGLE (   x)    (((x) >> 31) & 0x1)

Definition at line 27 of file ehci.h.

◆ EHCI_QTD_HALTED

#define EHCI_QTD_HALTED   0x40

Definition at line 6 of file ehci.h.

◆ EHCI_QTD_IOC

#define EHCI_QTD_IOC   0x00008000

Definition at line 24 of file ehci.h.

◆ EHCI_QTD_MISSEDMICRO

#define EHCI_QTD_MISSEDMICRO   0x04

Definition at line 10 of file ehci.h.

◆ EHCI_QTD_NBUFFERS

#define EHCI_QTD_NBUFFERS   5

Definition at line 30 of file ehci.h.

◆ EHCI_QTD_PAYLOAD_MAX

#define EHCI_QTD_PAYLOAD_MAX   ((EHCI_QTD_NBUFFERS-1)*EHCI_PAGE_SIZE)

Definition at line 31 of file ehci.h.

◆ EHCI_QTD_PID_IN

#define EHCI_QTD_PID_IN   0x1

Definition at line 17 of file ehci.h.

◆ EHCI_QTD_PID_OUT

#define EHCI_QTD_PID_OUT   0x0

Definition at line 16 of file ehci.h.

◆ EHCI_QTD_PID_SETUP

#define EHCI_QTD_PID_SETUP   0x2

Definition at line 18 of file ehci.h.

◆ EHCI_QTD_PINGSTATE

#define EHCI_QTD_PINGSTATE   0x01

Definition at line 12 of file ehci.h.

◆ EHCI_QTD_SET_BYTES

#define EHCI_QTD_SET_BYTES (   x)    ((x) << 16)

Definition at line 26 of file ehci.h.

◆ EHCI_QTD_SET_C_PAGE

#define EHCI_QTD_SET_C_PAGE (   x)    ((x) << 12)

Definition at line 22 of file ehci.h.

◆ EHCI_QTD_SET_CERR

#define EHCI_QTD_SET_CERR (   x)    ((x) << 10)

Definition at line 20 of file ehci.h.

◆ EHCI_QTD_SET_PID

#define EHCI_QTD_SET_PID (   x)    ((x) << 8)

Definition at line 15 of file ehci.h.

◆ EHCI_QTD_SET_STATUS

#define EHCI_QTD_SET_STATUS (   x)    ((x) << 0)

Definition at line 4 of file ehci.h.

◆ EHCI_QTD_SET_TOGGLE

#define EHCI_QTD_SET_TOGGLE (   x)    ((x) << 31)

Definition at line 28 of file ehci.h.

◆ EHCI_QTD_SPLITXSTATE

#define EHCI_QTD_SPLITXSTATE   0x02

Definition at line 11 of file ehci.h.

◆ EHCI_QTD_STATERRS

#define EHCI_QTD_STATERRS   0x74

Definition at line 13 of file ehci.h.

◆ EHCI_QTD_TOGGLE_MASK

#define EHCI_QTD_TOGGLE_MASK   0x80000000

Definition at line 29 of file ehci.h.

◆ EHCI_QTD_XACTERR

#define EHCI_QTD_XACTERR   0x08

Definition at line 9 of file ehci.h.

◆ EHCI_SCFLG_BIGEDESC

#define EHCI_SCFLG_BIGEDESC   0x0008 /* big-endian byte order descriptors */

Definition at line 342 of file ehci.h.

◆ EHCI_SCFLG_DONEINIT

#define EHCI_SCFLG_DONEINIT   0x1000 /* ehci_init() has been called. */

Definition at line 347 of file ehci.h.

◆ EHCI_SCFLG_DONTRESET

#define EHCI_SCFLG_DONTRESET   0x0100 /* don't reset ctrl. in ehci_init() */

Definition at line 346 of file ehci.h.

◆ EHCI_SCFLG_IAADBUG

#define EHCI_SCFLG_IAADBUG   0x0080 /* workaround for nVidia chipsets */

Definition at line 345 of file ehci.h.

◆ EHCI_SCFLG_LOSTINTRBUG

#define EHCI_SCFLG_LOSTINTRBUG   0x0040 /* workaround for VIA / ATI chipsets */

Definition at line 344 of file ehci.h.

◆ EHCI_SCFLG_NORESTERM

#define EHCI_SCFLG_NORESTERM   0x0004 /* don't terminate reset sequence */

Definition at line 341 of file ehci.h.

◆ EHCI_SCFLG_TT

#define EHCI_SCFLG_TT   0x0020 /* transaction translator present */

Definition at line 343 of file ehci.h.

◆ EHCI_SITD_ACTIVE

#define EHCI_SITD_ACTIVE   (1<<7)

Definition at line 24 of file ehci.h.

◆ EHCI_SITD_ALIGN

#define EHCI_SITD_ALIGN   64

Definition at line 65 of file ehci.h.

◆ EHCI_SITD_BABBLE

#define EHCI_SITD_BABBLE   (1<<4)

Definition at line 21 of file ehci.h.

◆ EHCI_SITD_COMPLETE_SPLIT

#define EHCI_SITD_COMPLETE_SPLIT   (1<<1)

Definition at line 17 of file ehci.h.

◆ EHCI_SITD_DATABUFERR

#define EHCI_SITD_DATABUFERR   (1<<5)

Definition at line 22 of file ehci.h.

◆ EHCI_SITD_ERROR

#define EHCI_SITD_ERROR   (1<<6)

Definition at line 23 of file ehci.h.

◆ EHCI_SITD_GET_ADDR

#define EHCI_SITD_GET_ADDR (   x)    ((x) & 0x7F)

Definition at line 5 of file ehci.h.

◆ EHCI_SITD_GET_DIR

#define EHCI_SITD_GET_DIR (   x)    ((x) >> 31)

Definition at line 8 of file ehci.h.

◆ EHCI_SITD_GET_ENDPT

#define EHCI_SITD_GET_ENDPT (   x)    (((x) >> 8) & 0xF)

Definition at line 7 of file ehci.h.

◆ EHCI_SITD_GET_HUBA

#define EHCI_SITD_GET_HUBA (   x)    (((x) >> 16) & 0x7F)

Definition at line 12 of file ehci.h.

◆ EHCI_SITD_GET_LEN

#define EHCI_SITD_GET_LEN (   x)    (((x)>>16) & 0x3FF)

Definition at line 27 of file ehci.h.

◆ EHCI_SITD_GET_PORT

#define EHCI_SITD_GET_PORT (   x)    (((x) >> 24) & 0x7F)

Definition at line 10 of file ehci.h.

◆ EHCI_SITD_IOC

#define EHCI_SITD_IOC   (1<<31)

Definition at line 25 of file ehci.h.

◆ EHCI_SITD_MISSED_MICRO_FRAME

#define EHCI_SITD_MISSED_MICRO_FRAME   (1<<2)

Definition at line 19 of file ehci.h.

◆ EHCI_SITD_SET_ADDR

#define EHCI_SITD_SET_ADDR (   x)    (x)

Definition at line 4 of file ehci.h.

◆ EHCI_SITD_SET_CMASK

#define EHCI_SITD_SET_CMASK (   x)    ((x) << 8)

Definition at line 15 of file ehci.h.

◆ EHCI_SITD_SET_DIR_IN

#define EHCI_SITD_SET_DIR_IN   (1U << 31)

Definition at line 3 of file ehci.h.

◆ EHCI_SITD_SET_DIR_OUT

#define EHCI_SITD_SET_DIR_OUT   (0 << 31)

Definition at line 2 of file ehci.h.

◆ EHCI_SITD_SET_ENDPT

#define EHCI_SITD_SET_ENDPT (   x)    ((x) << 8)

Definition at line 6 of file ehci.h.

◆ EHCI_SITD_SET_HUBA

#define EHCI_SITD_SET_HUBA (   x)    ((x) << 16)

Definition at line 11 of file ehci.h.

◆ EHCI_SITD_SET_LEN

#define EHCI_SITD_SET_LEN (   len)    ((len)<<16)

Definition at line 26 of file ehci.h.

◆ EHCI_SITD_SET_PORT

#define EHCI_SITD_SET_PORT (   x)    ((x) << 24)

Definition at line 9 of file ehci.h.

◆ EHCI_SITD_SET_SMASK

#define EHCI_SITD_SET_SMASK (   x)    (x)

Definition at line 14 of file ehci.h.

◆ EHCI_SITD_START_SPLIT

#define EHCI_SITD_START_SPLIT   (0<<1)

Definition at line 18 of file ehci.h.

◆ EHCI_SITD_XACTERR

#define EHCI_SITD_XACTERR   (1<<3)

Definition at line 20 of file ehci.h.

◆ EHCI_VIRTUAL_FRAMELIST_COUNT

#define EHCI_VIRTUAL_FRAMELIST_COUNT   128 /* units */

Definition at line 44 of file ehci.h.

◆ EOREAD1

#define EOREAD1 (   sc,
 
)     bus_space_read_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a))

Definition at line 374 of file ehci.h.

◆ EOREAD2

#define EOREAD2 (   sc,
 
)     bus_space_read_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a))

Definition at line 376 of file ehci.h.

◆ EOREAD4

#define EOREAD4 (   sc,
 
)     bus_space_read_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a))

Definition at line 378 of file ehci.h.

◆ EOWRITE1

#define EOWRITE1 (   sc,
  a,
 
)     bus_space_write_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a), (x))

Definition at line 380 of file ehci.h.

◆ EOWRITE2

#define EOWRITE2 (   sc,
  a,
 
)     bus_space_write_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a), (x))

Definition at line 382 of file ehci.h.

◆ EOWRITE4

#define EOWRITE4 (   sc,
  a,
 
)     bus_space_write_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a), (x))

Definition at line 384 of file ehci.h.

◆ EREAD1

#define EREAD1 (   sc,
 
)    bus_space_read_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (a))

Definition at line 365 of file ehci.h.

◆ EREAD2

#define EREAD2 (   sc,
 
)    bus_space_read_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (a))

Definition at line 366 of file ehci.h.

◆ EREAD4

#define EREAD4 (   sc,
 
)    bus_space_read_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (a))

Definition at line 367 of file ehci.h.

◆ EWRITE1

#define EWRITE1 (   sc,
  a,
 
)     bus_space_write_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (a), (x))

Definition at line 368 of file ehci.h.

◆ EWRITE2

#define EWRITE2 (   sc,
  a,
 
)     bus_space_write_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (a), (x))

Definition at line 370 of file ehci.h.

◆ EWRITE4

#define EWRITE4 (   sc,
  a,
 
)     bus_space_write_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (a), (x))

Definition at line 372 of file ehci.h.

Typedef Documentation

◆ ehci_fstn_t

typedef struct ehci_fstn ehci_fstn_t

Definition at line 285 of file ehci.h.

◆ ehci_itd_t

typedef struct ehci_itd ehci_itd_t

Definition at line 120 of file ehci.h.

◆ ehci_qh_t

typedef struct ehci_qh ehci_qh_t

Definition at line 277 of file ehci.h.

◆ ehci_qtd_t

typedef struct ehci_qtd ehci_qtd_t

Definition at line 216 of file ehci.h.

◆ ehci_sitd_t

typedef struct ehci_sitd ehci_sitd_t

Definition at line 168 of file ehci.h.

◆ ehci_softc_t

typedef struct ehci_softc ehci_softc_t

Function Documentation

◆ __aligned() [1/6]

struct ehci_qh_sub __aligned ( )

◆ __aligned() [2/6]

struct ehci_fstn __aligned ( EHCI_FSTN_ALIGN  )

◆ __aligned() [3/6]

struct ehci_itd __aligned ( EHCI_ITD_ALIGN  )

◆ __aligned() [4/6]

struct ehci_qh __aligned ( EHCI_QH_ALIGN  )

◆ __aligned() [5/6]

struct ehci_qtd __aligned ( EHCI_QTD_ALIGN  )

◆ __aligned() [6/6]

struct ehci_sitd __aligned ( EHCI_SITD_ALIGN  )

◆ ehci_detach()

void ehci_detach ( struct ehci_softc sc)

◆ ehci_get_port_speed_hostc()

uint16_t ehci_get_port_speed_hostc ( struct ehci_softc sc,
uint16_t  index 
)

◆ ehci_get_port_speed_portsc()

uint16_t ehci_get_port_speed_portsc ( struct ehci_softc sc,
uint16_t  index 
)

Definition at line 2955 of file ehci.c.

References EHCI_PORT_SPEED_HIGH, EHCI_PORT_SPEED_LOW, EHCI_PORTSC, EHCI_PORTSC_PSPD_MASK, EHCI_PORTSC_PSPD_SHIFT, EOREAD4, index, UPS_HIGH_SPEED, and UPS_LOW_SPEED.

Referenced by imx_ehci_attach(), and mv_ehci_attach().

Here is the caller graph for this function:

◆ ehci_init()

usb_error_t ehci_init ( ehci_softc_t sc)

Definition at line 281 of file ehci.c.

References ehci_hw_softc::async_start_pc, usb_bus::bdev, usb_page_search::buffer, usb_bus::bus_mtx, DPRINTF, ehci_bus_methods, EHCI_CAPLEN_HCIVERSION, EHCI_CAPLENGTH, EHCI_CMD_FLS, ehci_do_poll(), EHCI_FRAMELIST_COUNT, EHCI_HCIVERSION, ehci_hcreset(), EHCI_HCS_N_PORTS, EHCI_HCSPARAMS, ehci_init_sub(), ehci_iterate_hw_softc(), EHCI_LINK_ITD, EHCI_LINK_QH, EHCI_LINK_SITD, EHCI_LINK_TERMINATE, EHCI_NORMAL_INTRS, EHCI_QH_HRECL, EHCI_QH_SET_EPS, EHCI_QH_SET_MULT, EHCI_QH_SPEED_HIGH, EHCI_QTD_HALTED, EHCI_SCFLG_DONTRESET, EHCI_SCFLG_IAADBUG, EHCI_SCFLG_LOSTINTRBUG, EHCI_USBCMD, EHCI_VIRTUAL_FRAMELIST_COUNT, EOREAD4, EREAD4, htohc32(), ehci_hw_softc::intr_start_pc, ehci_hw_softc::isoc_fs_start_pc, ehci_hw_softc::isoc_hs_start_pc, ehci_itd::itd_next, itd_self, ehci_itd::itd_self, usb_bus::methods, ehci_itd::page_cache, ehci_sitd::page_cache, ehci_qh::page_cache, ehci_hw_softc::pframes_pc, ehci_qh::qh_curqtd, ehci_qh::qh_endp, ehci_qh::qh_endphub, ehci_qh::qh_link, ehci_qh::qh_qtd, qh_self, ehci_qh::qh_self, ehci_qh_sub::qtd_altnext, ehci_qh_sub::qtd_next, ehci_qh_sub::qtd_status, ehci_softc::sc_async_p_last, ehci_softc::sc_bus, ehci_softc::sc_eintrs, ehci_softc::sc_flags, ehci_softc::sc_hw, ehci_softc::sc_intr_p_last, ehci_softc::sc_isoc_fs_p_last, ehci_softc::sc_isoc_hs_p_last, ehci_softc::sc_noport, ehci_softc::sc_offs, ehci_softc::sc_terminate_self, ehci_softc::sc_tmo_pcd, ehci_softc::sc_tmo_poll, ehci_sitd::sitd_back, ehci_sitd::sitd_next, ehci_sitd::sitd_self, ehci_hw_softc::terminate_pc, usb_bus_mem_flush_all(), usb_callout_init_mtx, USB_ERR_IOERROR, USB_REV_2_0, usbd_get_page(), and usb_bus::usbrev.

Referenced by ehci_msm_attach(), ehci_pci_attach(), fsl_ehci_attach(), generic_ehci_attach(), imx_ehci_attach(), and mv_ehci_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ehci_interrupt()

◆ ehci_reset()

usb_error_t ehci_reset ( ehci_softc_t sc)

Definition at line 184 of file ehci.c.

References usb_bus::bdev, EHCI_CMD_HCRESET, EHCI_USBCMD, EOREAD4, EOWRITE4, ehci_softc::sc_bus, ehci_softc::sc_vendor_post_reset, USB_ERR_IOERROR, and usb_pause_mtx().

Referenced by ehci_hcreset(), and fsl_ehci_attach().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hc16toh()

static __inline uint16_t hc16toh ( const struct ehci_softc sc,
const uint16_t  v 
)
static

Definition at line 439 of file ehci.h.

◆ hc32toh()

static __inline uint32_t hc32toh ( const struct ehci_softc sc,
const uint32_t  v 
)
static

Definition at line 433 of file ehci.h.

Referenced by ehci_check_transfer(), ehci_isoc_fs_done(), ehci_isoc_hs_done(), and ehci_non_isoc_done_sub().

Here is the caller graph for this function:

◆ htohc16()

static __inline uint16_t htohc16 ( const struct ehci_softc sc,
const uint16_t  v 
)
static

Definition at line 427 of file ehci.h.

◆ htohc32()

static __inline uint32_t htohc32 ( const struct ehci_softc sc,
const uint32_t  v 
)
static

Variable Documentation

◆ __aligned

◆ __packed

◆ alt_next

struct ehci_qtd* alt_next

Definition at line 37 of file ehci.h.

◆ ehci_iterate_hw_softc

◆ fstn_back

volatile uint32_t fstn_back

Definition at line 1 of file ehci.h.

◆ fstn_link

volatile uint32_t fstn_link

Definition at line 0 of file ehci.h.

◆ itd_bp

volatile uint32_t itd_bp[7]

Definition at line 13 of file ehci.h.

◆ itd_bp_hi

volatile uint32_t itd_bp_hi[7]

Definition at line 24 of file ehci.h.

◆ itd_next

volatile uint32_t itd_next

Definition at line 0 of file ehci.h.

◆ itd_self

uint32_t itd_self

Definition at line 28 of file ehci.h.

Referenced by ehci_init().

◆ itd_status

volatile uint32_t itd_status[8]

Definition at line 1 of file ehci.h.

◆ len

uint16_t len

Definition at line 41 of file ehci.h.

Referenced by acpi_uhub_parse_pld(), atmegadci_roothub_exec(), atmegadci_standard_done_sub(), avr32dci_roothub_exec(), avr32dci_standard_done_sub(), axe_rx_frame(), axe_rxeof(), axge_read_mem(), axge_rxeof(), axge_write_mem(), cdce_bulk_read_callback(), cp2112_get_report(), cp2112_set_report(), cp2112iic_intr_read_callback(), cp2112iic_send_req(), cp2112iic_transfer(), cue_bulk_read_callback(), cue_mem(), dwc_otg_roothub_exec(), dwc_otg_standard_done_sub(), ehci_isoc_fs_done(), ehci_isoc_hs_done(), ehci_non_isoc_done_sub(), ehci_roothub_exec(), get_pkt_len(), ipheth_bulk_read_callback(), kue_bulk_read_callback(), kue_ctl(), musbotg_roothub_exec(), musbotg_standard_done_sub(), ohci_isoc_done(), ohci_roothub_exec(), rsu_event_addba_req_report(), rsu_event_join_bss(), rsu_event_survey(), rsu_fw_cmd(), rsu_fw_loadsection(), rsu_read_region_1(), rsu_rx_event(), rsu_rx_multi_event(), rsu_rx_multi_frame(), rsu_rxeof(), rsu_write_region_1(), rue_read_mem(), rue_write_mem(), rum_bulk_read_callback(), rum_bulk_write_callback(), rum_cmd_sleepable(), rum_eeprom_read(), rum_read_multi(), rum_setup_tx_desc(), rum_write_multi(), run_read_region_1(), run_rx_frame(), run_set_region_4(), run_write_region_1(), u3g_sael_m460_init(), uath_cmd_write(), uath_cmdeof(), uath_config_multi(), ucom_get_data(), ucom_put_data(), ucycom_cfg_write(), ucycom_intr_read_callback(), udav_bulk_read_callback(), udav_csr_read(), udav_csr_write(), udl_cmd_insert_buf_le16(), udl_ctrl_msg(), udl_set_enc_key(), uep_intr_callback(), uether_rxbuf(), uether_rxmbuf(), ufoma_ctrl_read_callback(), ugold_intr_callback(), ugold_issue_cmd(), uhci_isoc_done(), uhci_non_isoc_done_sub(), uhci_roothub_exec(), uhid_get_report(), uhid_probe(), uhid_set_report(), uhso_mux_read_callback(), ukbd_get_state(), ukbd_intr_callback(), ukbd_parse_hid(), ukbd_set_leds_callback(), ulpt_attach(), umcs7840_get_reg_sync(), umcs7840_get_UART_reg_sync(), umct_cfg_do_request(), ums_hid_parse(), ums_intr_callback(), upgt_eeprom_parse_freq6(), upgt_tx_start(), ural_bulk_read_callback(), ural_bulk_write_callback(), ural_eeprom_read(), ural_read_multi(), ural_setup_tx_desc(), ural_write_multi(), ure_bulk_read_callback(), ure_bulk_write_callback(), ure_ctl(), ure_makembuf(), ure_read_mem(), ure_write_mem(), urndis_ctrl_query(), urndis_ctrl_send(), urndis_ctrl_set(), usb_hs_bandwidth_adjust(), usb_make_raw_desc(), usb_pc_buffer_is_aligned(), usb_strquirk(), usb_temp_get_desc(), usb_temp_sysctl(), usbd_copy_in(), usbd_copy_out(), usbd_do_request_proc(), usbd_frame_zero(), usbd_req_get_config_desc_full(), usbd_req_get_descriptor_ptr(), usbd_req_get_hub_descriptor(), usbd_req_get_report(), usbd_req_get_ss_hub_descriptor(), usbd_req_get_string_any(), usbd_req_set_report(), usbd_setup_ctrl_transfer(), usbd_xfer_frame_data(), usbd_xfer_set_frame_data(), usbd_xfer_set_frame_len(), usbhid_ctrl_callback(), usbhid_get_rdesc(), usbhid_intr_out_callback(), usbhid_set_report(), usbhid_write(), usbhid_xfer_check_len(), usie_hip_rsp(), usie_if_rx_callback(), uss820dci_roothub_exec(), uss820dci_standard_done_sub(), ustorage_fs_min_len(), ustorage_fs_mode_sense(), ustorage_fs_read(), ustorage_fs_write(), wmt_intr_callback(), wmt_process_report(), wsp_intr_callback(), xhci_generic_done_sub(), xhci_roothub_exec(), and zyd_rx_data().

◆ next

struct ehci_qh * next

Definition at line 29 of file ehci.h.

Referenced by _rsu_getbuf(), _uath_getbuf(), _upgt_getbuf(), _urtw_getbuf(), generic_ehci_fdt_attach(), generic_ehci_fdt_detach(), generic_ohci_attach(), generic_ohci_detach(), rsu_alloc_rx_list(), rsu_alloc_tx_list(), rsu_bulk_rx_callback(), rsu_bulk_tx_callback_sub(), rsu_freebuf(), rsu_fw_cmd(), rsu_fw_loadsection(), rsu_tx_start(), rum_bulk_write_callback(), rum_reset_tx_list(), rum_sendprot(), rum_setup_tx_list(), rum_tx_data(), rum_tx_free(), rum_tx_mgt(), rum_tx_raw(), run_bulk_tx_callbackN(), run_sendprot(), run_setup_tx_list(), run_tx(), run_tx_free(), run_tx_mgt(), run_tx_param(), uath_alloc_cmd_list(), uath_alloc_rx_data_list(), uath_alloc_tx_data_list(), uath_bulk_rx_callback(), uath_bulk_tx_callback(), uath_cmdsend(), uath_dataflush(), uath_get_cmdbuf(), uath_intr_rx_callback(), uath_intr_tx_callback(), uath_raw_xmit(), uath_start(), uath_tx_start(), uath_txfrag_cleanup(), uath_txfrag_setup(), upgt_alloc_rx(), upgt_alloc_tx(), upgt_bulk_rx_callback(), upgt_bulk_tx(), upgt_bulk_tx_callback(), upgt_gettxbuf(), upgt_raw_xmit(), upgt_set_led(), upgt_start(), ural_bulk_write_callback(), ural_sendprot(), ural_setup_tx_list(), ural_tx_bcn(), ural_tx_data(), ural_tx_free(), ural_tx_mgt(), ural_tx_raw(), urtw_alloc_rx_data_list(), urtw_alloc_tx_data_list(), urtw_bulk_rx_callback(), urtw_bulk_tx_callback(), urtw_raw_xmit(), urtw_start(), urtw_tx_start(), usb_trigger_reprobe_on_off(), zyd_bulk_write_callback(), zyd_setup_tx_list(), zyd_tx_free(), and zyd_tx_start().

◆ obj_next

struct uhci_qh * obj_next

Definition at line 31 of file ehci.h.

◆ page_cache

struct usb_page_cache * page_cache

Definition at line 32 of file ehci.h.

◆ prev

struct ehci_qh * prev

Definition at line 30 of file ehci.h.

◆ qh_curqtd

volatile uint32_t qh_curqtd

Definition at line 36 of file ehci.h.

◆ qh_endp

volatile uint32_t qh_endp

Definition at line 1 of file ehci.h.

Referenced by ehci_setup_standard_chain().

◆ qh_endphub

volatile uint32_t qh_endphub

Definition at line 25 of file ehci.h.

Referenced by ehci_setup_standard_chain().

◆ qh_link

volatile uint32_t qh_link

Definition at line 0 of file ehci.h.

◆ qh_qtd

struct ehci_qh_sub qh_qtd

Definition at line 37 of file ehci.h.

◆ qh_self

uint32_t qh_self

Definition at line 45 of file ehci.h.

Referenced by ehci_init().

◆ qtd_altnext

volatile uint32_t qtd_altnext

Definition at line 1 of file ehci.h.

Referenced by ehci_setup_standard_chain_sub().

◆ qtd_buffer

volatile uint32_t qtd_buffer

Definition at line 32 of file ehci.h.

◆ qtd_buffer_hi

volatile uint32_t qtd_buffer_hi

Definition at line 33 of file ehci.h.

◆ qtd_next

volatile uint32_t qtd_next

Definition at line 0 of file ehci.h.

◆ qtd_self

uint32_t qtd_self

Definition at line 40 of file ehci.h.

◆ qtd_status

volatile uint32_t qtd_status

Definition at line 2 of file ehci.h.

◆ sitd_back

volatile uint32_t sitd_back

Definition at line 29 of file ehci.h.

◆ sitd_bp

volatile uint32_t sitd_bp[2]

Definition at line 28 of file ehci.h.

◆ sitd_bp_hi

volatile uint32_t sitd_bp_hi[2]

Definition at line 30 of file ehci.h.

◆ sitd_mask

volatile uint32_t sitd_mask

Definition at line 13 of file ehci.h.

Referenced by ehci_device_isoc_fs_enter().

◆ sitd_next

volatile uint32_t sitd_next

Definition at line 0 of file ehci.h.

◆ sitd_portaddr

volatile uint32_t sitd_portaddr

Definition at line 1 of file ehci.h.

Referenced by ehci_device_isoc_fs_open().

◆ sitd_self

uint32_t sitd_self

Definition at line 34 of file ehci.h.

◆ sitd_status

volatile uint32_t sitd_status

Definition at line 16 of file ehci.h.