diff options
| -rw-r--r-- | drivers/mfd/omap-usb-host.c | 34 | ||||
| -rw-r--r-- | include/linux/platform_data/usb-omap.h | 1 |
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 | ||
| 57 | struct usbhs_omap_platform_data { | 57 | struct 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]; |
