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