On Wed, Oct 04, 2023 at 09:39:37AM -0500, Rob Herring wrote: > > + silabs,multisynth-source: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + enum: [ 0, 1 ] > > + description: | > > Don't need '|' if no formatting to preserve. I thought the line would be too long otherwise. Column width is 80 in dt-schema as well, right? > > > + Source PLL A (0) or B (1) for the corresponding multisynth divider. > > + [...] > > + - if: > > + properties: > > + compatible: > > + contains: > > + enum: > > + - silabs,si5351a > > + - silabs,si5351a-msop > > + - silabs,si5351b > > Isn't this just the 'else' for the next one? Or more parts are coming? Not sure if more parts are coming - these are the only ones I am aware of. But I have not checked thoroughly. I thought it better to be explicit, but I will change the next one to an else: in v3 unless you change your mind. > > > + then: > > + properties: > > + clocks: > > + minItems: 1 > > + maxItems: 1 > > + clock-names: > > + items: > > + - const: xtal > > + > > + - if: > > + properties: > > + compatible: > > + contains: > > + const: silabs,si5351c > > + then: > > + properties: > > + clocks: > > + minItems: 1 > > + maxItems: 2 > > + clock-names: > > + minItems: 1 > > + items: > > + - const: xtal > > + - const: clkin > > Define clocks and clock-names at the top level and just use > minItems/maxItems in the if/then schemas. I was trying to imply here that it is invalid to specify clkin for the former three part types - only for the si5351c. If I specify both in the top-level clock-names:items then it would allow something like this: clk { compatible = "silabs,si5351a-msop"; clocks = <&ref25>; clock-names = "clkin"; /* not OK - Si5351A-MSOP only supports XTAL */ }; Kind regards, Alvin