aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mfd/omap-usb-host.c34
-rw-r--r--include/linux/platform_data/usb-omap.h1
2 files changed, 22 insertions, 13 deletions
diff --git a/drivers/mfd/omap-usb-host.c b/drivers/mfd/omap-usb-host.c
index 26319ca72e38..779588be8ab2 100644
--- a/drivers/mfd/omap-usb-host.c
+++ b/drivers/mfd/omap-usb-host.c
@@ -493,19 +493,27 @@ static int usbhs_omap_probe(struct platform_device *pdev)
493 */ 493 */
494 pm_runtime_put_sync(dev); 494 pm_runtime_put_sync(dev);
495 495
496 switch (omap->usbhs_rev) { 496 /*
497 case OMAP_USBHS_REV1: 497 * If platform data contains nports then use that
498 omap->nports = 3; 498 * else make out number of ports from USBHS revision
499 break; 499 */
500 case OMAP_USBHS_REV2: 500 if (pdata->nports) {
501 omap->nports = 2; 501 omap->nports = pdata->nports;
502 break; 502 } else {
503 default: 503 switch (omap->usbhs_rev) {
504 omap->nports = OMAP3_HS_USB_PORTS; 504 case OMAP_USBHS_REV1:
505 dev_dbg(dev, 505 omap->nports = 3;
506 "USB HOST Rev : 0x%d not recognized, assuming %d ports\n", 506 break;
507 omap->usbhs_rev, omap->nports); 507 case OMAP_USBHS_REV2:
508 break; 508 omap->nports = 2;
509 break;
510 default:
511 omap->nports = OMAP3_HS_USB_PORTS;
512 dev_dbg(dev,
513 "USB HOST Rev:0x%d not recognized, assuming %d ports\n",
514 omap->usbhs_rev, omap->nports);
515 break;
516 }
509 } 517 }
510 518
511 for (i = 0; i < omap->nports; i++) 519 for (i = 0; i < omap->nports; i++)
diff --git a/include/linux/platform_data/usb-omap.h b/include/linux/platform_data/usb-omap.h
index e697c85ad3bc..fa579b4c666b 100644
--- a/include/linux/platform_data/usb-omap.h
+++ b/include/linux/platform_data/usb-omap.h
@@ -55,6 +55,7 @@ struct ohci_hcd_omap_platform_data {
55}; 55};
56 56
57struct usbhs_omap_platform_data { 57struct usbhs_omap_platform_data {
58 int nports;
58 enum usbhs_omap_port_mode port_mode[OMAP3_HS_USB_PORTS]; 59 enum usbhs_omap_port_mode port_mode[OMAP3_HS_USB_PORTS];
59 int reset_gpio_port[OMAP3_HS_USB_PORTS]; 60 int reset_gpio_port[OMAP3_HS_USB_PORTS];
60 struct regulator *regulator[OMAP3_HS_USB_PORTS]; 61 struct regulator *regulator[OMAP3_HS_USB_PORTS];