Hi, The current USB gadget driver behaviour is to stop the controller and disconnect from the bus during System sleep. This series introduces a new DT property that will change this behaviour and keep the controller active and connected to the bus during System sleep. This is useful for applications that want to enter a low power state when USB is suspended but remain connected so they can resume activity on USB resume. This feature introduces a new constraint if Gadget driver is connected to USB host: i.e. the gadget must be in USB suspend state to allow a System sleep as we cannot process any USB transactions when in System sleep. The system hardware is responsible to detect the end of USB suspend and wake up the system so we can begin processing the USB transactions as soon as possible. Some prior discussion about System suspend vs USB suspend can be found at [1] [1] - https://marc.info/?l=linux-usb&m=167645398109860&w=2 cheers, -roger Roger Quadros (2): dt-bindings: usb: snps,dwc3: Add 'snps,gadget-keep-connect-sys-sleep' usb: dwc3: Support 'snps,gadget-keep-connect-sys-sleep' feature .../devicetree/bindings/usb/snps,dwc3.yaml | 5 ++++ drivers/usb/dwc3/core.c | 25 ++++++++++++++----- drivers/usb/dwc3/core.h | 2 ++ drivers/usb/dwc3/gadget.c | 25 +++++++++++++++++-- 4 files changed, 49 insertions(+), 8 deletions(-) -- 2.34.1