2021-06-09 15:35:11

by Miquel Raynal

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

Hi Krzysztof, Rob,

Krzysztof Kozlowski <[email protected]> wrote on Wed, 9
Jun 2021 15:54:19 +0200:

> On 09/06/2021 15:34, Miquel Raynal wrote:
> > Hi Krzysztof,
> >
> > Krzysztof Kozlowski <[email protected]> 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 <[email protected]>
> >>> ---
> >>> .../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 <[email protected]>
> >>> + - Naga Sureshkumar Relli <[email protected]>
> >>> +
> >>> +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?


> >>> +
> >>> + "#address-cells":
> >>> + const: 2
> >>> +
> >>> + "#size-cells":
> >>> + const: 1
> >>> +
> >>> + reg:
> >>> + items:
> >>> + - description: configuration registers for the host and sub-controllers
> >>
> >> Just maxItems. Description is obvious.
> >
> > I don't think it is that obvious because there are actually 4 areas
> > and, because of the yaml language, we only describe one in the reg
> > property while the others and defined in the ranges property, but
> > that's fine by me, I'll drop the description and stick to a
> > maxItems entry.
>
> The explanation of all four areas could have sense, but now it states
> the obvious - these are configuration registers :)

Well, that's true :)

Thanks,
Miquèl


2021-06-09 18:05:09

by Krzysztof Kozlowski

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

On 09/06/2021 16:11, Miquel Raynal wrote:
> Hi Krzysztof, Rob,
>
> Krzysztof Kozlowski <[email protected]> wrote on Wed, 9
> Jun 2021 15:54:19 +0200:
>
>> On 09/06/2021 15:34, Miquel Raynal wrote:
>>> Hi Krzysztof,
>>>
>>> Krzysztof Kozlowski <[email protected]> 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 <[email protected]>
>>>>> ---
>>>>> .../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 <[email protected]>
>>>>> + - Naga Sureshkumar Relli <[email protected]>
>>>>> +
>>>>> +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

2021-06-09 19:28:48

by Rob Herring

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

On Wed, Jun 9, 2021 at 10:26 AM Krzysztof Kozlowski
<[email protected]> wrote:
>
> On 09/06/2021 16:11, Miquel Raynal wrote:
> > Hi Krzysztof, Rob,
> >
> > Krzysztof Kozlowski <[email protected]> wrote on Wed, 9
> > Jun 2021 15:54:19 +0200:
> >
> >> On 09/06/2021 15:34, Miquel Raynal wrote:
> >>> Hi Krzysztof,
> >>>
> >>> Krzysztof Kozlowski <[email protected]> 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 <[email protected]>
> >>>>> ---
> >>>>> .../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 <[email protected]>
> >>>>> + - Naga Sureshkumar Relli <[email protected]>
> >>>>> +
> >>>>> +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

The above is true if there's no 'compatible'. So you need 'required: [
compatible ]' as well.

Rob