[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <0f0382f0-26d0-c217-93d2-c436c5209a2b@kernel.org>
Date: Tue, 21 Mar 2023 11:44:36 +0200
From: Roger Quadros <rogerq@...nel.org>
To: Rob Herring <robh@...nel.org>
Cc: Thinh.Nguyen@...opsys.com, stern@...land.harvard.edu,
gregkh@...uxfoundation.org, vigneshr@...com, srk@...com,
r-gunasekaran@...com, linux-usb@...r.kernel.org,
linux-kernel@...r.kernel.org, devicetree@...r.kernel.org
Subject: Re: [RFC PATCH 1/2] dt-bindings: usb: snps,dwc3: Add
'snps,gadget-keep-connect-sys-sleep'
On 20/03/2023 15:22, Rob Herring wrote:
> On Mon, Mar 20, 2023 at 11:34:46AM +0200, Roger Quadros wrote:
>> The current USB gadget driver behaviour is to stop the controller
>> and disconnect from the bus during System sleep.
>
> What's USB gadget? ;)
:)
>
>> The 'snps,gadget-keep-connect-sys-sleep' property can be used to
>> 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.
>
> Sounds like something the user/OS would want to choose rather than fixed
> by your board's firmware.
Yes.
>
> Is this somehow DWC3 specific? If not, why a DWC3 specific property?
This is not DWC3 specific.
Should we make this a UDC class device's sysfs attribute instead?
Only concern is that in dual-role case, if a role switch from
device mode to host mode and back to device mode happens, we loose
the UDC device's attributes as we re-init the UDC device.
Or should we make it a udc_core module parameter? This should be
persistent between role switches.
>
>>
>> Cc: devicetree@...r.kernel.org
>> Signed-off-by: Roger Quadros <rogerq@...nel.org>
>> ---
>> Documentation/devicetree/bindings/usb/snps,dwc3.yaml | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
>> index be36956af53b..1ce8008e7fef 100644
>> --- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
>> +++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml
>> @@ -262,6 +262,11 @@ properties:
>> asserts utmi_sleep_n.
>> type: boolean
>>
>> + snps,gadget-keep-connect-sys-sleep:
>> + description:
>> + If True then gadget driver will not disconnect during system sleep.
>> + System sleep will not be allowed if gadget is not already in USB suspend.
>
> 'gadget' is a Linuxism.
Got it. Will avoid using it ;)
>
>> +
>> snps,hird-threshold:
>> description: HIRD threshold
>> $ref: /schemas/types.yaml#/definitions/uint8
>> --
>> 2.34.1
>>
cheers,
-roger
Powered by blists - more mailing lists