Conor Dooley <conor@xxxxxxxxxx> writes: Hello Conor, > On Mon, Dec 18, 2023 at 02:20:35PM +0100, Javier Martinez Canillas wrote: [...] >> +allOf: >> + - $ref: solomon,ssd-common.yaml# >> + >> + - properties: >> + width: >> + default: 96 >> + height: >> + default: 64 > > diff --git a/Documentation/devicetree/bindings/display/solomon,ssd133x.yaml b/Documentation/devicetree/bindings/display/solomon,ssd133x.yaml > index 8feee9eef0fd..ffc939c782eb 100644 > --- a/Documentation/devicetree/bindings/display/solomon,ssd133x.yaml > +++ b/Documentation/devicetree/bindings/display/solomon,ssd133x.yaml > @@ -9,24 +9,24 @@ title: Solomon SSD133x OLED Display Controllers > maintainers: > - Javier Martinez Canillas <javierm@xxxxxxxxxx> > > +allOf: > + - $ref: solomon,ssd-common.yaml# > + This part worked correctly... > properties: > compatible: > enum: > - solomon,ssd1331 > > + width: > + default: 96 > + > + height: > + default: 64 > + ...but when trying move the default for the "solomon,width" and "solomon,height" to the properties section, make dt_binding_check complains as follows: LINT Documentation/devicetree/bindings CHKDT Documentation/devicetree/bindings/processed-schema.json /home/javier/devel/linux/Documentation/devicetree/bindings/display/solomon,ssd133x.yaml: properties:solomon,height: 'oneOf' conditional failed, one must be fixed: 'type' is a required property hint: A vendor boolean property can use "type: boolean" 'description' is a required property hint: A vendor boolean property can use "type: boolean" Additional properties are not allowed ('default' was unexpected) hint: A vendor boolean property can use "type: boolean" /home/javier/devel/linux/Documentation/devicetree/bindings/display/solomon,ssd133x.yaml: properties:solomon,height: 'oneOf' conditional failed, one must be fixed: 'enum' is a required property 'const' is a required property hint: A vendor string property with exact values has an implicit type from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml# /home/javier/devel/linux/Documentation/devicetree/bindings/display/solomon,ssd133x.yaml: properties:solomon,height: 'oneOf' conditional failed, one must be fixed: '$ref' is a required property 'allOf' is a required property hint: A vendor property needs a $ref to types.yaml from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml# hint: Vendor specific properties must have a type and description unless they have a defined, common suffix. from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml# /home/javier/devel/linux/Documentation/devicetree/bindings/display/solomon,ssd133x.yaml: properties:solomon,width: 'oneOf' conditional failed, one must be fixed: 'type' is a required property hint: A vendor boolean property can use "type: boolean" 'description' is a required property hint: A vendor boolean property can use "type: boolean" Additional properties are not allowed ('default' was unexpected) hint: A vendor boolean property can use "type: boolean" /home/javier/devel/linux/Documentation/devicetree/bindings/display/solomon,ssd133x.yaml: properties:solomon,width: 'oneOf' conditional failed, one must be fixed: 'enum' is a required property 'const' is a required property hint: A vendor string property with exact values has an implicit type from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml# /home/javier/devel/linux/Documentation/devicetree/bindings/display/solomon,ssd133x.yaml: properties:solomon,width: 'oneOf' conditional failed, one must be fixed: '$ref' is a required property 'allOf' is a required property hint: A vendor property needs a $ref to types.yaml from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml# hint: Vendor specific properties must have a type and description unless they have a defined, common suffix. from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml# SCHEMA Documentation/devicetree/bindings/processed-schema.json DTEX Documentation/devicetree/bindings/display/solomon,ssd133x.example.dts /home/javier/.local/bin/dt-extract-example:75: SyntaxWarning: invalid escape sequence '\s' root_node = re.search('/\s*{', ex) /home/javier/.local/bin/dt-extract-example:79: SyntaxWarning: invalid escape sequence '\s' int_val = re.search('\sinterrupts\s*=\s*<([0-9a-zA-Z |()_]+)>', ex).group(1) DTC_CHK Documentation/devicetree/bindings/display/solomon,ssd133x.example.dtb The warning goes away if I follow the hints and add a type and description to the properties, i.e: diff --git a/Documentation/devicetree/bindings/display/solomon,ssd133x.yaml b/Documentation/devicetree/bindings/display/solomon,ssd133x.yaml index 880c71fdec68..0f4d9ca7456b 100644 --- a/Documentation/devicetree/bindings/display/solomon,ssd133x.yaml +++ b/Documentation/devicetree/bindings/display/solomon,ssd133x.yaml @@ -17,6 +17,20 @@ properties: enum: - solomon,ssd1331 + solomon,width: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Width in pixel of the screen driven by the controller. + The default value is controller-dependent. + default: 96 + + solomon,height: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Height in pixel of the screen driven by the controller. + The default value is controller-dependent. + default: 64 + required: - compatible - reg But that would duplicate information that is already present in the included solomon,ssd-common.yaml schema. Do you know what is the proper way to do this? Or maybe should I just drop the default values for the width and height properties? I just think that is good information to have in the schema. -- Best regards, Javier Martinez Canillas Core Platforms Red Hat