On 10/29/2024, Biju Das wrote: > Hi Liu Ying, Hi Biju, > >> -----Original Message----- >> From: Liu Ying <victor.liu@xxxxxxx> >> 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@xxxxxxxxxx> >> Signed-off-by: Liu Ying <victor.liu@xxxxxxx> >> --- >> 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.yaml >> @@ -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@xxxxxxx> >> + >> +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@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@0 we know it is first link > port@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@1 ?? Yes, it'd better to use patternProperties. Thanks. --8<-- patternProperties: '^port@[01]$': $ref: /schemas/graph.yaml#/$defs/port-base unevaluatedProperties: false description: | port@0 is for the first LVDS input link. port@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@0 - required: - port@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. > >> + >> + port@1: >> + $ref: /schemas/graph.yaml#/$defs/port-base >> + unevaluatedProperties: false >> + description: the second LVDS input link >> + >> + properties: >> + dual-lvds-odd-pixels: >> + type: boolean >> + description: the second LVDS input link for odd pixels >> + >> + dual-lvds-even-pixels: >> + type: boolean >> + description: the second 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 > > Same as above?? > > Cheers, > Biju > >> + >> +required: >> + - ports >> + >> +additionalProperties: true >> + >> +... >> diff --git a/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml >> b/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml >> index 2e8dbdb5a3d5..05ca3b2385f8 100644 >> --- a/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml >> +++ b/Documentation/devicetree/bindings/display/panel/advantech,idk-2121 >> +++ wr.yaml >> @@ -20,6 +20,7 @@ description: | >> dual-lvds-odd-pixels or dual-lvds-even-pixels). >> >> allOf: >> + - $ref: /schemas/display/lvds-dual-ports.yaml# >> - $ref: panel-common.yaml# >> >> properties: >> @@ -44,22 +45,10 @@ properties: >> >> properties: >> port@0: >> - $ref: /schemas/graph.yaml#/$defs/port-base >> - unevaluatedProperties: false >> - description: The sink for odd pixels. >> - properties: >> - dual-lvds-odd-pixels: true >> - >> required: >> - dual-lvds-odd-pixels >> >> port@1: >> - $ref: /schemas/graph.yaml#/$defs/port-base >> - unevaluatedProperties: false >> - description: The sink for even pixels. >> - properties: >> - dual-lvds-even-pixels: true >> - >> required: >> - dual-lvds-even-pixels >> >> @@ -75,7 +64,6 @@ required: >> - height-mm >> - data-mapping >> - panel-timing >> - - ports >> >> examples: >> - |+ >> diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple-lvds-dual-ports.yaml >> b/Documentation/devicetree/bindings/display/panel/panel-simple-lvds-dual-ports.yaml >> index 10ed4b57232b..e80fc7006984 100644 >> --- a/Documentation/devicetree/bindings/display/panel/panel-simple-lvds-dual-ports.yaml >> +++ b/Documentation/devicetree/bindings/display/panel/panel-simple-lvds- >> +++ dual-ports.yaml >> @@ -22,6 +22,7 @@ description: | >> If the panel is more advanced a dedicated binding file is required. >> >> allOf: >> + - $ref: /schemas/display/lvds-dual-ports.yaml# >> - $ref: panel-common.yaml# >> >> properties: >> @@ -55,28 +56,10 @@ properties: >> >> properties: >> port@0: >> - $ref: /schemas/graph.yaml#/$defs/port-base >> - unevaluatedProperties: false >> - description: The first sink port. >> - >> - properties: >> - dual-lvds-odd-pixels: >> - type: boolean >> - description: The first sink port for odd pixels. >> - >> required: >> - dual-lvds-odd-pixels >> >> port@1: >> - $ref: /schemas/graph.yaml#/$defs/port-base >> - unevaluatedProperties: false >> - description: The second sink port. >> - >> - properties: >> - dual-lvds-even-pixels: >> - type: boolean >> - description: The second sink port for even pixels. >> - >> required: >> - dual-lvds-even-pixels >> >> @@ -88,7 +71,6 @@ unevaluatedProperties: false >> >> required: >> - compatible >> - - ports >> - power-supply >> >> examples: >> -- >> 2.34.1 > -- Regards, Liu Ying