FreeBSD kernel usb device Code
|
Go to the source code of this file.
Data Structures | |
struct | avr32dci_td |
struct | avr32dci_std_temp |
struct | avr32dci_config_desc |
union | avr32dci_hub_temp |
struct | avr32dci_flags |
struct | avr32dci_softc |
Macros | |
#define | AVR32_MAX_DEVICES (USB_MIN_DEVICES + 1) |
#define | AVR32_CTRL 0x00 /* Control */ |
#define | AVR32_CTRL_DEV_ADDR 0x7F |
#define | AVR32_CTRL_DEV_FADDR_EN 0x80 |
#define | AVR32_CTRL_DEV_EN_USBA 0x100 |
#define | AVR32_CTRL_DEV_DETACH 0x200 |
#define | AVR32_CTRL_DEV_REWAKEUP 0x400 |
#define | AVR32_FNUM 0x04 /* Frame Number */ |
#define | AVR32_FNUM_MASK 0x3FFF |
#define | AVR32_FRAME_MASK 0x7FF |
#define | AVR32_IEN 0x10 /* Interrupt Enable */ |
#define | AVR32_INTSTA 0x14 /* Interrupt Status */ |
#define | AVR32_CLRINT 0x18 /* Clear Interrupt */ |
#define | AVR32_INT_SPEED 0x00000001 /* set if High Speed else Full Speed */ |
#define | AVR32_INT_DET_SUSPD 0x00000002 |
#define | AVR32_INT_MICRO_SOF 0x00000004 |
#define | AVR32_INT_INT_SOF 0x00000008 |
#define | AVR32_INT_ENDRESET 0x00000010 |
#define | AVR32_INT_WAKE_UP 0x00000020 |
#define | AVR32_INT_ENDOFRSM 0x00000040 |
#define | AVR32_INT_UPSTR_RES 0x00000080 |
#define | AVR32_INT_EPT_INT(n) (0x00000100 << (n)) |
#define | AVR32_INT_DMA_INT(n) (0x01000000 << (n)) |
#define | AVR32_EPTRST 0x1C /* Endpoints Reset */ |
#define | AVR32_EPTRST_MASK(n) (0x00000001 << (n)) |
#define | AVR32_TSTSOFCNT 0xD0 /* Test SOF Counter */ |
#define | AVR32_TSTCNTA 0xD4 /* Test A Counter */ |
#define | AVR32_TSTCNTB 0xD8 /* Test B Counter */ |
#define | AVR32_TSTMODEREG 0xDC /* Test Mode */ |
#define | AVR32_TST 0xE0 /* Test */ |
#define | AVR32_TST_NORMAL 0x00000000 |
#define | AVR32_TST_HS_ONLY 0x00000002 |
#define | AVR32_TST_FS_ONLY 0x00000003 |
#define | AVR32_IPPADDRSIZE 0xEC /* PADDRSIZE */ |
#define | AVR32_IPNAME1 0xF0 /* Name1 */ |
#define | AVR32_IPNAME2 0xF4 /* Name2 */ |
#define | AVR32_IPFEATURES 0xF8 /* Features */ |
#define | AVR32_IPFEATURES_NEP(x) (((x) & 0xF) ? ((x) & 0xF) : 0x10) |
#define | AVR32_IPVERSION 0xFC /* IP Version */ |
#define | _A(base, n) ((base) + (0x20*(n))) |
#define | AVR32_EPTCFG(n) _A(0x100, n) /* Endpoint Configuration */ |
#define | AVR32_EPTCFG_EPSIZE(n) ((n)-3) /* power of two */ |
#define | AVR32_EPTCFG_EPDIR_OUT 0x00000000 |
#define | AVR32_EPTCFG_EPDIR_IN 0x00000008 |
#define | AVR32_EPTCFG_TYPE_CTRL 0x00000000 |
#define | AVR32_EPTCFG_TYPE_ISOC 0x00000100 |
#define | AVR32_EPTCFG_TYPE_BULK 0x00000200 |
#define | AVR32_EPTCFG_TYPE_INTR 0x00000300 |
#define | AVR32_EPTCFG_NBANK(n) (0x00000400*(n)) |
#define | AVR32_EPTCFG_NB_TRANS(n) (0x00001000*(n)) |
#define | AVR32_EPTCFG_EPT_MAPD 0x80000000 |
#define | AVR32_EPTCTLENB(n) _A(0x104, n) /* Endpoint Control Enable */ |
#define | AVR32_EPTCTLDIS(n) _A(0x108, n) /* Endpoint Control Disable */ |
#define | AVR32_EPTCTL(n) _A(0x10C, n) /* Endpoint Control */ |
#define | AVR32_EPTCTL_EPT_ENABL 0x00000001 |
#define | AVR32_EPTCTL_AUTO_VALID 0x00000002 |
#define | AVR32_EPTCTL_INTDIS_DMA 0x00000008 |
#define | AVR32_EPTCTL_NYET_DIS 0x00000010 |
#define | AVR32_EPTCTL_DATAX_RX 0x00000040 |
#define | AVR32_EPTCTL_MDATA_RX 0x00000080 |
#define | AVR32_EPTCTL_ERR_OVFLW 0x00000100 |
#define | AVR32_EPTCTL_RX_BK_RDY 0x00000200 |
#define | AVR32_EPTCTL_TX_COMPLT 0x00000400 |
#define | AVR32_EPTCTL_TX_PK_RDY 0x00000800 |
#define | AVR32_EPTCTL_RX_SETUP 0x00001000 |
#define | AVR32_EPTCTL_STALL_SNT 0x00002000 |
#define | AVR32_EPTCTL_NAK_IN 0x00004000 |
#define | AVR32_EPTCTL_NAK_OUT 0x00008000 |
#define | AVR32_EPTCTL_BUSY_BANK 0x00040000 |
#define | AVR32_EPTCTL_SHORT_PCKT 0x80000000 |
#define | AVR32_EPTSETSTA(n) _A(0x114, n) /* Endpoint Set Status */ |
#define | AVR32_EPTCLRSTA(n) _A(0x118, n) /* Endpoint Clear Status */ |
#define | AVR32_EPTSTA(n) _A(0x11C, n) /* Endpoint Status */ |
#define | AVR32_EPTSTA_FRCESTALL 0x00000020 |
#define | AVR32_EPTSTA_TOGGLESQ_STA(x) (((x) & 0xC0) >> 6) |
#define | AVR32_EPTSTA_TOGGLESQ 0x00000040 |
#define | AVR32_EPTSTA_ERR_OVFLW 0x00000100 |
#define | AVR32_EPTSTA_RX_BK_RDY 0x00000200 |
#define | AVR32_EPTSTA_TX_COMPLT 0x00000400 |
#define | AVR32_EPTSTA_TX_PK_RDY 0x00000800 |
#define | AVR32_EPTSTA_RX_SETUP 0x00001000 |
#define | AVR32_EPTSTA_STALL_SNT 0x00002000 |
#define | AVR32_EPTSTA_NAK_IN 0x00004000 |
#define | AVR32_EPTSTA_NAK_OUT 0x00008000 |
#define | AVR32_EPTSTA_CURRENT_BANK(x) (((x) & 0x00030000) >> 16) |
#define | AVR32_EPTSTA_BUSY_BANK_STA(x) (((x) & 0x000C0000) >> 18) |
#define | AVR32_EPTSTA_BYTE_COUNT(x) (((x) & 0x7FF00000) >> 20) |
#define | AVR32_EPTSTA_SHRT_PCKT 0x80000000 |
#define | AVR32_DMANXTDSC 0x310 /* DMA Next Descriptor Address */ |
#define | AVR32_DMAADDRESS 0x314 /* DMA Channel Address */ |
#define | AVR32_READ_4(sc, reg) bus_space_read_4((sc)->sc_io_tag, (sc)->sc_io_hdl, reg) |
#define | AVR32_WRITE_4(sc, reg, data) bus_space_write_4((sc)->sc_io_tag, (sc)->sc_io_hdl, reg, data) |
#define | AVR32_WRITE_MULTI_4(sc, reg, ptr, len) bus_space_write_multi_4((sc)->sc_io_tag, (sc)->sc_io_hdl, reg, ptr, len) |
#define | AVR32_READ_MULTI_4(sc, reg, ptr, len) bus_space_read_multi_4((sc)->sc_io_tag, (sc)->sc_io_hdl, reg, ptr, len) |
#define | AVR32_EP_MAX 7 |
Typedefs | |
typedef uint8_t() | avr32dci_cmd_t(struct avr32dci_td *td) |
typedef void() | avr32dci_clocks_t(struct usb_bus *) |
Functions | |
usb_error_t | avr32dci_init (struct avr32dci_softc *sc) |
void | avr32dci_uninit (struct avr32dci_softc *sc) |
void | avr32dci_interrupt (struct avr32dci_softc *sc) |
void | avr32dci_vbus_interrupt (struct avr32dci_softc *sc, uint8_t is_on) |
Variables | |
struct avr32dci_config_desc | __packed |
Definition at line 85 of file avr32dci.h.
#define AVR32_CLRINT 0x18 /* Clear Interrupt */ |
Definition at line 50 of file avr32dci.h.
#define AVR32_CTRL 0x00 /* Control */ |
Definition at line 36 of file avr32dci.h.
#define AVR32_CTRL_DEV_ADDR 0x7F |
Definition at line 37 of file avr32dci.h.
#define AVR32_CTRL_DEV_DETACH 0x200 |
Definition at line 40 of file avr32dci.h.
#define AVR32_CTRL_DEV_EN_USBA 0x100 |
Definition at line 39 of file avr32dci.h.
#define AVR32_CTRL_DEV_FADDR_EN 0x80 |
Definition at line 38 of file avr32dci.h.
#define AVR32_CTRL_DEV_REWAKEUP 0x400 |
Definition at line 41 of file avr32dci.h.
#define AVR32_DMAADDRESS 0x314 /* DMA Channel Address */ |
Definition at line 140 of file avr32dci.h.
#define AVR32_DMANXTDSC 0x310 /* DMA Next Descriptor Address */ |
Definition at line 139 of file avr32dci.h.
#define AVR32_EP_MAX 7 |
Definition at line 157 of file avr32dci.h.
Definition at line 86 of file avr32dci.h.
#define AVR32_EPTCFG_EPDIR_IN 0x00000008 |
Definition at line 89 of file avr32dci.h.
#define AVR32_EPTCFG_EPDIR_OUT 0x00000000 |
Definition at line 88 of file avr32dci.h.
Definition at line 87 of file avr32dci.h.
#define AVR32_EPTCFG_EPT_MAPD 0x80000000 |
Definition at line 96 of file avr32dci.h.
Definition at line 95 of file avr32dci.h.
Definition at line 94 of file avr32dci.h.
#define AVR32_EPTCFG_TYPE_BULK 0x00000200 |
Definition at line 92 of file avr32dci.h.
#define AVR32_EPTCFG_TYPE_CTRL 0x00000000 |
Definition at line 90 of file avr32dci.h.
#define AVR32_EPTCFG_TYPE_INTR 0x00000300 |
Definition at line 93 of file avr32dci.h.
#define AVR32_EPTCFG_TYPE_ISOC 0x00000100 |
Definition at line 91 of file avr32dci.h.
Definition at line 120 of file avr32dci.h.
Definition at line 100 of file avr32dci.h.
#define AVR32_EPTCTL_AUTO_VALID 0x00000002 |
Definition at line 102 of file avr32dci.h.
#define AVR32_EPTCTL_BUSY_BANK 0x00040000 |
Definition at line 115 of file avr32dci.h.
#define AVR32_EPTCTL_DATAX_RX 0x00000040 |
Definition at line 105 of file avr32dci.h.
#define AVR32_EPTCTL_EPT_ENABL 0x00000001 |
Definition at line 101 of file avr32dci.h.
#define AVR32_EPTCTL_ERR_OVFLW 0x00000100 |
Definition at line 107 of file avr32dci.h.
#define AVR32_EPTCTL_INTDIS_DMA 0x00000008 |
Definition at line 103 of file avr32dci.h.
#define AVR32_EPTCTL_MDATA_RX 0x00000080 |
Definition at line 106 of file avr32dci.h.
#define AVR32_EPTCTL_NAK_IN 0x00004000 |
Definition at line 113 of file avr32dci.h.
#define AVR32_EPTCTL_NAK_OUT 0x00008000 |
Definition at line 114 of file avr32dci.h.
#define AVR32_EPTCTL_NYET_DIS 0x00000010 |
Definition at line 104 of file avr32dci.h.
#define AVR32_EPTCTL_RX_BK_RDY 0x00000200 |
Definition at line 108 of file avr32dci.h.
#define AVR32_EPTCTL_RX_SETUP 0x00001000 |
Definition at line 111 of file avr32dci.h.
#define AVR32_EPTCTL_SHORT_PCKT 0x80000000 |
Definition at line 116 of file avr32dci.h.
#define AVR32_EPTCTL_STALL_SNT 0x00002000 |
Definition at line 112 of file avr32dci.h.
#define AVR32_EPTCTL_TX_COMPLT 0x00000400 |
Definition at line 109 of file avr32dci.h.
#define AVR32_EPTCTL_TX_PK_RDY 0x00000800 |
Definition at line 110 of file avr32dci.h.
Definition at line 99 of file avr32dci.h.
Definition at line 98 of file avr32dci.h.
#define AVR32_EPTRST 0x1C /* Endpoints Reset */ |
Definition at line 63 of file avr32dci.h.
Definition at line 64 of file avr32dci.h.
Definition at line 119 of file avr32dci.h.
Definition at line 121 of file avr32dci.h.
#define AVR32_EPTSTA_BUSY_BANK_STA | ( | x | ) | (((x) & 0x000C0000) >> 18) |
Definition at line 134 of file avr32dci.h.
#define AVR32_EPTSTA_BYTE_COUNT | ( | x | ) | (((x) & 0x7FF00000) >> 20) |
Definition at line 135 of file avr32dci.h.
#define AVR32_EPTSTA_CURRENT_BANK | ( | x | ) | (((x) & 0x00030000) >> 16) |
Definition at line 133 of file avr32dci.h.
#define AVR32_EPTSTA_ERR_OVFLW 0x00000100 |
Definition at line 125 of file avr32dci.h.
#define AVR32_EPTSTA_FRCESTALL 0x00000020 |
Definition at line 122 of file avr32dci.h.
#define AVR32_EPTSTA_NAK_IN 0x00004000 |
Definition at line 131 of file avr32dci.h.
#define AVR32_EPTSTA_NAK_OUT 0x00008000 |
Definition at line 132 of file avr32dci.h.
#define AVR32_EPTSTA_RX_BK_RDY 0x00000200 |
Definition at line 126 of file avr32dci.h.
#define AVR32_EPTSTA_RX_SETUP 0x00001000 |
Definition at line 129 of file avr32dci.h.
#define AVR32_EPTSTA_SHRT_PCKT 0x80000000 |
Definition at line 136 of file avr32dci.h.
#define AVR32_EPTSTA_STALL_SNT 0x00002000 |
Definition at line 130 of file avr32dci.h.
#define AVR32_EPTSTA_TOGGLESQ 0x00000040 |
Definition at line 124 of file avr32dci.h.
#define AVR32_EPTSTA_TOGGLESQ_STA | ( | x | ) | (((x) & 0xC0) >> 6) |
Definition at line 123 of file avr32dci.h.
#define AVR32_EPTSTA_TX_COMPLT 0x00000400 |
Definition at line 127 of file avr32dci.h.
#define AVR32_EPTSTA_TX_PK_RDY 0x00000800 |
Definition at line 128 of file avr32dci.h.
#define AVR32_FNUM 0x04 /* Frame Number */ |
Definition at line 43 of file avr32dci.h.
#define AVR32_FNUM_MASK 0x3FFF |
Definition at line 44 of file avr32dci.h.
#define AVR32_FRAME_MASK 0x7FF |
Definition at line 45 of file avr32dci.h.
#define AVR32_IEN 0x10 /* Interrupt Enable */ |
Definition at line 48 of file avr32dci.h.
#define AVR32_INT_DET_SUSPD 0x00000002 |
Definition at line 53 of file avr32dci.h.
Definition at line 61 of file avr32dci.h.
#define AVR32_INT_ENDOFRSM 0x00000040 |
Definition at line 58 of file avr32dci.h.
#define AVR32_INT_ENDRESET 0x00000010 |
Definition at line 56 of file avr32dci.h.
Definition at line 60 of file avr32dci.h.
#define AVR32_INT_INT_SOF 0x00000008 |
Definition at line 55 of file avr32dci.h.
#define AVR32_INT_MICRO_SOF 0x00000004 |
Definition at line 54 of file avr32dci.h.
#define AVR32_INT_SPEED 0x00000001 /* set if High Speed else Full Speed */ |
Definition at line 52 of file avr32dci.h.
#define AVR32_INT_UPSTR_RES 0x00000080 |
Definition at line 59 of file avr32dci.h.
#define AVR32_INT_WAKE_UP 0x00000020 |
Definition at line 57 of file avr32dci.h.
#define AVR32_INTSTA 0x14 /* Interrupt Status */ |
Definition at line 49 of file avr32dci.h.
#define AVR32_IPFEATURES 0xF8 /* Features */ |
Definition at line 80 of file avr32dci.h.
#define AVR32_IPFEATURES_NEP | ( | x | ) | (((x) & 0xF) ? ((x) & 0xF) : 0x10) |
Definition at line 81 of file avr32dci.h.
#define AVR32_IPNAME1 0xF0 /* Name1 */ |
Definition at line 78 of file avr32dci.h.
#define AVR32_IPNAME2 0xF4 /* Name2 */ |
Definition at line 79 of file avr32dci.h.
#define AVR32_IPPADDRSIZE 0xEC /* PADDRSIZE */ |
Definition at line 77 of file avr32dci.h.
#define AVR32_IPVERSION 0xFC /* IP Version */ |
Definition at line 83 of file avr32dci.h.
#define AVR32_MAX_DEVICES (USB_MIN_DEVICES + 1) |
Definition at line 32 of file avr32dci.h.
Definition at line 142 of file avr32dci.h.
#define AVR32_READ_MULTI_4 | ( | sc, | |
reg, | |||
ptr, | |||
len | |||
) | bus_space_read_multi_4((sc)->sc_io_tag, (sc)->sc_io_hdl, reg, ptr, len) |
Definition at line 151 of file avr32dci.h.
#define AVR32_TST 0xE0 /* Test */ |
Definition at line 71 of file avr32dci.h.
#define AVR32_TST_FS_ONLY 0x00000003 |
Definition at line 74 of file avr32dci.h.
#define AVR32_TST_HS_ONLY 0x00000002 |
Definition at line 73 of file avr32dci.h.
#define AVR32_TST_NORMAL 0x00000000 |
Definition at line 72 of file avr32dci.h.
#define AVR32_TSTCNTA 0xD4 /* Test A Counter */ |
Definition at line 68 of file avr32dci.h.
#define AVR32_TSTCNTB 0xD8 /* Test B Counter */ |
Definition at line 69 of file avr32dci.h.
#define AVR32_TSTMODEREG 0xDC /* Test Mode */ |
Definition at line 70 of file avr32dci.h.
#define AVR32_TSTSOFCNT 0xD0 /* Test SOF Counter */ |
Definition at line 67 of file avr32dci.h.
#define AVR32_WRITE_4 | ( | sc, | |
reg, | |||
data | |||
) | bus_space_write_4((sc)->sc_io_tag, (sc)->sc_io_hdl, reg, data) |
Definition at line 145 of file avr32dci.h.
#define AVR32_WRITE_MULTI_4 | ( | sc, | |
reg, | |||
ptr, | |||
len | |||
) | bus_space_write_multi_4((sc)->sc_io_tag, (sc)->sc_io_hdl, reg, ptr, len) |
Definition at line 148 of file avr32dci.h.
typedef void() avr32dci_clocks_t(struct usb_bus *) |
Definition at line 162 of file avr32dci.h.
typedef uint8_t() avr32dci_cmd_t(struct avr32dci_td *td) |
Definition at line 161 of file avr32dci.h.
usb_error_t avr32dci_init | ( | struct avr32dci_softc * | sc | ) |
Definition at line 1189 of file avr32dci.c.
References AVR32_CTRL_DEV_DETACH, AVR32_CTRL_DEV_EN_USBA, AVR32_EP_MAX, AVR32_EPTCTL_EPT_ENABL, AVR32_EPTCTLDIS, AVR32_EPTRST, AVR32_INT_DET_SUSPD, AVR32_INT_ENDRESET, AVR32_WRITE_4, avr32dci_bus_methods, avr32dci_clocks_off(), avr32dci_do_poll(), avr32dci_mod_ctrl(), avr32dci_mod_ien(), usb_bus::bus_mtx, DPRINTF, usb_bus::methods, n, avr32dci_softc::sc_bus, avr32dci_softc::sc_clocks_on, USB_BUS_LOCK, USB_BUS_UNLOCK, usb_pause_mtx(), USB_REV_1_1, and usb_bus::usbrev.
void avr32dci_interrupt | ( | struct avr32dci_softc * | sc | ) |
Definition at line 644 of file avr32dci.c.
References AVR32_CLRINT, AVR32_INT_DET_SUSPD, AVR32_INT_ENDRESET, AVR32_INT_EPT_INT, AVR32_INT_WAKE_UP, AVR32_INTSTA, AVR32_READ_4, AVR32_WRITE_4, avr32dci_interrupt_poll(), avr32dci_mod_ien(), avr32dci_root_intr(), avr32dci_flags::change_connect, avr32dci_flags::change_suspend, avr32dci_softc::sc_bus, avr32dci_softc::sc_flags, status, avr32dci_flags::status_bus_reset, avr32dci_flags::status_suspend, USB_BUS_LOCK, and USB_BUS_UNLOCK.
void avr32dci_uninit | ( | struct avr32dci_softc * | sc | ) |
Definition at line 1243 of file avr32dci.c.
References AVR32_EP_MAX, AVR32_EPTCTL_EPT_ENABL, AVR32_EPTCTLDIS, AVR32_EPTRST, AVR32_WRITE_4, avr32dci_clocks_off(), avr32dci_mod_ien(), avr32dci_pull_down(), avr32dci_flags::change_connect, avr32dci_flags::change_suspend, n, avr32dci_flags::port_powered, avr32dci_softc::sc_bus, avr32dci_softc::sc_clocks_on, avr32dci_softc::sc_flags, avr32dci_flags::status_bus_reset, avr32dci_flags::status_suspend, avr32dci_flags::status_vbus, USB_BUS_LOCK, and USB_BUS_UNLOCK.
Referenced by avr32dci_set_hw_power_sleep().
void avr32dci_vbus_interrupt | ( | struct avr32dci_softc * | sc, |
uint8_t | is_on | ||
) |
Definition at line 616 of file avr32dci.c.
References avr32dci_root_intr(), avr32dci_flags::change_connect, avr32dci_flags::change_suspend, avr32dci_softc::sc_flags, avr32dci_flags::status_bus_reset, avr32dci_flags::status_suspend, and avr32dci_flags::status_vbus.
struct avr32dci_config_desc __packed |