Re: [PATCH v2 1/2] dt-bindings: usb: Add Parade PS5169 redriver bindings

Esteban Urrutia <[email protected]>
Newsgroups org.kernel.vger.phone-devel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-usb
Message-ID <[email protected]>
On 7/30/26 3:15 AM, Krzysztof Kozlowski wrote:
> On Wed, Jul 29, 2026 at 02:03:14AM -0400, Esteban Urrutia wrote:
>> Add bindings for the Parade PS5169 and PS5170 USB Type-C linear redrivers.
>> The difference between PS5169 and PS5170 is that PS5170 features an
>> embedded AUX switch, while PS5169 does not.
>> Future-proof the binding by adding PS5170 as well.
>>
>> Signed-off-by: Esteban Urrutia <[email protected]>
>> ---
>>  .../devicetree/bindings/usb/parade,ps5169.yaml     | 191 +++++++++++++++++++++
>>  1 file changed, 191 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/usb/parade,ps5169.yaml b/Documentation/devicetree/bindings/usb/parade,ps5169.yaml
>> new file mode 100644
>> index 000000000000..86ea2351ee1e
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/usb/parade,ps5169.yaml
>> @@ -0,0 +1,191 @@
>> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/usb/parade,ps5169.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Parade PS5169 USB Type-C linear redriver
>> +
>> +maintainers:
>> +  - Esteban Urrutia <[email protected]>
>> +
>> +properties:
>> +  compatible:
>> +    oneOf:
>> +      - items:
>> +          - const: parade,ps5170
>> +          - const: parade,ps5169
>> +      - const: parade,ps5169
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +  vcc-supply:
>> +    description: 1.8V power supply
>> +
>> +  reset-gpios:
>> +    maxItems: 1
>> +
>> +  orientation-switch: true
>> +  retimer-switch: true
>> +
>> +  parade,dp-eq-level:
> 
> Use -db suffix instead.
> See https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/property-units.yaml

Will do.

>> +    $ref: /schemas/types.yaml#/definitions/uint32
>> +    description:
>> +      Equalization level for DisplayPort channels which is mapped to decibels.
>> +    # 0: 2    dB
>> +    # 1: 5.5  dB
>> +    # 2: 6.5  dB
>> +    # 3: 7.5  dB
>> +    # 4: 8    dB
>> +    # 5: 8.5  dB
>> +    # 6: 9.5  dB
>> +    # 7: 10   dB
>> +    enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
>> +
>> +  parade,usb-rx-eq-level:
>> +    $ref: /schemas/types.yaml#/definitions/uint32
>> +    description:
>> +      Equalization level for USB receive channels which is mapped to decibels.
>> +    # 0: 5.2  dB
>> +    # 1: 6    dB
>> +    # 2: 7    dB
>> +    # 3: 8    dB
>> +    # 4: 8.8  dB
>> +    # 5: 9.6  dB
>> +    # 6: 10.4 dB
>> +    # 7: 11.2 dB
>> +    enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
>> +
>> +  parade,usb-tx-eq-level:
>> +    $ref: /schemas/types.yaml#/definitions/uint32
>> +    description:
>> +      Equalization level for USB transmit channels which is mapped to decibels.
>> +    # 0: 2    dB
>> +    # 1: 5.5  dB
>> +    # 2: 6.5  dB
>> +    # 3: 7.5  dB
>> +    # 4: 8    dB
>> +    # 5: 8.5  dB
>> +    # 6: 9.5  dB
>> +    # 7: 10   dB
>> +    enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
>> +
>> +  parade,aux-rx-data-reverse:
>> +    type: boolean
>> +    description:
>> +      Please check the driver before specifying this property.
> 
> References to driver make this dubious.

Indeed. I haven't been able to put what this does into words, so I think
I'll drop it and add it back later when I figure that out.

>> +      Usage of this property is design-specific.
>> +
>> +  parade,fine-tune-lfps-swing:
>> +    type: boolean
>> +    description:
>> +      If this property is specified a 50 ohm termination will be set on the USB receive channels.
> 
> s/If this property is specified//
> 
> Just describe the hardware, not the syntax of DTS.

Will fix.

>> +      Usage of this property is design-specific.
>> +
>> +  parade,dp-set-gain:
>> +    type: boolean
>> +    description:
>> +      If this property is specified a gain of -0.9 dB will be applied on the DisplayPort channels.
>> +
>> +  parade,usb-rx-set-gain:
>> +    type: boolean
>> +    description:
>> +      If this property is specified a gain of -0.9 dB will be applied on the USB receive channels.
>> +
>> +  parade,usb-tx-set-gain:
>> +    type: boolean
>> +    description:
>> +      If this property is specified a gain of -0.9 dB will be applied on the USB transmit channels.
>> +
>> +  ports:
>> +    $ref: /schemas/graph.yaml#/properties/ports
>> +    properties:
>> +      port@0:
>> +        $ref: /schemas/graph.yaml#/properties/port
>> +        description: Super Speed (SS) Output endpoint to the Type-C connector
>> +
>> +      port@1:
>> +        $ref: /schemas/graph.yaml#/$defs/port-base
> 
> Why 'port-base' here but 'port' in port@0?

'port' should be used instead of 'port-base' in port@1.
Will fix.

>> +        description: Super Speed (SS) Input endpoint from the Super-Speed PHY
>> +        unevaluatedProperties: false
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +  - vcc-supply
>> +  - reset-gpios
>> +  - orientation-switch
>> +  - retimer-switch
>> +
>> +allOf:
>> +  - $ref: usb-switch.yaml#
>> +  - $ref: usb-switch-ports.yaml#
>> +  - if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: parade,ps5170
>> +    then:
>> +      properties:
>> +        ports:
>> +          properties:
>> +            port@2:
> 
> You must define all properties in top-level block and you only disallow
> them. See writing-bindings.

Will fix.

>> +              $ref: /schemas/graph.yaml#/properties/port
>> +              description:
>> +                Sideband Use (SBU) AUX lines endpoint to the Type-C connector for the purpose of
>> +                handling altmode muxing and orientation switching.
>> +    else:
>> +      properties:
>> +        ports:
>> +          properties:
>> +            port@2: false
>> +
>> +additionalProperties: false
Thanks for the review.

Regards,
Esteban
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.