Thread (4 messages) 4 messages, 2 authors, 2020-07-24

Re: [PATCH v2 06/12] usb: devicetree: Introduce num-lanes and lsm

From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date: 2020-07-24 02:39:05
Also in: linux-usb

Rob Herring wrote:
On Wed, Jul 22, 2020 at 07:12:39PM -0700, Thinh Nguyen wrote:
quoted
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 <redacted>
---
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help