Re: [PATCH v22 09/18] dt-binding: memory: pl353-smc: Convert to yaml

From: Krzysztof Kozlowski
Date: Wed Jun 09 2021 - 11:26:55 EST


On 09/06/2021 16:11, Miquel Raynal wrote:
> Hi Krzysztof, Rob,
>
> Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx> wrote on Wed, 9
> Jun 2021 15:54:19 +0200:
>
>> On 09/06/2021 15:34, Miquel Raynal wrote:
>>> Hi Krzysztof,
>>>
>>> Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx> wrote on Wed, 9
>>> Jun 2021 14:12:40 +0200:
>>>
>>>> On 09/06/2021 10:01, Miquel Raynal wrote:
>>>>> Convert this binding file to yaml schema.
>>>>>
>>>>> Signed-off-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>
>>>>> ---
>>>>> .../memory-controllers/arm,pl353-smc.yaml | 133 ++++++++++++++++++
>>>>> .../bindings/memory-controllers/pl353-smc.txt | 45 ------
>>>>> 2 files changed, 133 insertions(+), 45 deletions(-)
>>>>> create mode 100644 Documentation/devicetree/bindings/memory-controllers/arm,pl353-smc.yaml
>>>>> delete mode 100644 Documentation/devicetree/bindings/memory-controllers/pl353-smc.txt
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/memory-controllers/arm,pl353-smc.yaml b/Documentation/devicetree/bindings/memory-controllers/arm,pl353-smc.yaml
>>>>> new file mode 100644
>>>>> index 000000000000..1de6f87d4986
>>>>> --- /dev/null
>>>>> +++ b/Documentation/devicetree/bindings/memory-controllers/arm,pl353-smc.yaml
>>>>> @@ -0,0 +1,133 @@
>>>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>>>> +%YAML 1.2
>>>>> +---
>>>>> +$id: http://devicetree.org/schemas/memory-controllers/arm,pl353-smc.yaml#
>>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>>>> +
>>>>> +title: ARM PL353 Static Memory Controller (SMC) device-tree bindings
>>>>> +
>>>>> +maintainers:
>>>>> + - Miquel Raynal <miquel.raynal@xxxxxxxxxxx>
>>>>> + - Naga Sureshkumar Relli <naga.sureshkumar.relli@xxxxxxxxxx>
>>>>> +
>>>>> +description:
>>>>> + The PL353 Static Memory Controller is a bus where you can connect two kinds
>>>>> + of memory interfaces, which are NAND and memory mapped interfaces (such as
>>>>> + SRAM or NOR).
>>>>> +
>>>>> +# We need a select here so we don't match all nodes with 'arm,primecell'
>>>>> +select:
>>>>> + properties:
>>>>> + compatible:
>>>>> + contains:
>>>>> + enum:
>>>>> + - arm,pl353-smc-r2p1
>>>>
>>>> That's a const... but also I don't get the need for select.
>>>
>>> I think this is needed to ensure this binding is not enforced against
>>> arm,primecell compatible nodes which are not featuring the
>>> arm,pl353-smc-r2p1 compatible.
>>
>> Which seems to be result of unusual compatible match, so once you
>> convert to regular match, this select is not needed.
>
> I don't think so, I received a hint from Rob some time ago, he told
> me to add this additional select line as in all other arm,primecell
> binding.
>
> Rob, any additional info regarding this?

Hmm, I think you' are right. Since arm,primecell is used in many other
compatibles (including ones without schema yet), the select is needed.

In such case the select can be only:

select:
properties:
compatible:
contains:
const: arm,pl353-smc-r2p1


Best regards,
Krzysztof