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@xxxxxxxxxxxx> >> --- >> 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