#include <sys/cdefs.h>
#include "opt_bus.h"
#include <sys/stdint.h>
#include <sys/stddef.h>
#include <sys/param.h>
#include <sys/queue.h>
#include <sys/types.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/bus.h>
#include <sys/module.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/condvar.h>
#include <sys/sysctl.h>
#include <sys/sx.h>
#include <sys/unistd.h>
#include <sys/callout.h>
#include <sys/malloc.h>
#include <sys/priv.h>
#include <dev/ofw/ofw_bus.h>
#include <dev/ofw/ofw_bus_subr.h>
#include <dev/usb/usb.h>
#include <dev/usb/usbdi.h>
#include <dev/usb/usb_core.h>
#include <dev/usb/usb_busdma.h>
#include <dev/usb/usb_process.h>
#include <dev/usb/usb_util.h>
#include <dev/usb/usb_controller.h>
#include <dev/usb/usb_bus.h>
#include <dev/usb/controller/ehci.h>
#include <dev/usb/controller/ehcireg.h>
#include <arm/mv/mvreg.h>
#include <arm/mv/mvvar.h>
Go to the source code of this file.
◆ EHCI_HC_DEVSTR
#define EHCI_HC_DEVSTR "Marvell Integrated USB 2.0 controller" |
◆ EHCI_VENDORID_MRVL
#define EHCI_VENDORID_MRVL 0x1286 |
◆ MV_USB_ADDR_DECODE_ERR
#define MV_USB_ADDR_DECODE_ERR (1 << 0) |
◆ MV_USB_DEVICE_UNDERFLOW
#define MV_USB_DEVICE_UNDERFLOW (1 << 3) |
◆ MV_USB_HOST_OFST
#define MV_USB_HOST_OFST 0x0100 |
◆ MV_USB_HOST_OVERFLOW
#define MV_USB_HOST_OVERFLOW (1 << 2) |
◆ MV_USB_HOST_UNDERFLOW
#define MV_USB_HOST_UNDERFLOW (1 << 1) |
◆ USB_BRIDGE_ERR_ADDR
#define USB_BRIDGE_ERR_ADDR 0x21C |
◆ USB_BRIDGE_INTR_CAUSE
#define USB_BRIDGE_INTR_CAUSE 0x210 |
◆ USB_BRIDGE_INTR_MASK
#define USB_BRIDGE_INTR_MASK 0x214 |
◆ mv_ehci_hwtype
Enumerator |
---|
HWTYPE_NONE | |
HWTYPE_MV_EHCI_V1 | |
HWTYPE_MV_EHCI_V2 | |
Definition at line 106 of file ehci_mv.c.
◆ __FBSDID()
◆ DRIVER_MODULE()
◆ err_intr()
static int err_intr |
( |
void * |
arg | ) |
|
|
static |
◆ MODULE_DEPEND()
MODULE_DEPEND |
( |
ehci_mv |
, |
|
|
usb |
, |
|
|
1 |
, |
|
|
1 |
, |
|
|
1 |
|
|
) |
| |
◆ mv_ehci_attach()
static int mv_ehci_attach |
( |
device_t |
self | ) |
|
|
static |
Definition at line 147 of file ehci_mv.c.
References usb_bus::bdev, compat_data, usb_bus::devices, usb_bus::devices_max, usb_bus::dma_bits, ehci_get_port_speed_portsc(), EHCI_HC_DEVSTR, ehci_init(), ehci_interrupt(), ehci_iterate_hw_softc, EHCI_MAX_DEVICES, EHCI_SCFLG_NORESTERM, EHCI_SCFLG_TT, err_intr(), error, EWRITE4, HWTYPE_MV_EHCI_V1, HWTYPE_NONE, ih_err, irq_err, mv_ehci_detach, mv_ehci_post_reset(), MV_USB_ADDR_DECODE_ERR, MV_USB_DEVICE_UNDERFLOW, MV_USB_HOST_OFST, MV_USB_HOST_OVERFLOW, MV_USB_HOST_UNDERFLOW, usb_bus::parent, rid, ehci_softc::sc_bus, ehci_softc::sc_devices, ehci_softc::sc_flags, ehci_softc::sc_intr_hdl, ehci_softc::sc_io_hdl, ehci_softc::sc_io_res, ehci_softc::sc_io_size, ehci_softc::sc_io_tag, ehci_softc::sc_irq_res, ehci_softc::sc_vendor, ehci_softc::sc_vendor_get_port_speed, ehci_softc::sc_vendor_post_reset, USB_BRIDGE_INTR_MASK, usb_bus_mem_alloc_all(), and USB_GET_DMA_TAG.
◆ mv_ehci_detach()
static int mv_ehci_detach |
( |
device_t |
self | ) |
|
|
static |
Definition at line 282 of file ehci_mv.c.
References ehci_detach(), ehci_iterate_hw_softc, EWRITE4, ih_err, irq_err, ehci_softc::sc_bus, ehci_softc::sc_intr_hdl, ehci_softc::sc_io_res, ehci_softc::sc_irq_res, USB_BRIDGE_INTR_MASK, and usb_bus_mem_free_all().
◆ mv_ehci_post_reset()
static void mv_ehci_post_reset |
( |
struct ehci_softc * |
ehci_softc | ) |
|
|
static |
◆ mv_ehci_probe()
static int mv_ehci_probe |
( |
device_t |
self | ) |
|
|
static |
◆ compat_data
struct ofw_compat_data compat_data[] |
|
static |
◆ ehci_devclass
◆ ehci_driver
Initial value:= {
"ehci",
}
struct ehci_softc ehci_softc_t
static device_method_t ehci_methods[]
Definition at line 378 of file ehci_mv.c.
◆ ehci_methods
device_method_t ehci_methods[] |
|
static |
Initial value:= {
DEVMETHOD(device_suspend, bus_generic_suspend),
DEVMETHOD(device_resume, bus_generic_resume),
DEVMETHOD(device_shutdown, bus_generic_shutdown),
DEVMETHOD_END
}
static int mv_ehci_probe(device_t self)
static device_detach_t mv_ehci_detach
static device_attach_t mv_ehci_attach
Definition at line 366 of file ehci_mv.c.
◆ ih_err
◆ irq_err
◆ mv_ehci_attach
device_attach_t mv_ehci_attach |
|
static |
◆ mv_ehci_detach
device_detach_t mv_ehci_detach |
|
static |