Message ID | d605a437f0a4bc837a05269caaa3875c2e0b29d8.1595468673.git.thinhn@synopsys.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | usb: Handle different sublink speeds | expand |
On Wed, Jul 22, 2020 at 07:12:39PM -0700, Thinh Nguyen wrote: > According to USB 3.2 spec, a super-speed-plus device can operate at > gen2x2, gen2x1, or gen1x2. Introduce "num-lanes" and > "lane-speed-mantissa-gbps" properties for devices operating in > super-speed-plus. If the USB controller device supports multiple lanes > at different transfer rate, the user can specify the HW capability via > these properties. > > Signed-off-by: Thinh Nguyen <thinhn@synopsys.com> > --- > Changes in v2: > - Make "num-lanes" and "lane-speed-mantissa-gbps" common USB properties > > Documentation/devicetree/bindings/usb/generic.txt | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/Documentation/devicetree/bindings/usb/generic.txt b/Documentation/devicetree/bindings/usb/generic.txt > index ba472e7aefc9..a8253da684af 100644 > --- a/Documentation/devicetree/bindings/usb/generic.txt > +++ b/Documentation/devicetree/bindings/usb/generic.txt > @@ -7,6 +7,17 @@ Optional properties: > "low-speed". In case this isn't passed via DT, USB > controllers should default to their maximum HW > capability. > + - num-lanes: tells USB controllers that we want to work up to a certain number > + of lanes. Valid arguments are 1 or 2. Apply if the > + maximum-speed is super-speed-plus. In case this isn't > + passed via DT, the USB controllers should default to > + their maximum HW capability. > + - lane-speed-mantissa-gbps: tells USB controllers that we want the symmetric > + lanes to operate up to a certain rate in Gbps. Valid > + inputs are 5 or 10 (i.e. Gen 1/Gen 2 transfer rate). > + Apply if the maximum-speed is super-speed-plus. In case > + this isn't passed via DT, the USB controllers should > + default to their maximum HW capability. This still leaves 'maximum-speed = "super-speed-plus"' ambiguous. Fix that please. To put it another way, we already have one way to define USB speeds. Don't define a new and different way that only covers a fraction of the possibilities. Rob
Rob Herring wrote: > On Wed, Jul 22, 2020 at 07:12:39PM -0700, Thinh Nguyen wrote: >> According to USB 3.2 spec, a super-speed-plus device can operate at >> gen2x2, gen2x1, or gen1x2. Introduce "num-lanes" and >> "lane-speed-mantissa-gbps" properties for devices operating in >> super-speed-plus. If the USB controller device supports multiple lanes >> at different transfer rate, the user can specify the HW capability via >> these properties. >> >> Signed-off-by: Thinh Nguyen <thinhn@synopsys.com> >> --- >> Changes in v2: >> - Make "num-lanes" and "lane-speed-mantissa-gbps" common USB properties >> >> Documentation/devicetree/bindings/usb/generic.txt | 11 +++++++++++ >> 1 file changed, 11 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/usb/generic.txt b/Documentation/devicetree/bindings/usb/generic.txt >> index ba472e7aefc9..a8253da684af 100644 >> --- a/Documentation/devicetree/bindings/usb/generic.txt >> +++ b/Documentation/devicetree/bindings/usb/generic.txt >> @@ -7,6 +7,17 @@ Optional properties: >> "low-speed". In case this isn't passed via DT, USB >> controllers should default to their maximum HW >> capability. >> + - num-lanes: tells USB controllers that we want to work up to a certain number >> + of lanes. Valid arguments are 1 or 2. Apply if the >> + maximum-speed is super-speed-plus. In case this isn't >> + passed via DT, the USB controllers should default to >> + their maximum HW capability. >> + - lane-speed-mantissa-gbps: tells USB controllers that we want the symmetric >> + lanes to operate up to a certain rate in Gbps. Valid >> + inputs are 5 or 10 (i.e. Gen 1/Gen 2 transfer rate). >> + Apply if the maximum-speed is super-speed-plus. In case >> + this isn't passed via DT, the USB controllers should >> + default to their maximum HW capability. > This still leaves 'maximum-speed = "super-speed-plus"' ambiguous. Fix > that please. > > To put it another way, we already have one way to define USB speeds. > Don't define a new and different way that only covers a fraction of the > possibilities. > Then, we can just do away with the "num-lanes" property, and change it to something like this as you suggested? diff --git a/Documentation/devicetree/bindings/usb/generic.txt b/Documentation/devicetree/bindings/usb/generic.txt index ba472e7aefc9..8541b9571f2f 100644 --- a/Documentation/devicetree/bindings/usb/generic.txt +++ b/Documentation/devicetree/bindings/usb/generic.txt @@ -3,10 +3,13 @@ Generic USB Properties Optional properties: - maximum-speed: tells USB controllers we want to work up to a certain speed. Valid arguments are "super-speed-plus", - "super-speed", "high-speed", "full-speed" and - "low-speed". In case this isn't passed via DT, USB - controllers should default to their maximum HW - capability. + "super-speed-plus-gen2x2", "super-speed-plus-gen2x1", + "super-speed-plus-gen1x2", "super-speed", "high-speed", + "full-speed" and "low-speed". In case this isn't passed + via DT, USB controllers should default to their maximum + HW capability. Similarly, if the argument is + "super-speed-plus", USB controllers should default to + their maximum transfer rate and number of lanes. - dr_mode: tells Dual-Role USB controllers that we want to work on a particular mode. Valid arguments are "host", "peripheral" and "otg". In case this attribute isn't Is that ok? BR, Thinh
diff --git a/Documentation/devicetree/bindings/usb/generic.txt b/Documentation/devicetree/bindings/usb/generic.txt index ba472e7aefc9..a8253da684af 100644 --- a/Documentation/devicetree/bindings/usb/generic.txt +++ b/Documentation/devicetree/bindings/usb/generic.txt @@ -7,6 +7,17 @@ Optional properties: "low-speed". In case this isn't passed via DT, USB controllers should default to their maximum HW capability. + - num-lanes: tells USB controllers that we want to work up to a certain number + of lanes. Valid arguments are 1 or 2. Apply if the + maximum-speed is super-speed-plus. In case this isn't + passed via DT, the USB controllers should default to + their maximum HW capability. + - lane-speed-mantissa-gbps: tells USB controllers that we want the symmetric + lanes to operate up to a certain rate in Gbps. Valid + inputs are 5 or 10 (i.e. Gen 1/Gen 2 transfer rate). + Apply if the maximum-speed is super-speed-plus. In case + this isn't passed via DT, the USB controllers should + default to their maximum HW capability. - dr_mode: tells Dual-Role USB controllers that we want to work on a particular mode. Valid arguments are "host", "peripheral" and "otg". In case this attribute isn't
According to USB 3.2 spec, a super-speed-plus device can operate at gen2x2, gen2x1, or gen1x2. Introduce "num-lanes" and "lane-speed-mantissa-gbps" properties for devices operating in super-speed-plus. If the USB controller device supports multiple lanes at different transfer rate, the user can specify the HW capability via these properties. Signed-off-by: Thinh Nguyen <thinhn@synopsys.com> --- Changes in v2: - Make "num-lanes" and "lane-speed-mantissa-gbps" common USB properties Documentation/devicetree/bindings/usb/generic.txt | 11 +++++++++++ 1 file changed, 11 insertions(+)