On Wed, Aug 28, 2024 at 01:37:17PM -0700, Nikunj Kela wrote: > Add compatible representing spi support on SA8255p. > > Clocks and interconnects are being configured in firmware VM > on SA8255p platform, therefore making them optional. > > CC: Praveen Talari <quic_ptalari@xxxxxxxxxxx> > Signed-off-by: Nikunj Kela <quic_nkela@xxxxxxxxxxx> > --- > .../bindings/spi/qcom,spi-geni-qcom.yaml | 64 +++++++++++++++---- > 1 file changed, 53 insertions(+), 11 deletions(-) > > diff --git a/Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.yaml b/Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.yaml > index 2e20ca313ec1..74ea7c4f2451 100644 > --- a/Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.yaml > +++ b/Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.yaml > @@ -25,10 +25,41 @@ description: > > allOf: > - $ref: /schemas/spi/spi-controller.yaml# > + - if: > + properties: > + compatible: > + contains: > + const: qcom,sa8255p-geni-spi > + then: > + required: > + - power-domains > + - power-domain-names blank line > + properties: > + power-domains: > + minItems: 2 > + maxItems: 2 Drop maxItems as 2 is already the max (with my change below). Add blank line here. > + else: > + required: > + - clocks > + - clock-names blank line > + properties: > + power-domains: > + maxItems: 1 blank line > + interconnects: > + minItems: 2 > + maxItems: 3 blank line > + interconnect-names: > + minItems: 2 > + items: > + - const: qup-core > + - const: qup-config > + - const: qup-memory > > properties: > compatible: > - const: qcom,geni-spi > + enum: > + - qcom,geni-spi > + - qcom,sa8255p-geni-spi > > clocks: > maxItems: 1 > @@ -45,15 +76,10 @@ properties: > - const: rx > > interconnects: > - minItems: 2 > - maxItems: 3 > + description: phandles of interconnect bw provider > > interconnect-names: > - minItems: 2 > - items: > - - const: qup-core > - - const: qup-config > - - const: qup-memory > + description: names of interconnects No, keep all properties defined at the top-level and then add constraints in if/then schemas. > > interrupts: > maxItems: 1 > @@ -61,15 +87,18 @@ properties: > operating-points-v2: true > > power-domains: > - maxItems: 1 > + $ref: "/schemas/power/power-domain.yaml#/properties/power-domains" Do you see an example of this anywhere else? No. You need: minItems: 1 maxItems: 2 > + > + power-domain-names: > + items: > + - const: power > + - const: perf > > reg: > maxItems: 1 > > required: > - compatible > - - clocks > - - clock-names > - interrupts > - reg > > @@ -116,3 +145,16 @@ examples: > #address-cells = <1>; > #size-cells = <0>; > }; > + > + - | > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + > + spi@888000 { > + compatible = "qcom,sa8255p-geni-spi"; > + reg = <0x888000 0x4000>; > + interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>; > + #address-cells = <1>; > + #size-cells = <0>; > + power-domains = <&scmi10_pd 16>, <&scmi10_dvfs 16>; > + power-domain-names = "power", "perf"; > + }; > -- > 2.34.1 >