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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux