On Mon, Feb 21, 2022 at 12:31:08PM +0100, Noralf Trønnes wrote: > > > Den 18.02.2022 16.11, skrev Noralf Trønnes: > > Add binding for MIPI DBI compatible SPI panels. > > > > v4: > > - There should only be two compatible (Maxime) > > - s/panel-dbi-spi/panel-mipi-dbi-spi/in compatible > > > > v3: > > - Move properties to Device Tree (Maxime) > > - Use contains for compatible (Maxime) > > - Add backlight property to example > > - Flesh out description > > > > v2: > > - Fix path for panel-common.yaml > > - Use unevaluatedProperties > > - Drop properties which are in the allOf section > > - Drop model property (Rob) > > > > Acked-by: Maxime Ripard <maxime@xxxxxxxxxx> > > Signed-off-by: Noralf Trønnes <noralf@xxxxxxxxxxx> > > --- > > .../display/panel/panel-mipi-dbi-spi.yaml | 125 ++++++++++++++++++ > > 1 file changed, 125 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.yaml > > > > diff --git a/Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.yaml b/Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.yaml > > new file mode 100644 > > index 000000000000..748c09113168 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.yaml > > > +allOf: > > + - $ref: panel-common.yaml# > > + - $ref: /schemas/spi/spi-peripheral-props.yaml# > > + > > +properties: > > + compatible: > > + items: > > + - {} # Panel Specific Compatible > > + - const: panel-mipi-dbi-spi > > + > > Rob's bot uses a -m flag I didn't use, and with that the compatible fails: > > $ make DT_CHECKER_FLAGS=-m dt_binding_check > DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.yaml > CHKDT Documentation/devicetree/bindings/processed-schema-examples.json > SCHEMA Documentation/devicetree/bindings/processed-schema-examples.json > DTEX > Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.example.dts > DTC > Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.example.dt.yaml > CHECK > Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.example.dt.yaml > Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.example.dt.yaml:0:0: > /example-0/spi/display@0: failed to match any schema with compatible: > ['sainsmart18', 'panel-mipi-dbi-spi'] > > How can I write the compatible property to make the checker happy? You need to partition the schemas as I outlined before. Given the DBI spec does define power and reset, maybe you can get away with 1 schema just by changing the '- {}' entry above to an enum with a list of compatibles. But as soon as there is a panel with extra or different properties, this schema will have to be split. Rob