diff options
author | Bin Liu <b-liu@ti.com> | 2015-09-09 18:56:18 +0200 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2015-09-27 17:54:31 +0200 |
commit | 41932b9b8adc14b5650e8909f66d5bd08619b81c (patch) | |
tree | c264c47376124f961236b91cedc6e2c9c15538db /drivers/usb/musb | |
parent | usb: musb: set the controller speed based on the config setting (diff) | |
download | linux-41932b9b8adc14b5650e8909f66d5bd08619b81c.tar.xz linux-41932b9b8adc14b5650e8909f66d5bd08619b81c.zip |
usb: musb: dsps: control musb speed based on dts setting
Set musb config->maximum_speed based on the dts setting to control musb
speed.
By default musb works in high-speed mode. Adding
maximum-speed = "full-speed";
to dts usb node will force musb to full-speed mode.
Signed-off-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/musb')
-rw-r--r-- | drivers/usb/musb/musb_dsps.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c index 84512d1d5eee..c8b2ec9a79d6 100644 --- a/drivers/usb/musb/musb_dsps.c +++ b/drivers/usb/musb/musb_dsps.c @@ -747,6 +747,19 @@ static int dsps_create_musb_pdev(struct dsps_glue *glue, if (!ret && val) config->multipoint = true; + config->maximum_speed = of_usb_get_maximum_speed(dn); + switch (config->maximum_speed) { + case USB_SPEED_LOW: + case USB_SPEED_FULL: + break; + case USB_SPEED_SUPER: + dev_warn(dev, "ignore incorrect maximum_speed " + "(super-speed) setting in dts"); + /* fall through */ + default: + config->maximum_speed = USB_SPEED_HIGH; + } + ret = platform_device_add_data(musb, &pdata, sizeof(pdata)); if (ret) { dev_err(dev, "failed to add platform_data\n"); |