Re: [PATCH v3 2/4] spi: dt-bindings: samsung: convert to dtschema

From: Krzysztof Kozlowski
Date: Thu Jan 20 2022 - 02:36:12 EST


On 20/01/2022 08:06, Pratyush Yadav wrote:
> On 19/01/22 08:49PM, Krzysztof Kozlowski wrote:
>> On 19/01/2022 20:31, Pratyush Yadav wrote:
>>> On 12/01/22 11:00AM, Krzysztof Kozlowski wrote:
>>>> Convert the Samsung SoC (S3C24xx, S3C64xx, S5Pv210, Exynos) SPI
>>>> controller bindings to DT schema format
>>>>
>>>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx>
>>>> Reviewed-by: Sam Protsenko <semen.protsenko@xxxxxxxxxx>
>>>> ---
>>>> .../spi/samsung,spi-peripheral-props.yaml | 35 ++++
>>>> .../devicetree/bindings/spi/samsung,spi.yaml | 187 ++++++++++++++++++
>>>> .../bindings/spi/spi-peripheral-props.yaml | 1 +
>>>> .../devicetree/bindings/spi/spi-samsung.txt | 122 ------------
>>>> MAINTAINERS | 2 +-
>>>> 5 files changed, 224 insertions(+), 123 deletions(-)
>>>> create mode 100644 Documentation/devicetree/bindings/spi/samsung,spi-peripheral-props.yaml
>>>> create mode 100644 Documentation/devicetree/bindings/spi/samsung,spi.yaml
>>>> delete mode 100644 Documentation/devicetree/bindings/spi/spi-samsung.txt
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/spi/samsung,spi-peripheral-props.yaml b/Documentation/devicetree/bindings/spi/samsung,spi-peripheral-props.yaml
>>>> new file mode 100644
>>>> index 000000000000..aa5a1f48494b
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/spi/samsung,spi-peripheral-props.yaml
>>>> @@ -0,0 +1,35 @@
>>>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>>>> +%YAML 1.2
>>>> +---
>>>> +$id: http://devicetree.org/schemas/spi/samsung,spi-peripheral-props.yaml#
>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>>> +
>>>> +title: Peripheral-specific properties for Samsung S3C/S5P/Exynos SoC SPI controller
>>>> +
>>>> +maintainers:
>>>> + - Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx>
>>>> +
>>>> +description:
>>>> + See spi-peripheral-props.yaml for more info.
>>>> +
>>>> +properties:
>>>> + controller-data:
>>>> + type: object
>>>> + additionalProperties: false
>>>> +
>>>> + properties:
>>>> + samsung,spi-feedback-delay:
>>>> + description: |
>>>> + The sampling phase shift to be applied on the miso line (to account
>>>> + for any lag in the miso line). Valid values:
>>>> + - 0: No phase shift.
>>>> + - 1: 90 degree phase shift sampling.
>>>> + - 2: 180 degree phase shift sampling.
>>>> + - 3: 270 degree phase shift sampling.
>>>> + $ref: /schemas/types.yaml#/definitions/uint32
>>>> + enum: [0, 1, 2, 3]
>>>> +
>>>> + required:
>>>> + - samsung,spi-feedback-delay
>>>
>>> I am not quite sure if this required would work here. Let's say another
>>> controller also uses a controller-data node, but it contains a different
>>> set of properties. Won't this cause an error to be raised for that
>>> controller since this property is not there?
>>
>> The controller-data is Samsung SPI specific (does not exist in any other
>> binding), so why would controller-data get added to a different controller?
>
> It does not as of now, but the name is fairly generic and some
> controller in the future might use it. I do not think it is a good idea
> to list required properties in X-peripheral-props.yaml in general since
> all those will be collected by spi-peripheral-props.yaml and so will
> apply to _all_ controllers that reference it.

Right, but have in mind this is merely a bindings conversion. These were
made like this long time ago.

I think we can drop the "required:" entirely with the commit 3/4 which
makes it optional.



Best regards,
Krzysztof