This series mainly adds support for gadget suspend/resume when the controller works at device only mode or dual role mode, and also adds support runtime PM, in order to fix the sequence issue about resume and role switch event arised by extcon or role-switch, rebuild and unify the flow of dual role switch for all three supported ways. Chunfeng Yun (23): dt-bindings: usb: mtu3: remove support VBUS detection of extcon dt-bindings: usb: mtu3: add optional property to disable usb2 ports dt-bindings: usb: mtu3: add support property role-switch-default-mode dt-bindings: usb: mtu3: add wakeup interrupt usb: mtu3: power down device IP by default usb: mtu3: power down port when power down device IP usb: mtu3: remove wakelock usb: mtu3: drop support vbus detection usb: mtu3: use enum usb_role instead of private defined ones usb: mtu3: rebuild role switch flow of extcon usb: mtu3: add helper to get pointer of ssusb_mtk struct usb: mtu3: use force mode for dual role switch usb: mtu3: rebuild role switch get/set hooks usb: common: add helper to get role-switch-default-mode usb: dwc3: drd: use helper to get role-switch-default-mode usb: mtu3: support property role-switch-default-mode usb: mtu3: support option to disable usb2 ports usb: mtu3: add new helpers for host suspend/resume usb: mtu3: support runtime PM for host mode usb: mtu3: add helper to power on/down device usb: mtu3: support suspend/resume for device mode usb: mtu3: support suspend/resume for dual-role mode usb: mtu3: use clock bulk to get clocks .../bindings/usb/mediatek,mtu3.yaml | 47 +++- drivers/usb/common/common.c | 20 ++ drivers/usb/dwc3/drd.c | 8 +- drivers/usb/mtu3/mtu3.h | 36 ++- drivers/usb/mtu3/mtu3_core.c | 117 +++++++- drivers/usb/mtu3/mtu3_dr.c | 193 +++++--------- drivers/usb/mtu3/mtu3_dr.h | 30 ++- drivers/usb/mtu3/mtu3_gadget.c | 5 + drivers/usb/mtu3/mtu3_host.c | 112 ++++++-- drivers/usb/mtu3/mtu3_plat.c | 250 +++++++++++------- include/linux/usb/otg.h | 1 + 11 files changed, 530 insertions(+), 289 deletions(-) -- 2.18.0