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>
This commit is contained in:
		
					parent
					
						
							
								d7eaf86610
							
						
					
				
			
			
				commit
				
					
						ccac71a7f0
					
				
			
		
					 2 changed files with 22 additions and 13 deletions
				
			
		| 
						 | 
					@ -493,6 +493,13 @@ static int usbhs_omap_probe(struct platform_device *pdev)
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	pm_runtime_put_sync(dev);
 | 
						pm_runtime_put_sync(dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * If platform data contains nports then use that
 | 
				
			||||||
 | 
						 * else make out number of ports from USBHS revision
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						if (pdata->nports) {
 | 
				
			||||||
 | 
							omap->nports = pdata->nports;
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
		switch (omap->usbhs_rev) {
 | 
							switch (omap->usbhs_rev) {
 | 
				
			||||||
		case OMAP_USBHS_REV1:
 | 
							case OMAP_USBHS_REV1:
 | 
				
			||||||
			omap->nports = 3;
 | 
								omap->nports = 3;
 | 
				
			||||||
| 
						 | 
					@ -507,6 +514,7 @@ static int usbhs_omap_probe(struct platform_device *pdev)
 | 
				
			||||||
			 omap->usbhs_rev, omap->nports);
 | 
								 omap->usbhs_rev, omap->nports);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (i = 0; i < omap->nports; i++)
 | 
						for (i = 0; i < omap->nports; i++)
 | 
				
			||||||
		if (is_ehci_phy_mode(i) || is_ehci_tll_mode(i) ||
 | 
							if (is_ehci_phy_mode(i) || is_ehci_tll_mode(i) ||
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -55,6 +55,7 @@ struct ohci_hcd_omap_platform_data {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct usbhs_omap_platform_data {
 | 
					struct usbhs_omap_platform_data {
 | 
				
			||||||
 | 
						int				nports;
 | 
				
			||||||
	enum usbhs_omap_port_mode	port_mode[OMAP3_HS_USB_PORTS];
 | 
						enum usbhs_omap_port_mode	port_mode[OMAP3_HS_USB_PORTS];
 | 
				
			||||||
	int				reset_gpio_port[OMAP3_HS_USB_PORTS];
 | 
						int				reset_gpio_port[OMAP3_HS_USB_PORTS];
 | 
				
			||||||
	struct regulator		*regulator[OMAP3_HS_USB_PORTS];
 | 
						struct regulator		*regulator[OMAP3_HS_USB_PORTS];
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue