diff options
Diffstat (limited to 'drivers/usb/host/ehci-fsl.c')
| -rw-r--r-- | drivers/usb/host/ehci-fsl.c | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c index fd9b5424b86..d81d2fcbff1 100644 --- a/drivers/usb/host/ehci-fsl.c +++ b/drivers/usb/host/ehci-fsl.c @@ -230,7 +230,7 @@ static int ehci_fsl_setup_phy(struct usb_hcd *hcd,  	switch (phy_mode) {  	case FSL_USB2_PHY_ULPI: -		if (pdata->controller_ver) { +		if (pdata->have_sysif_regs && pdata->controller_ver) {  			/* controller version 1.6 or above */  			setbits32(non_ehci + FSL_SOC_USB_CTRL,  					ULPI_PHY_CLK_SEL); @@ -251,7 +251,7 @@ static int ehci_fsl_setup_phy(struct usb_hcd *hcd,  		portsc |= PORT_PTS_PTW;  		/* fall through */  	case FSL_USB2_PHY_UTMI: -		if (pdata->controller_ver) { +		if (pdata->have_sysif_regs && pdata->controller_ver) {  			/* controller version 1.6 or above */  			setbits32(non_ehci + FSL_SOC_USB_CTRL, UTMI_PHY_EN);  			mdelay(FSL_UTMI_PHY_DLY);  /* Delay for UTMI PHY CLK to @@ -267,7 +267,8 @@ static int ehci_fsl_setup_phy(struct usb_hcd *hcd,  		break;  	} -	if (pdata->controller_ver && (phy_mode == FSL_USB2_PHY_ULPI)) { +	if (pdata->have_sysif_regs && pdata->controller_ver && +	    (phy_mode == FSL_USB2_PHY_ULPI)) {  		/* check PHY_CLK_VALID to get phy clk valid */  		if (!spin_event_timeout(in_be32(non_ehci + FSL_SOC_USB_CTRL) &  				PHY_CLK_VALID, FSL_USB_PHY_CLK_TIMEOUT, 0)) { @@ -278,7 +279,7 @@ static int ehci_fsl_setup_phy(struct usb_hcd *hcd,  	ehci_writel(ehci, portsc, &ehci->regs->port_status[port_offset]); -	if (phy_mode != FSL_USB2_PHY_ULPI) +	if (phy_mode != FSL_USB2_PHY_ULPI && pdata->have_sysif_regs)  		setbits32(non_ehci + FSL_SOC_USB_CTRL, USB_CTRL_USB_EN);  	return 0;  |