aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
authorRoger Quadros <rogerq@ti.com>2012-11-08 12:18:08 -0500
committerRoger Quadros <rogerq@ti.com>2013-02-13 06:22:49 -0500
commitccac71a7f063ad31eb99fac37e95b70ff57f1354 (patch)
tree22c7f8034f204cc793e14fec5635f509a6c6e311 /drivers/mfd
parentd7eaf866104757d66ccb6627dccf7fb9d07aae7e (diff)
mfd: omap-usb-host: override number of ports from platform data
Both OMAP4 and 5 exhibit the same revision ID in the REVISION register but they have different number of ports i.e. 2 and 3 respectively. So we can't rely on REVISION register for number of ports on OMAP5 and depend on platform data (or device tree) instead. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/omap-usb-host.c34
1 files changed, 21 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++)