[PATCH v4 08/13] dt-bindings: display: Document dual-link LVDS display common properties

Biju Das biju.das.jz at bp.renesas.com
Tue Oct 29 09:18:08 UTC 2024


Hi Liu Ying,

> -----Original Message-----
> From: dri-devel <dri-devel-bounces at lists.freedesktop.org> On Behalf Of Liu Ying
> Sent: 29 October 2024 09:07
> Subject: Re: [PATCH v4 08/13] dt-bindings: display: Document dual-link LVDS display common properties
> 
> On 10/29/2024, Biju Das wrote:
> > Hi Liu Ying,
> 
> Hi Biju,
> 
> >
> >> -----Original Message-----
> >> From: dri-devel <dri-devel-bounces at lists.freedesktop.org> On Behalf
> >> Of Liu Ying
> >> Sent: 29 October 2024 08:02
> >> Subject: Re: [PATCH v4 08/13] dt-bindings: display: Document
> >> dual-link LVDS display common properties
> >>
> >> On 10/29/2024, Biju Das wrote:
> >>> Hi Liu Ying,
> >>
> >> Hi Biju,
> >>
> >>>
> >>>> -----Original Message-----
> >>>> From: Liu Ying <victor.liu at nxp.com>
> >>>> Sent: 28 October 2024 02:38
> >>>> Subject: [PATCH v4 08/13] dt-bindings: display: Document dual-link
> >>>> LVDS display common properties
> >>>>
> >>>> Dual-link LVDS displays receive odd pixels and even pixels
> >>>> separately from dual LVDS links.  One link receives odd pixels and
> >>>> the other receives even pixels.  Some of those displays may also
> >>>> use only one LVDS link to receive all pixels, being odd and even
> >>>> agnostic.  Document common properties for those
> >> displays by extending LVDS display common properties defined in lvds.yaml.
> >>>>
> >>>> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
> >>>> Signed-off-by: Liu Ying <victor.liu at nxp.com>
> >>>> ---
> >>>> v4:
> >>>> * Squash change for advantech,idk-2121wr.yaml and
> >>>>   panel-simple-lvds-dual-ports.yaml with lvds-dual-ports.yaml.
> >>>> (Rob)
> >>>> * Improve description in lvds-dual-ports.yaml.  (Krzysztof)
> >>>>
> >>>> v3:
> >>>> * New patch.  (Dmitry)
> >>>>
> >>>>  .../bindings/display/lvds-dual-ports.yaml     | 76 +++++++++++++++++++
> >>>>  .../display/panel/advantech,idk-2121wr.yaml   | 14 +---
> >>>>  .../panel/panel-simple-lvds-dual-ports.yaml   | 20 +----
> >>>>  3 files changed, 78 insertions(+), 32 deletions(-)  create mode
> >>>> 100644
> >>>> Documentation/devicetree/bindings/display/lvds-dual-ports.yaml
> >>>>
> >>>> diff --git
> >>>> a/Documentation/devicetree/bindings/display/lvds-dual-ports.yaml
> >>>> b/Documentation/devicetree/bindings/display/lvds-dual-ports.yaml
> >>>> new file mode 100644
> >>>> index 000000000000..5f7a30640404
> >>>> --- /dev/null
> >>>> +++ b/Documentation/devicetree/bindings/display/lvds-dual-ports.yam
> >>>> +++ l
> >>>> @@ -0,0 +1,76 @@
> >>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML
> >>>> +1.2
> >>>> +---
> >>>> +$id: http://devicetree.org/schemas/display/lvds-dual-ports.yaml#
> >>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >>>> +
> >>>> +title: Dual-link LVDS Display Common Properties
> >>>> +
> >>>> +maintainers:
> >>>> +  - Liu Ying <victor.liu at nxp.com>
> >>>> +
> >>>> +description: |
> >>>> +  Common properties for LVDS displays with dual LVDS links. Extend
> >>>> +LVDS display
> >>>> +  common properties defined in lvds.yaml.
> >>>> +
> >>>> +  Dual-link LVDS displays receive odd pixels and even pixels
> >>>> + separately from  the dual LVDS links. One link receives odd
> >>>> + pixels and the other receives  even pixels. Some of those
> >>>> + displays may also use only one LVDS link to  receive all pixels, being odd and even agnostic.
> >>>> +
> >>>> +allOf:
> >>>> +  - $ref: lvds.yaml#
> >>>> +
> >>>> +properties:
> >>>> +  ports:
> >>>> +    $ref: /schemas/graph.yaml#/properties/ports
> >>>> +
> >>>> +    properties:
> >>>> +      port at 0:
> >>>> +        $ref: /schemas/graph.yaml#/$defs/port-base
> >>>> +        unevaluatedProperties: false
> >>>> +        description: the first LVDS input link
> >>>> +
> >>>> +        properties:
> >>>> +          dual-lvds-odd-pixels:
> >>>> +            type: boolean
> >>>> +            description: the first LVDS input link for odd pixels
> >>>> +
> >>>> +          dual-lvds-even-pixels:
> >>>> +            type: boolean
> >>>> +            description: the first LVDS input link for even pixels
> >>>
> >>>
> >>> port at 0 we know it is first link
> >>> port at 1 we know it is second link.
> >>> dual-lvds-odd-pixels: We know it is for odd pixels.
> >>> dual-lvds-even-pixels: We know it is for odd pixels.
> >>>
> >>> Not sure, whether we can give common description and avoid the
> >>> duplicate from port at 1 ??
> >>
> >> Yes, it'd better to use patternProperties. Thanks.
> >>
> >> --8<--
> >>     patternProperties:
> >>       '^port@[01]$':
> >>         $ref: /schemas/graph.yaml#/$defs/port-base
> >>         unevaluatedProperties: false
> >>         description: |
> >>           port at 0 is for the first LVDS input link.
> >>           port at 1 is for the second LVDS input link.
> >>
> >>         properties:
> >>           dual-lvds-odd-pixels:
> >>             type: boolean
> >>             description: LVDS input link for odd pixels
> >>
> >>           dual-lvds-even-pixels:
> >>             type: boolean
> >>             description: LVDS input link for even pixels
> >>
> >>         oneOf:
> >>           - required: [dual-lvds-odd-pixels]
> >>           - required: [dual-lvds-even-pixels]
> >>           - properties:
> >>               dual-lvds-odd-pixels: false
> >>               dual-lvds-even-pixels: false
> >>
> >>     anyOf:
> >>       - required:
> >>           - port at 0
> >>       - required:
> >>           - port at 1
> >> --8<--
> >>
> >>>
> >>>
> >>>> +
> >>>> +        oneOf:
> >>>> +          - required: [dual-lvds-odd-pixels]
> >>>> +          - required: [dual-lvds-even-pixels]
> >>>> +          - properties:
> >>>> +              dual-lvds-odd-pixels: false
> >>>> +              dual-lvds-even-pixels: false
> >>>
> >>> Why this is false here? oneOf is not sufficient?
> >>
> >> The 'false' is used when this LVDS link works alone as a single LVDS
> >> link, being odd and even agnostic.
> >>
> >> The 'oneOf' allows a LVDS link to be defined as a single LVDS link or one link of dual LVDS links.
> >
> > Ok, it makes sense for single LVDS link. Maybe rename the file to
> > lvds-dual-ports.yaml->lvds-ports.yaml
> > to make it clear, it is for all LVDS ports, if it is going to address single link case aswell??
> 
> Single-link LVDS displays are supposed to be documented without referencing this schema, i.e., they
> may reference lvds.yaml and define the single LVDS sink link with port property(for panels) or port at 0
> property(for bridges).
> port at 1 would be defined as output port for bridges, not input port.  Maybe, we'll have something like
> lvds-single-port.yaml in the future.

OK, then this binding is suffient I guess.

As description says, majority devices supports dual links.
Some dual link display supports single link as well.

Cheers,
Biju


More information about the dri-devel mailing list