If present, honor the USB port mode (host or peripheral) set on DTS, if not,
keep the beaglebone defaults: USB0 -> peripheral/gadget, USB1 -> host. This is only a workaround as in fact fact this hardware is capable of detect the USB port mode based on type of cable and act according with the detected mode. Unfortunately the driver does not handle that at moment. MFC after: 3 days Sponsored by: Rubicon Communications, LLC (Netgate)
This commit is contained in:
parent
887a63246c
commit
33fe8378ba
@ -237,6 +237,7 @@ static int
|
||||
musbotg_attach(device_t dev)
|
||||
{
|
||||
struct musbotg_super_softc *sc = device_get_softc(dev);
|
||||
char mode[16];
|
||||
int err;
|
||||
uint32_t reg;
|
||||
|
||||
@ -308,10 +309,19 @@ musbotg_attach(device_t dev)
|
||||
}
|
||||
|
||||
sc->sc_otg.sc_platform_data = sc;
|
||||
if (sc->sc_otg.sc_id == 0)
|
||||
sc->sc_otg.sc_mode = MUSB2_DEVICE_MODE;
|
||||
else
|
||||
sc->sc_otg.sc_mode = MUSB2_HOST_MODE;
|
||||
if (OF_getprop(ofw_bus_get_node(dev), "dr_mode", mode,
|
||||
sizeof(mode)) > 0) {
|
||||
if (strcasecmp(mode, "host") == 0)
|
||||
sc->sc_otg.sc_mode = MUSB2_HOST_MODE;
|
||||
else
|
||||
sc->sc_otg.sc_mode = MUSB2_DEVICE_MODE;
|
||||
} else {
|
||||
/* Beaglebone defaults: USB0 device, USB1 HOST. */
|
||||
if (sc->sc_otg.sc_id == 0)
|
||||
sc->sc_otg.sc_mode = MUSB2_DEVICE_MODE;
|
||||
else
|
||||
sc->sc_otg.sc_mode = MUSB2_HOST_MODE;
|
||||
}
|
||||
|
||||
/*
|
||||
* software-controlled function
|
||||
|
Loading…
x
Reference in New Issue
Block a user