drivers: usb :fsl: Implement Workaround for USB Erratum A007792
USB controller version-2.5 requires to enable internal UTMI phy and program PTS field in PORTSC register before asserting controller reset. This is must for successful resetting of the controller and subsequent enumeration of usb devices Signed-off-by: Nikhil Badola <nikhil.badola@freescale.com> Signed-off-by: Suresh Gupta <suresh.gupta@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
38aa420096
commit
523f1dec58
@@ -129,6 +129,15 @@ static int fsl_ehci_drv_probe(struct platform_device *pdev)
|
||||
if (pdata->have_sysif_regs && pdata->controller_ver < FSL_USB_VER_1_6)
|
||||
setbits32(hcd->regs + FSL_SOC_USB_CTRL, 0x4);
|
||||
|
||||
/*
|
||||
* Enable UTMI phy and program PTS field in UTMI mode before asserting
|
||||
* controller reset for USB Controller version 2.5
|
||||
*/
|
||||
if (pdata->has_fsl_erratum_a007792) {
|
||||
writel_be(CTRL_UTMI_PHY_EN, hcd->regs + FSL_SOC_USB_CTRL);
|
||||
writel(PORT_PTS_UTMI, hcd->regs + FSL_SOC_USB_PORTSC1);
|
||||
}
|
||||
|
||||
/* Don't need to set host mode here. It will be done by tdi_reset() */
|
||||
|
||||
retval = usb_add_hcd(hcd, irq, IRQF_SHARED);
|
||||
|
Reference in New Issue
Block a user