diff options
author | gonzo <gonzo@FreeBSD.org> | 2013-07-07 04:18:35 +0000 |
---|---|---|
committer | gonzo <gonzo@FreeBSD.org> | 2013-07-07 04:18:35 +0000 |
commit | e53815624101b9a58df54ecf307d7399e774e635 (patch) | |
tree | 87be2140f069240ab4a763e02e14a7ee085e0650 /sys/dev/usb/controller/musb_otg_atmelarm.c | |
parent | 512e5343cf6f5fa545734a03e0943f4d7ada4d57 (diff) | |
download | FreeBSD-src-e53815624101b9a58df54ecf307d7399e774e635.zip FreeBSD-src-e53815624101b9a58df54ecf307d7399e774e635.tar.gz |
- Add initial host mode support for Mentor Graphics USB OTG controller
- Sync musb_otg_atmelarm with new core logic API
Diffstat (limited to 'sys/dev/usb/controller/musb_otg_atmelarm.c')
-rw-r--r-- | sys/dev/usb/controller/musb_otg_atmelarm.c | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/sys/dev/usb/controller/musb_otg_atmelarm.c b/sys/dev/usb/controller/musb_otg_atmelarm.c index bb3e60a..4e446eb 100644 --- a/sys/dev/usb/controller/musb_otg_atmelarm.c +++ b/sys/dev/usb/controller/musb_otg_atmelarm.c @@ -94,6 +94,26 @@ musbotg_clocks_off(void *arg) #endif } +static void +musbotg_wrapper_interrupt(void *arg) +{ + + /* + * Nothing to do. + * Main driver takes care about everything + */ + musbotg_interrupt(arg, 0, 0, 0); +} + +static void +musbotg_ep_int_set(struct musbotg_softc *sc, int ep, int on) +{ + /* + * Nothing to do. + * Main driver takes care about everything + */ +} + static int musbotg_probe(device_t dev) { @@ -147,12 +167,16 @@ musbotg_attach(device_t dev) } device_set_ivars(sc->sc_otg.sc_bus.bdev, &sc->sc_otg.sc_bus); + sc->sc_otg.sc_id = 0; + sc->sc_otg.sc_platform_data = sc; + sc->sc_otg.sc_mode = MUSB2_DEVICE_MODE; + #if (__FreeBSD_version >= 700031) err = bus_setup_intr(dev, sc->sc_otg.sc_irq_res, INTR_TYPE_BIO | INTR_MPSAFE, - NULL, (driver_intr_t *)musbotg_interrupt, sc, &sc->sc_otg.sc_intr_hdl); + NULL, (driver_intr_t *)musbotg_wrapper_interrupt, sc, &sc->sc_otg.sc_intr_hdl); #else err = bus_setup_intr(dev, sc->sc_otg.sc_irq_res, INTR_TYPE_BIO | INTR_MPSAFE, - (driver_intr_t *)musbotg_interrupt, sc, &sc->sc_otg.sc_intr_hdl); + (driver_intr_t *)musbotg_wrapper_interrupt, sc, &sc->sc_otg.sc_intr_hdl); #endif if (err) { sc->sc_otg.sc_intr_hdl = NULL; |