Re: [PATCH v5 3/4] mfd: dt-bindings: google,cros-ec: reference Samsung SPI bindings

From: Krzysztof Kozlowski
Date: Mon Jan 24 2022 - 02:50:09 EST


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@xxxxxxxxxxxxx>
>> ---
>> .../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