[PATCH V2 1/2] dt-bindings: display: bridge: lvds-codec: Document LVDS data mapping select

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Jun 14 18:09:53 UTC 2021


Hi Marek,

Thank you for the patch.

On Wed, Jun 02, 2021 at 10:37:30PM +0200, Marek Vasut wrote:
> Decoder input LVDS format is a property of the decoder chip or even
> its strapping. Add DT property data-mapping the same way lvds-panel
> does, to define the LVDS data mapping.
> 
> Signed-off-by: Marek Vasut <marex at denx.de>
> Cc: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Cc: Rob Herring <robh+dt at kernel.org>
> Cc: Sam Ravnborg <sam at ravnborg.org>
> Cc: devicetree at vger.kernel.org
> To: dri-devel at lists.freedesktop.org
> ---
> V2: - Use allOf
>     - Move the data-mapping to endpoint
> ---
>  .../bindings/display/bridge/lvds-codec.yaml   | 53 ++++++++++++++-----
>  1 file changed, 41 insertions(+), 12 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
> index cacafa61e3f52..c493d007785ca 100644
> --- a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
> +++ b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
> @@ -68,6 +68,18 @@ properties:
>            For LVDS encoders, port 1 is the LVDS output
>            For LVDS decoders, port 1 is the parallel output
>  
> +        properties:
> +          endpoint:
> +            properties:
> +              data-mapping:
> +                enum:
> +                  - jeida-18
> +                  - jeida-24
> +                  - vesa-24
> +                description: |
> +                  The color signals mapping order. See details in
> +                  Documentation/devicetree/bindings/display/panel/lvds.yaml
> +
>      required:
>        - port at 0
>        - port at 1
> @@ -79,21 +91,38 @@ properties:
>  
>    power-supply: true
>  
> -if:
> -  not:
> -    properties:
> -      compatible:
> -        contains:
> -          const: lvds-encoder
> -then:
> -  properties:
> -    ports:
> +allOf:
> +  - if:
> +      not:
> +        properties:
> +          compatible:
> +            contains:
> +              const: lvds-encoder
> +    then:
> +      properties:
> +        ports:
> +          properties:
> +            port at 0:
> +              properties:
> +                endpoint:
> +                  properties:
> +                    pclk-sample: false
> +
> +  - if:
> +      not:
> +        properties:
> +          compatible:
> +            contains:
> +              const: lvds-decoder

Is this correct ? The condition says that if it's an encoder (not a
decoder), then the data-mapping property on port 1 (the output port,
thus and LVDS port) is not allowed. I think this should be for decoders,
not encoders. You can thus combine the two conditions:

allOf:
  - if:
      not:
        properties:
          compatible:
            contains:
              const: lvds-encoder
    then:
      properties:
        ports:
          properties:
            port at 0:
              properties:
                endpoint:
                  properties:
                    pclk-sample: false
            port at 1:
              properties:
                endpoint:
                  properties:
                    data-mapping: false

You could also drop the allOf, or keep it to avoid whitespace churn when
a new condition will need to be added.

> +    then:
>        properties:
> -        port at 0:
> +        ports:
>            properties:
> -            endpoint:
> +            port at 1:
>                properties:
> -                pclk-sample: false
> +                endpoint:
> +                  properties:
> +                    data-mapping: false
>  
>  required:
>    - compatible

-- 
Regards,

Laurent Pinchart


More information about the dri-devel mailing list