diff options
author | Felipe Balbi <balbi@ti.com> | 2013-06-30 13:29:51 +0200 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2013-07-29 12:56:47 +0200 |
commit | f7e846f0956917888b28b52726ee8779a39d84b6 (patch) | |
tree | e2571f968ea11e9ea92907943f9c6997db43d316 /drivers/usb/dwc3/gadget.c | |
parent | usb: dwc3: let non-DT platforms pass tx-fifo-resize flag; (diff) | |
download | linux-f7e846f0956917888b28b52726ee8779a39d84b6.tar.xz linux-f7e846f0956917888b28b52726ee8779a39d84b6.zip |
usb: dwc3: make maximum-speed a per-instance attribute
in order to allow different instances of the
core work in different maximum speeds, we will
move the maximum_speed module_parameter to
both DeviceTree (making use the new maximum-speed
DT property) and platform_data.
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/dwc3/gadget.c')
-rw-r--r-- | drivers/usb/dwc3/gadget.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 033419be26d4..4ca5706f3a86 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -1525,10 +1525,25 @@ static int dwc3_gadget_start(struct usb_gadget *g, * STAR#9000525659: Clock Domain Crossing on DCTL in * USB 2.0 Mode */ - if (dwc->revision < DWC3_REVISION_220A) + if (dwc->revision < DWC3_REVISION_220A) { reg |= DWC3_DCFG_SUPERSPEED; - else - reg |= dwc->maximum_speed; + } else { + switch (dwc->maximum_speed) { + case USB_SPEED_LOW: + reg |= DWC3_DSTS_LOWSPEED; + break; + case USB_SPEED_FULL: + reg |= DWC3_DSTS_FULLSPEED1; + break; + case USB_SPEED_HIGH: + reg |= DWC3_DSTS_HIGHSPEED; + break; + case USB_SPEED_SUPER: /* FALLTHROUGH */ + case USB_SPEED_UNKNOWN: /* FALTHROUGH */ + default: + reg |= DWC3_DSTS_SUPERSPEED; + } + } dwc3_writel(dwc->regs, DWC3_DCFG, reg); dwc->start_config_issued = false; |