
ERR004535
Chip Errata for the i.MX 6Dual/6Quad and i.MX 6DualPlus/6QuadPlus, Rev. 6.1, 06/2016
NXP Semiconductors
215
Description:
In device mode, The PHY can be put into Low Power Suspend when the device is not running or
the host has signaled suspend. The PHY Low power suspend bit (PORTSC1.PHCD) will be cleared
automatically when the host initials resume. Before forcing a resume from the device, the device
controller driver must clear this bit. In host mode, the PHY can be put into Low Power Suspend
when the downstream device has been placed into suspend mode (PORTSC1.SUSP) or when no
downstream device is connected. Low power suspend is completely under the control of software.
To place the PHY into Low power mode, software needs to set PORTSC1.PHCD bit, set all bits in
USBPHY_PWD register and set the USBPHY_CTRL.CLKGATE bit.
When a remote wakeup occurs after the Suspend (SUSP) bit is set while the PHY Low power
suspend bit (PHCD) is cleared, a USB interrupt (USBSTS.PCI) will be generated. In this case, the
PHCD bit will NOT be set because of the interrupt. However, if a remote wakeup occurs after the
PHCD bit is set while the USB PHY Power-Down Register (USBPHY_PWD) and the UTMI clock
gate (USBPHY_CTRL.CLKGATE) bit is cleared, a remote wakeup interrupt will be generated. In
this case, all the bits in the HW_USBPHY_PWD register and the USBPHY_CTRL.CLKGATE
bit will be set, even after the remote wakeup interrupt is generated, which is incorrect.
Projected Impact:
Resume error, if the correct flow is not adhered to.
Workarounds:
To place the USB PHY into low power suspend mode, the following sequence should be performed
in an atomic operation (interrupts should be disabled during these three steps):
1. Set the PORTSC1.PHCD bit
2. Set all bits in the USBPHY_PWD register
3. Set the USBPHY_CTRL.CLKGATE bit
Proposed Solution:
No fix scheduled
Linux BSP Status:
Software workaround integrated in Linux BSP codebase starting in release imx_3.0.35_4.1.0.
ERR004535
USB: USB suspend and resume flow clarifications