Re: [PATCH v2 1/4] dt-bindings: clock: si5351: convert to yaml
From: Rob Herring <robh@kernel.org>
Date: 2023-10-10 14:50:22
Also in:
linux-clk, linux-devicetree, lkml
On Wed, Oct 4, 2023 at 4:40 PM Alvin Šipraga [off-list ref] wrote:
On Wed, Oct 04, 2023 at 09:39:37AM -0500, Rob Herring wrote:quoted
quoted
+ 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?
Yes, and up to 100 is fine as an exception.
quoted
quoted
+ Source PLL A (0) or B (1) for the corresponding multisynth divider.
But this doesn't look like it is over 80. Maybe if you put after 'description:' on the same line, but that's not what I said. It can still be on the next line. No '|' just means the line endings aren't fixed. Not important now, but if we were to generate pretty documentation from the schemas, then it would matter.
[...]quoted
quoted
+ - if: + properties: + compatible: + contains: + enum: + - silabs,si5351a + - silabs,si5351a-msop + - silabs,si5351bIsn'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.quoted
quoted
+ 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: clkinDefine 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 */ };
What I'm saying will work. There are lots of examples in the tree. The
top-level defines the full array and then the if/then schema just sets
the max size to 1 so that the clkin entry is not allowed.
properties:
clock-names:
minItems: 1
items:
- const: xtal
- const: clkin
if:
properties:
compatible:
contains:
const: silabs,si5351a-msop
then:
properties:
clock-names:
maxItems: 1
(and then "minItems: 2" for the cases with 2 clocks)
Rob
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel