This issue was discussed already on another community forum [1]. But that thread does not provide a solution.
Here is a dump of a suspend/resume cycle (with some register prints):
[ 40.868038] PM: Syncing filesystems ... done.
[ 40.885067] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 40.893418] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 40.902085] Suspending console(s) (use no_console_suspend to debug)
[ 40.910656] ci_hdrc ci_hdrc.1: at ci_controller_suspend
[ 40.910698] suspend 1: USBPHY1 CTRL: 0x263cc042
[ 40.910706] suspend 2: USBPHY1 CTRL: 0x263cc042
[ 40.910752] imx_usb 400b4000.usb: at imx_controller_suspend
[ 40.910762] mxs_phy_set_wakeup 1: USBPHY1 CTRL: 0x263cc042
[ 40.928432] ci_hdrc ci_hdrc.0: at ci_controller_suspend
[ 40.928462] suspend 2: USBPHY0 CTRL: 0x263cc040
[ 40.928766] mx4_io_spi spi1.0: Entering suspend state.
[ 40.935823] mx4_io_spi spi1.0: Suspend succeeded after 0 retries
[ 40.937277] imx_usb 40034000.usb: at imx_controller_suspend
[ 40.937288] mxs_phy_set_wakeup 1: USBPHY0 CTRL: 0x263cc040
[ 40.937626] PM: suspend of devices complete after 28.409 msecs
[ 40.939065] PM: late suspend of devices complete after 1.417 msecs
[ 40.940367] PM: noirq suspend of devices complete after 1.285 msecs
[ 40.941772] PM: noirq resume of devices complete after 1.321 msecs
[ 40.943048] PM: early resume of devices complete after 0.801 msecs
[ 40.943615] imx_usb 40034000.usb: at imx_controller_resume
[ 40.946003] mx4_io_spi spi1.0: Leaving suspend state.
[ 40.973511] mx4_io_spi spi1.0: co-cpu responded within 0.027358657 seconds
[ 40.973524] mx4_io_spi spi1.0: Wake-up succeeded after 0 retries
[ 40.973676] ci_hdrc ci_hdrc.0: at ci_controller_resume
[ 40.973688] mxs_phy_set_wakeup 1: USBPHY0 CTRL: 0xc0200040
[ 40.973707] resume: USBPHY0 CTRL: 0xc0200040
[ 40.974674] mxs_phy_set_wakeup 1: USBPHY0 CTRL: 0x80200040
[ 40.977295] imx_usb 400b4000.usb: at imx_controller_resume
[ 40.977316] ci_hdrc ci_hdrc.1: at ci_controller_resume
[ 40.977324] mxs_phy_set_wakeup 1: USBPHY1 CTRL: 0xc0200040
[ 40.977336] resume: USBPHY1 CTRL: 0xc0200040
[ 40.978307] mxs_phy_set_wakeup 1: USBPHY1 CTRL: 0x80200040
[ 41.009906] PM: resume of devices complete after 66.835 msecs
[ 41.136278] Restarting tasks ...
[ 41.139685] mxs_phy 40050c00.usbphy: HS device has disconnected
[ 41.139903] usb 2-1: USB disconnect, device number 2
[ 41.161728] done.
[ 41.170281] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
[ 41.191448] option 2-1:1.0: device disconnected
Does Toradex know of this issue and is someone already working to fix it or is it already fixed?
A colleague of mine already posted on the NXP/Freescale thread also providing a workaround by doing a unbind/bind operation on the USB driver.