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

Rob Herring robh at kernel.org
Fri Oct 25 15:00:00 UTC 2019


On Fri, Oct 25, 2019 at 9:39 AM Geert Uytterhoeven <geert at linux-m68k.org> wrote:
>
> Hi Rob,
>
> On Fri, Oct 25, 2019 at 4:25 PM Rob Herring <robh at kernel.org> wrote:
> > On Fri, Oct 25, 2019 at 8:07 AM Geert Uytterhoeven <geert at linux-m68k.org> wrote:
> > > On Fri, Jul 5, 2019 at 6:46 PM Rob Herring <robh at kernel.org> 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 at gmail.com>
> > > > Cc: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > > > Cc: dri-devel at lists.freedesktop.org
> > > > Acked-by: Sam Ravnborg <sam at ravnborg.org>
> > > > Reviewed-by: Maxime Ripard <maxime.ripard at bootlin.com>
> > > > Reviewed-by: Thierry Reding <treding at nvidia.com>
> > > > Signed-off-by: Rob Herring <robh at kernel.org>
> > >
> > > 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


More information about the dri-devel mailing list