Re: [PATCH v3 01/13] dt-bindings: display: Convert common panel bindings to DT schema

From: Rob Herring
Date: Fri Oct 25 2019 - 11:00:16 EST


On Fri, Oct 25, 2019 at 9:39 AM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
>
> Hi Rob,
>
> On Fri, Oct 25, 2019 at 4:25 PM Rob Herring <robh@xxxxxxxxxx> wrote:
> > On Fri, Oct 25, 2019 at 8:07 AM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
> > > On Fri, Jul 5, 2019 at 6:46 PM Rob Herring <robh@xxxxxxxxxx> wrote:
> > > > Convert the common panel bindings to DT schema consolidating scattered
> > > > definitions to a single schema file.
> > > >
> > > > The 'simple-panel' binding just a collection of properties and not a
> > > > complete binding itself. All of the 'simple-panel' properties are
> > > > covered by the panel-common.txt binding with the exception of the
> > > > 'no-hpd' property, so add that to the schema.
> > > >
> > > > As there are lots of references to simple-panel.txt, just keep the file
> > > > with a reference to common.yaml for now until all the bindings are
> > > > converted.
> > > >
> > > > Cc: Thierry Reding <thierry.reding@xxxxxxxxx>
> > > > Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> > > > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx
> > > > Acked-by: Sam Ravnborg <sam@xxxxxxxxxxxx>
> > > > Reviewed-by: Maxime Ripard <maxime.ripard@xxxxxxxxxxx>
> > > > Reviewed-by: Thierry Reding <treding@xxxxxxxxxx>
> > > > Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
> > >
> > > This is now commit 821a1f7171aeea5e ("dt-bindings: display: Convert
> > > common panel bindings to DT schema").
> > >
> > > > --- /dev/null
> > > > +++ b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> > >
> > > > + backlight:
> > > > + $ref: /schemas/types.yaml#/definitions/phandle
> > > > + description:
> > > > + For panels whose backlight is controlled by an external backlight
> > > > + controller, this property contains a phandle that references the
> > > > + controller.
> > >
> > > This paragraph seems to apply to all nodes named "backlight", causing
> > > e.g. (for ARCH=arm mach_shmobile_defconfig) "make dtbs_check
> > > DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/panel/panel-common.yaml"
> > > to start complaining:
> > >
> > > arch/arm/boot/dts/r8a7740-armadillo800eva.dt.yaml: backlight:
> > > {'compatible': ['pwm-backlight'], 'pwms': [[40, 2, 33333, 1]],
> > > 'brightness-levels': [[0, 1, 2, 4, 8, 16, 32, 64, 128, 255]],
> > > 'default-brightness-level': [[9]], 'pinctrl-0': [[41]],
> > > 'pinctrl-names': ['default'], 'power-supply': [[42]], 'enable-gpios':
> > > [[15, 61, 0]]} is not of type 'array'
> > > arch/arm/boot/dts/r8a7740-armadillo800eva.dt.yaml: backlight:
> > > {'groups': ['tpu0_to2_1'], 'function': ['tpu0'], 'phandle': [[41]]} is
> > > not of type 'array'
> > >
> > > Do you know what's wrong?
> >
> > I'm not seeing that. What does .../bindings/processed-schema.yaml look like?
>
> I see it with both next-20191015 and v5.4-rc4.
>
> - $filename: /scratch/geert/linux/linux-next/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> $id: http://devicetree.org/schemas/display/panel/panel-common.yaml#
> $schema: http://devicetree.org/meta-schemas/core.yaml#
> dependencies:
> height-mm: [width-mm]
> width-mm: [height-mm]
> patternProperties: {'pinctrl-[0-9]+': true}
> properties:
> $nodename: true
> backlight: {$ref: /schemas/types.yaml#/definitions/phandle}
> ddc-i2c-bus: {$ref: /schemas/types.yaml#/definitions/phandle}
> enable-gpios: {maxItems: 1, minItems: 1}
> height-mm: {}
> label: {}
> no-hpd: {type: boolean}
> panel-timing: {type: object}
> phandle: true
> pinctrl-names: true
> port: {type: object}
> ports: {type: object}
> power-supply: {}
> reset-gpios: {maxItems: 1, minItems: 1}
> rotation:
> allOf:
> - {$ref: /schemas/types.yaml#/definitions/uint32}
> - additionalItems: false
> items:
> additionalItems: false
> items:
> enum: [0, 90, 180, 270]
> maxItems: 1
> minItems: 1
> type: array
> maxItems: 1
> minItems: 1
> type: array
> status: true
> width-mm: {}
> select:
> properties: {$nodename: true}
> required: [$nodename]

The problem is this causing the schema to be applied to every node.
Update dtschema repo. This was fixed some time ago.

Rob