Re: [PATCH] dt-bindings: display: panel: add common definition of ports

From: Rob Herring
Date: Thu Apr 20 2023 - 12:09:12 EST


On Wed, Apr 19, 2023 at 10:56:55AM +0200, Krzysztof Kozlowski wrote:
> On 19/04/2023 00:26, Rob Herring wrote:
> > On Sun, Apr 16, 2023 at 05:39:29PM +0200, Krzysztof Kozlowski wrote:
> >> Few panel bindings for dual-link connections just type "ports: true",
> >> which does not enforce any type. Add common definition of ports, so the
> >> type will be fixed.
> >>
> >> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
> >>
> >> ---
> >>
> >> Cc: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>
> >> ---
> >> .../bindings/display/panel/panel-common.yaml | 16 ++++++++++++++++
> >> 1 file changed, 16 insertions(+)
> >>
> >> diff --git a/Documentation/devicetree/bindings/display/panel/panel-common.yaml b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> >> index 5b38dc89cb21..ad62d34e6fa3 100644
> >> --- a/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> >> +++ b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> >> @@ -70,6 +70,16 @@ properties:
> >> port:
> >> $ref: /schemas/graph.yaml#/properties/port
> >>
> >> + # For dual-link connections
> >> + ports:
> >> + $ref: /schemas/graph.yaml#/properties/ports
> >> + patternProperties:
> >> + "^port@[0-9a-f]+$":
> >> + $ref: /schemas/graph.yaml#/$defs/port-base
> >
> > This allows any undocumented property.
>
> Yes, which I hope the device schema (using this panel-common) will
> narrow with additionalProperties: false.
>
> I can make it explicit: additionalProperties: true.
>
> Otherwise, how do I allow custom properties like:
> Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml
>
> >
> >> +
> >> + required:
> >> + - port@0
> >> +
> >
> > I don't think this should be added here because users must define what
> > each port is. With it here, we're going to validate the nodes twice as
> > well. Same can be said for 'port' though. It can't be extended though.
>
> So you propose to drop entire "ports" here and expect every panel schema
> to define it instead?

Only those with more than 1 port or extra port/endpoint properties. If
neither of those are true, then they can use just 'port'. Otherwise,
all those panel bindings already have to define the port nodes already.

Rob