Message ID | 20230515103337.130607-1-krzysztof.kozlowski@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | dt-bindings: usb: usb251xb: correct swap-dx-lanes type to uint32 | expand |
See below... Met vriendelijke groet / kind regards, Mike Looijmans System Expert TOPIC Embedded Products B.V. Materiaalweg 4, 5681 RJ Best The Netherlands T: +31 (0) 499 33 69 69 E: mike.looijmans@topicproducts.com W: www.topic.nl Please consider the environment before printing this e-mail On 15-05-2023 14:55, Marek Vasut wrote: > On 5/15/23 12:33, Krzysztof Kozlowski wrote: diff --git > a/Documentation/devicetree/bindings/usb/usb251xb.yaml > b/Documentation/devicetree/bindings/usb/usb251xb.yaml >> index 4d1530816817..ac5b99710332 100644 >> --- a/Documentation/devicetree/bindings/usb/usb251xb.yaml >> +++ b/Documentation/devicetree/bindings/usb/usb251xb.yaml >> @@ -231,7 +231,7 @@ properties: >> power-on sequence to a port until the port has adequate power. >> swap-dx-lanes: >> - $ref: /schemas/types.yaml#/definitions/uint8-array >> + $ref: /schemas/types.yaml#/definitions/uint32-array >> description: | >> Specifies the ports which will swap the differential-pair >> (D+/D-), >> default is not-swapped. > > Would it make more sense to update the driver instead ? I doubt you > could have more than 256 ports on this device after all. I guess there's a bunch of devicetrees already out there using the (misdocumented) 32-bit array binding, they'd break in a bad way...
On 5/15/23 15:17, mike.looijmans@topic.nl wrote: > See below... > > Met vriendelijke groet / kind regards, > > Mike Looijmans > System Expert > > > TOPIC Embedded Products B.V. > Materiaalweg 4, 5681 RJ Best > The Netherlands > > T: +31 (0) 499 33 69 69 > E: mike.looijmans@topicproducts.com > W: www.topic.nl Can you please drop this part next time ? > Please consider the environment before printing this e-mail > On 15-05-2023 14:55, Marek Vasut wrote: >> On 5/15/23 12:33, Krzysztof Kozlowski wrote: diff --git >> a/Documentation/devicetree/bindings/usb/usb251xb.yaml >> b/Documentation/devicetree/bindings/usb/usb251xb.yaml >>> index 4d1530816817..ac5b99710332 100644 >>> --- a/Documentation/devicetree/bindings/usb/usb251xb.yaml >>> +++ b/Documentation/devicetree/bindings/usb/usb251xb.yaml >>> @@ -231,7 +231,7 @@ properties: >>> power-on sequence to a port until the port has adequate power. >>> swap-dx-lanes: >>> - $ref: /schemas/types.yaml#/definitions/uint8-array >>> + $ref: /schemas/types.yaml#/definitions/uint32-array >>> description: | >>> Specifies the ports which will swap the differential-pair >>> (D+/D-), >>> default is not-swapped. >> >> Would it make more sense to update the driver instead ? I doubt you >> could have more than 256 ports on this device after all. > > > I guess there's a bunch of devicetrees already out there using the > (misdocumented) 32-bit array binding, they'd break in a bad way... I think it is the other way around -- if the binding was documented as u8, then the existing DTs should use the u8 type if they are compliant to the binding document. I see one board in next which uses this property and sets it to 0 , so this one is not affected either way: arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dts: swap-dx-lanes = <0>;
On 15/05/2023 15:47, Marek Vasut wrote: >> Please consider the environment before printing this e-mail >> On 15-05-2023 14:55, Marek Vasut wrote: >>> On 5/15/23 12:33, Krzysztof Kozlowski wrote: diff --git >>> a/Documentation/devicetree/bindings/usb/usb251xb.yaml >>> b/Documentation/devicetree/bindings/usb/usb251xb.yaml >>>> index 4d1530816817..ac5b99710332 100644 >>>> --- a/Documentation/devicetree/bindings/usb/usb251xb.yaml >>>> +++ b/Documentation/devicetree/bindings/usb/usb251xb.yaml >>>> @@ -231,7 +231,7 @@ properties: >>>> power-on sequence to a port until the port has adequate power. >>>> swap-dx-lanes: >>>> - $ref: /schemas/types.yaml#/definitions/uint8-array >>>> + $ref: /schemas/types.yaml#/definitions/uint32-array >>>> description: | >>>> Specifies the ports which will swap the differential-pair >>>> (D+/D-), >>>> default is not-swapped. >>> >>> Would it make more sense to update the driver instead ? I doubt you >>> could have more than 256 ports on this device after all. >> >> >> I guess there's a bunch of devicetrees already out there using the >> (misdocumented) 32-bit array binding, they'd break in a bad way... > > I think it is the other way around -- if the binding was documented as > u8, then the existing DTs should use the u8 type if they are compliant > to the binding document. > > I see one board in next which uses this property and sets it to 0 , so > this one is not affected either way: > arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dts: > swap-dx-lanes = <0>; First of all, the original binding did not define it as u8. It actually skipped the type entirely but: - Example shown u32, - Driver used u32, - In-tree user uses u32 (although as pointed - as 0 so not really relevant). Thus the ABI is rather defined by not-breaking users here, so I would stick to fixing it to u32. Best regards, Krzysztof
On 5/16/23 10:19, Krzysztof Kozlowski wrote: > On 15/05/2023 15:47, Marek Vasut wrote: >>> Please consider the environment before printing this e-mail >>> On 15-05-2023 14:55, Marek Vasut wrote: >>>> On 5/15/23 12:33, Krzysztof Kozlowski wrote: diff --git >>>> a/Documentation/devicetree/bindings/usb/usb251xb.yaml >>>> b/Documentation/devicetree/bindings/usb/usb251xb.yaml >>>>> index 4d1530816817..ac5b99710332 100644 >>>>> --- a/Documentation/devicetree/bindings/usb/usb251xb.yaml >>>>> +++ b/Documentation/devicetree/bindings/usb/usb251xb.yaml >>>>> @@ -231,7 +231,7 @@ properties: >>>>> power-on sequence to a port until the port has adequate power. >>>>> swap-dx-lanes: >>>>> - $ref: /schemas/types.yaml#/definitions/uint8-array >>>>> + $ref: /schemas/types.yaml#/definitions/uint32-array >>>>> description: | >>>>> Specifies the ports which will swap the differential-pair >>>>> (D+/D-), >>>>> default is not-swapped. >>>> >>>> Would it make more sense to update the driver instead ? I doubt you >>>> could have more than 256 ports on this device after all. >>> >>> >>> I guess there's a bunch of devicetrees already out there using the >>> (misdocumented) 32-bit array binding, they'd break in a bad way... >> >> I think it is the other way around -- if the binding was documented as >> u8, then the existing DTs should use the u8 type if they are compliant >> to the binding document. >> >> I see one board in next which uses this property and sets it to 0 , so >> this one is not affected either way: >> arch/arm64/boot/dts/freescale/imx8mq-zii-ultra-rmb3.dts: >> swap-dx-lanes = <0>; > > > First of all, the original binding did not define it as u8. It actually > skipped the type entirely but: > - Example shown u32, > - Driver used u32, > - In-tree user uses u32 (although as pointed - as 0 so not really > relevant). > > Thus the ABI is rather defined by not-breaking users here, so I would > stick to fixing it to u32. Fine by me.
diff --git a/Documentation/devicetree/bindings/usb/usb251xb.yaml b/Documentation/devicetree/bindings/usb/usb251xb.yaml index 4d1530816817..ac5b99710332 100644 --- a/Documentation/devicetree/bindings/usb/usb251xb.yaml +++ b/Documentation/devicetree/bindings/usb/usb251xb.yaml @@ -231,7 +231,7 @@ properties: power-on sequence to a port until the port has adequate power. swap-dx-lanes: - $ref: /schemas/types.yaml#/definitions/uint8-array + $ref: /schemas/types.yaml#/definitions/uint32-array description: | Specifies the ports which will swap the differential-pair (D+/D-), default is not-swapped.
The "swap-dx-lanes" was never described as uint8 in original TXT bindings and Linuxx driver expects uint32. Fix the type to match Linux driver expectation and original binding. Fixes: fff61d4ccf3d ("dt-bindings: usb: usb251xb: Convert to YAML schema") Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- Cc: mike.looijmans@topic.nl --- Documentation/devicetree/bindings/usb/usb251xb.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)