Message ID | 20211017125904.69076-1-sven@svenpeter.dev (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] dt-bindings: usb: dwc3: Document role-switch-reset-quirk | expand |
On Sun, Oct 17, 2021 at 02:59:03PM +0200, Sven Peter wrote: > The dwc3 controller on the Apple M1 must be reset whenever a > device is unplugged from the root port and triggers a role > switch notification. Document the quirk to enable this behavior. > > Signed-off-by: Sven Peter <sven@svenpeter.dev> > --- > Documentation/devicetree/bindings/usb/snps,dwc3.yaml | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml > index 25ac2c93dc6c..9635e20cab68 100644 > --- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml > +++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml > @@ -226,6 +226,12 @@ properties: > avoid -EPROTO errors with usbhid on some devices (Hikey 970). > type: boolean > > + snps,role-switch-reset-quirk: > + description: > + When set, DWC3 will be reset and reinitialized whenever a role switch > + is performed. > + type: boolean This binding is a example of why we don't do a property per quirk. We end up with a gazillion of them. Imply this from the SoC specific compatible (I don't recall seeing one for the M1, so that's a problem). Rob
On Wed, Oct 27, 2021, at 01:25, Rob Herring wrote: > On Sun, Oct 17, 2021 at 02:59:03PM +0200, Sven Peter wrote: >> The dwc3 controller on the Apple M1 must be reset whenever a >> device is unplugged from the root port and triggers a role >> switch notification. Document the quirk to enable this behavior. >> >> Signed-off-by: Sven Peter <sven@svenpeter.dev> >> --- >> Documentation/devicetree/bindings/usb/snps,dwc3.yaml | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml >> index 25ac2c93dc6c..9635e20cab68 100644 >> --- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml >> +++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml >> @@ -226,6 +226,12 @@ properties: >> avoid -EPROTO errors with usbhid on some devices (Hikey 970). >> type: boolean >> >> + snps,role-switch-reset-quirk: >> + description: >> + When set, DWC3 will be reset and reinitialized whenever a role switch >> + is performed. >> + type: boolean > > This binding is a example of why we don't do a property per quirk. We > end up with a gazillion of them. Makes sense. I didn't think too much about this since I saw all those other quirks and just did the same. > > Imply this from the SoC specific compatible (I don't recall seeing one > for the M1, so that's a problem). Sure, I'll do that for v2. The compatible for the M1 doesn't exist yet because the dwc3 nodes also don't exist in the upstream DT yet. This was all blocked on getting I2C and the USB PD chip to work. Sven
diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml index 25ac2c93dc6c..9635e20cab68 100644 --- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml +++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml @@ -226,6 +226,12 @@ properties: avoid -EPROTO errors with usbhid on some devices (Hikey 970). type: boolean + snps,role-switch-reset-quirk: + description: + When set, DWC3 will be reset and reinitialized whenever a role switch + is performed. + type: boolean + snps,is-utmi-l1-suspend: description: True when DWC3 asserts output signal utmi_l1_suspend_n, false when
The dwc3 controller on the Apple M1 must be reset whenever a device is unplugged from the root port and triggers a role switch notification. Document the quirk to enable this behavior. Signed-off-by: Sven Peter <sven@svenpeter.dev> --- Documentation/devicetree/bindings/usb/snps,dwc3.yaml | 6 ++++++ 1 file changed, 6 insertions(+)