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

From: Miquel Raynal <[email-masked]>
Date: Wed, 9 Jun 2021 16:11:28 +0200

Hi Krzysztof, Rob,

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

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

_______________________________________________
linux-arm-kernel mailing list
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel