Message ID | 20220120175747.43403-1-krzysztof.kozlowski@canonical.com |
---|---|
Headers | show |
Series | spi: dt-bindings: samsung: convert to dtschema | expand |
On 20/01/22 06:57PM, Krzysztof Kozlowski wrote: > Convert the Samsung SoC (S3C24xx, S3C64xx, S5Pv210, Exynos) SPI > controller bindings to DT schema format. > > The conversion also drops requirement from providing controller-data and > its data for each of SPI peripheral device nodes. The dtschema cannot > express this and the requirement is being relaxed in the driver now. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> > Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> Thanks. Acked-by: Pratyush Yadav <p.yadav@ti.com>
On Thu, Jan 20, 2022 at 06:57:46PM +0100, Krzysztof Kozlowski wrote: > The ChromeOS Embedded Controller appears on boards with Samsung Exynos > SoC, where Exynos SPI bindings expect controller-data node. Reference > newly added dtschema for this property. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> > --- > .../bindings/mfd/google,cros-ec.yaml | 29 ++++++++++--------- > 1 file changed, 16 insertions(+), 13 deletions(-) > > diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml > index 58a1a9405228..66a995bbbbe9 100644 > --- a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml > +++ b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml > @@ -31,7 +31,7 @@ properties: > > controller-data: > description: > - SPI controller data, see bindings/spi/spi-samsung.txt > + SPI controller data, see bindings/spi/samsung,spi-peripheral-props.yaml > type: object We should be able to drop all of this if unevaluatedProperties is used. > > google,cros-ec-spi-pre-delay: > @@ -148,18 +148,21 @@ patternProperties: > required: > - compatible > > -if: > - properties: > - compatible: > - contains: > - enum: > - - google,cros-ec-i2c > - - google,cros-ec-rpmsg > -then: > - properties: > - google,cros-ec-spi-pre-delay: false > - google,cros-ec-spi-msg-delay: false > - spi-max-frequency: false > +allOf: > + - if: > + properties: > + compatible: > + contains: > + enum: > + - google,cros-ec-i2c > + - google,cros-ec-rpmsg > + then: > + properties: > + google,cros-ec-spi-pre-delay: false > + google,cros-ec-spi-msg-delay: false > + spi-max-frequency: false > + > + - $ref: /schemas/spi/samsung,spi-peripheral-props.yaml SPI device schemas should reference spi-peripheral-props.yaml only. spi-peripheral-props.yaml in turn should reference all the vendor specific peripheral property schemas. You should be able to do just: else: $ref: /schemas/spi/spi-peripheral-props.yaml Can you please hold off sending anything referencing spi-peripheral-props.yaml until after the merge window. Otherwise, the checks fail (though I trust you've run validation). Rob
On 20/01/2022 23:38, Rob Herring wrote: > On Thu, Jan 20, 2022 at 06:57:46PM +0100, Krzysztof Kozlowski wrote: >> The ChromeOS Embedded Controller appears on boards with Samsung Exynos >> SoC, where Exynos SPI bindings expect controller-data node. Reference >> newly added dtschema for this property. >> >> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> >> --- >> .../bindings/mfd/google,cros-ec.yaml | 29 ++++++++++--------- >> 1 file changed, 16 insertions(+), 13 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml >> index 58a1a9405228..66a995bbbbe9 100644 >> --- a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml >> +++ b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml >> @@ -31,7 +31,7 @@ properties: >> >> controller-data: >> description: >> - SPI controller data, see bindings/spi/spi-samsung.txt >> + SPI controller data, see bindings/spi/samsung,spi-peripheral-props.yaml >> type: object > > We should be able to drop all of this if unevaluatedProperties is used. > >> >> google,cros-ec-spi-pre-delay: >> @@ -148,18 +148,21 @@ patternProperties: >> required: >> - compatible >> >> -if: >> - properties: >> - compatible: >> - contains: >> - enum: >> - - google,cros-ec-i2c >> - - google,cros-ec-rpmsg >> -then: >> - properties: >> - google,cros-ec-spi-pre-delay: false >> - google,cros-ec-spi-msg-delay: false >> - spi-max-frequency: false >> +allOf: >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - google,cros-ec-i2c >> + - google,cros-ec-rpmsg >> + then: >> + properties: >> + google,cros-ec-spi-pre-delay: false >> + google,cros-ec-spi-msg-delay: false >> + spi-max-frequency: false >> + >> + - $ref: /schemas/spi/samsung,spi-peripheral-props.yaml > > SPI device schemas should reference spi-peripheral-props.yaml only. > spi-peripheral-props.yaml in turn should reference all the vendor > specific peripheral property schemas. > > You should be able to do just: > > else: > $ref: /schemas/spi/spi-peripheral-props.yaml I tried now with your changes (no controller-data and else-ref), but dt_binding_check complains: linux/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml: 'additionalProperties' is a required property hint: A schema without a "$ref" to another schema must define all properties and use "additionalProperties" from schema $id: http://devicetree.org/meta-schemas/base.yaml# Which makes sense because only one part - SPI devices - get the ref to spi-perpheral-props. Best regards, Krzysztof