All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Miquel Raynal <miquel.raynal@bootlin.com>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>,
	devicetree@vger.kernel.org,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
	linux-kernel@vger.kernel.org,
	Robert Marko <robert.marko@sartura.hr>,
	Luka Perkov <luka.perkov@sartura.hr>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Michael Walle <michael@walle.cc>,
	linux-arm-kernel@lists.infradead.org,
	Bartosz Golaszewski <brgl@bgdev.pl>,
	Christian Eggers <ceggers@arri.de>,
	Cory Tusar <cory.tusar@pid1solutions.com>
Subject: Re: [PATCH v3 4/6] dt-bindings: nvmem: add YAML schema for the sl28 vpd layout
Date: Thu, 10 Nov 2022 13:31:08 -0600	[thread overview]
Message-ID: <20221110193108.GA854032-robh@kernel.org> (raw)
In-Reply-To: <20221110183855.05ced2a0@xps-13>

On Thu, Nov 10, 2022 at 06:38:55PM +0100, Miquel Raynal wrote:
> Hi Rob,
> 
> robh@kernel.org wrote on Thu, 10 Nov 2022 07:49:18 -0600:
> 
> > On Fri, Nov 04, 2022 at 05:38:31PM +0100, Miquel Raynal wrote:
> > > From: Michael Walle <michael@walle.cc>
> > > 
> > > Add a schema for the NVMEM layout on Kontron's sl28 boards.
> > > 
> > > Signed-off-by: Michael Walle <michael@walle.cc>
> > > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
> > > ---
> > >  .../nvmem/layouts/kontron,sl28-vpd.yaml       | 60 +++++++++++++++++++
> > >  .../bindings/nvmem/layouts/nvmem-layout.yaml  |  3 +
> > >  2 files changed, 63 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/nvmem/layouts/kontron,sl28-vpd.yaml
> > > 
> > > diff --git a/Documentation/devicetree/bindings/nvmem/layouts/kontron,sl28-vpd.yaml b/Documentation/devicetree/bindings/nvmem/layouts/kontron,sl28-vpd.yaml
> > > new file mode 100644
> > > index 000000000000..44088c8b4153
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/nvmem/layouts/kontron,sl28-vpd.yaml
> > > @@ -0,0 +1,60 @@
> > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/nvmem/layouts/kontron,sl28-vpd.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: NVMEM layout of the Kontron SMARC-sAL28 vital product data
> > > +
> > > +maintainers:
> > > +  - Michael Walle <michael@walle.cc>
> > > +
> > > +description:
> > > +  The vital product data (VPD) of the sl28 boards contains a serial
> > > +  number and a base MAC address. The actual MAC addresses for the
> > > +  on-board ethernet devices are derived from this base MAC address by
> > > +  adding an offset.
> > > +
> > > +properties:
> > > +  compatible:
> > > +    const: kontron,sl28-vpd
> > > +
> > > +  serial-number:
> > > +    type: object
> > > +    description: The board's serial number
> > > +
> > > +  base-mac-address:
> > > +    type: object
> > > +    description:
> > > +      Base MAC address for all on-module network interfaces. The first
> > > +      argument of the phandle will be treated as an offset.
> > > +
> > > +    properties:
> > > +      "#nvmem-cell-cells":
> > > +        const: 1
> > > +
> > > +    additionalProperties: false
> > > +
> > > +required:
> > > +  - compatible
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > +  - |
> > > +      otp-1 {
> > > +          compatible = "user-otp";
> > > +
> > > +          nvmem-layout {
> > > +              compatible = "kontron,sl28-vpd";
> > > +
> > > +              serial_number: serial-number {
> > > +              };
> > > +
> > > +              base_mac_address: base-mac-address {
> > > +                  #nvmem-cell-cells = <1>;
> > > +              };
> > > +          };
> > > +      };
> > > +
> > > +...
> > > diff --git a/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml b/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml
> > > index ecc7c37cbc1f..f64ea2fa362d 100644
> > > --- a/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml
> > > +++ b/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml
> > > @@ -17,6 +17,9 @@ description: |
> > >    define and might require dynamic reading of the NVMEM device in order to
> > >    perform their parsing. The nvmem-layout container is here to describe these.
> > >  
> > > +oneOf:
> > > +  - $ref: kontron,sl28-vpd.yaml  
> > 
> > This is the other way around from how we normally structure things. 
> > Normally, the specific schema would reference the common/base schema. 
> > This works, though you will be applying the schema twice. Once here and 
> > then by matching on compatible string. Not a big deal as that happens 
> > fairly often, but a 'select: false' in kontron,sl28-vpd.yaml would 
> > prevent that. This way does more to enforce the overall structure of 
> > nodes.
> 
> Oh right, I knew about the "select: false" thing, but I forgot it in
> the two layouts.
> 
> > The one downside I see with it this way is nvmem-layout can't ever have 
> > common properties defined without listing them in each layout schema.
> 
> Oh that's right, actually I solved it in the mtd dt-binding series with:
> 
> partitions.yaml:
> 
> 	oneOf:
> 	  - $ref: <parser>.yaml
> 
> 	generic-property:
> 	  $ref: something
> 	  min/max...: foo
> 
> <parser>.yaml:
> 	generic-property: true
> 
> But in this case, are the constraints provided by partitions.yaml on
> "generic-property" actually still enforced?

Yes, they are. 

Rob

WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Miquel Raynal <miquel.raynal@bootlin.com>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>,
	devicetree@vger.kernel.org,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
	linux-kernel@vger.kernel.org,
	Robert Marko <robert.marko@sartura.hr>,
	Luka Perkov <luka.perkov@sartura.hr>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Michael Walle <michael@walle.cc>,
	linux-arm-kernel@lists.infradead.org,
	Bartosz Golaszewski <brgl@bgdev.pl>,
	Christian Eggers <ceggers@arri.de>,
	Cory Tusar <cory.tusar@pid1solutions.com>
Subject: Re: [PATCH v3 4/6] dt-bindings: nvmem: add YAML schema for the sl28 vpd layout
Date: Thu, 10 Nov 2022 13:31:08 -0600	[thread overview]
Message-ID: <20221110193108.GA854032-robh@kernel.org> (raw)
In-Reply-To: <20221110183855.05ced2a0@xps-13>

On Thu, Nov 10, 2022 at 06:38:55PM +0100, Miquel Raynal wrote:
> Hi Rob,
> 
> robh@kernel.org wrote on Thu, 10 Nov 2022 07:49:18 -0600:
> 
> > On Fri, Nov 04, 2022 at 05:38:31PM +0100, Miquel Raynal wrote:
> > > From: Michael Walle <michael@walle.cc>
> > > 
> > > Add a schema for the NVMEM layout on Kontron's sl28 boards.
> > > 
> > > Signed-off-by: Michael Walle <michael@walle.cc>
> > > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
> > > ---
> > >  .../nvmem/layouts/kontron,sl28-vpd.yaml       | 60 +++++++++++++++++++
> > >  .../bindings/nvmem/layouts/nvmem-layout.yaml  |  3 +
> > >  2 files changed, 63 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/nvmem/layouts/kontron,sl28-vpd.yaml
> > > 
> > > diff --git a/Documentation/devicetree/bindings/nvmem/layouts/kontron,sl28-vpd.yaml b/Documentation/devicetree/bindings/nvmem/layouts/kontron,sl28-vpd.yaml
> > > new file mode 100644
> > > index 000000000000..44088c8b4153
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/nvmem/layouts/kontron,sl28-vpd.yaml
> > > @@ -0,0 +1,60 @@
> > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/nvmem/layouts/kontron,sl28-vpd.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: NVMEM layout of the Kontron SMARC-sAL28 vital product data
> > > +
> > > +maintainers:
> > > +  - Michael Walle <michael@walle.cc>
> > > +
> > > +description:
> > > +  The vital product data (VPD) of the sl28 boards contains a serial
> > > +  number and a base MAC address. The actual MAC addresses for the
> > > +  on-board ethernet devices are derived from this base MAC address by
> > > +  adding an offset.
> > > +
> > > +properties:
> > > +  compatible:
> > > +    const: kontron,sl28-vpd
> > > +
> > > +  serial-number:
> > > +    type: object
> > > +    description: The board's serial number
> > > +
> > > +  base-mac-address:
> > > +    type: object
> > > +    description:
> > > +      Base MAC address for all on-module network interfaces. The first
> > > +      argument of the phandle will be treated as an offset.
> > > +
> > > +    properties:
> > > +      "#nvmem-cell-cells":
> > > +        const: 1
> > > +
> > > +    additionalProperties: false
> > > +
> > > +required:
> > > +  - compatible
> > > +
> > > +additionalProperties: false
> > > +
> > > +examples:
> > > +  - |
> > > +      otp-1 {
> > > +          compatible = "user-otp";
> > > +
> > > +          nvmem-layout {
> > > +              compatible = "kontron,sl28-vpd";
> > > +
> > > +              serial_number: serial-number {
> > > +              };
> > > +
> > > +              base_mac_address: base-mac-address {
> > > +                  #nvmem-cell-cells = <1>;
> > > +              };
> > > +          };
> > > +      };
> > > +
> > > +...
> > > diff --git a/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml b/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml
> > > index ecc7c37cbc1f..f64ea2fa362d 100644
> > > --- a/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml
> > > +++ b/Documentation/devicetree/bindings/nvmem/layouts/nvmem-layout.yaml
> > > @@ -17,6 +17,9 @@ description: |
> > >    define and might require dynamic reading of the NVMEM device in order to
> > >    perform their parsing. The nvmem-layout container is here to describe these.
> > >  
> > > +oneOf:
> > > +  - $ref: kontron,sl28-vpd.yaml  
> > 
> > This is the other way around from how we normally structure things. 
> > Normally, the specific schema would reference the common/base schema. 
> > This works, though you will be applying the schema twice. Once here and 
> > then by matching on compatible string. Not a big deal as that happens 
> > fairly often, but a 'select: false' in kontron,sl28-vpd.yaml would 
> > prevent that. This way does more to enforce the overall structure of 
> > nodes.
> 
> Oh right, I knew about the "select: false" thing, but I forgot it in
> the two layouts.
> 
> > The one downside I see with it this way is nvmem-layout can't ever have 
> > common properties defined without listing them in each layout schema.
> 
> Oh that's right, actually I solved it in the mtd dt-binding series with:
> 
> partitions.yaml:
> 
> 	oneOf:
> 	  - $ref: <parser>.yaml
> 
> 	generic-property:
> 	  $ref: something
> 	  min/max...: foo
> 
> <parser>.yaml:
> 	generic-property: true
> 
> But in this case, are the constraints provided by partitions.yaml on
> "generic-property" actually still enforced?

Yes, they are. 

Rob

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2022-11-10 19:31 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-04 16:38 [PATCH v3 0/6] Bindings for NVMEM layouts Miquel Raynal
2022-11-04 16:38 ` Miquel Raynal
2022-11-04 16:38 ` [PATCH v3 1/6] dt-bindings: nvmem: Fix example Miquel Raynal
2022-11-04 16:38   ` Miquel Raynal
2022-11-10  3:51   ` Rob Herring
2022-11-10  3:51     ` Rob Herring
2022-11-11 16:47   ` Srinivas Kandagatla
2022-11-11 16:47     ` Srinivas Kandagatla
2022-11-04 16:38 ` [PATCH v3 2/6] dt-bindings: nvmem: Introduce the nvmem-layout container Miquel Raynal
2022-11-04 16:38   ` Miquel Raynal
2022-11-04 16:38 ` [PATCH v3 3/6] dt-bindings: eeprom: Inherit from nvmem.yaml Miquel Raynal
2022-11-04 16:38   ` Miquel Raynal
2022-11-04 16:38 ` [PATCH v3 4/6] dt-bindings: nvmem: add YAML schema for the sl28 vpd layout Miquel Raynal
2022-11-04 16:38   ` Miquel Raynal
2022-11-10 13:49   ` Rob Herring
2022-11-10 13:49     ` Rob Herring
2022-11-10 17:38     ` Miquel Raynal
2022-11-10 17:38       ` Miquel Raynal
2022-11-10 19:31       ` Rob Herring [this message]
2022-11-10 19:31         ` Rob Herring
2022-11-04 16:38 ` [PATCH v3 5/6] dt-bindings: vendor-prefixes: Add ONIE Miquel Raynal
2022-11-04 16:38   ` Miquel Raynal
2022-11-04 16:38 ` [PATCH v3 6/6] dt-bindings: nvmem: add YAML schema for the ONIE tlv layout Miquel Raynal
2022-11-04 16:38   ` Miquel Raynal
2022-11-10  4:00   ` Rob Herring
2022-11-10  4:00     ` Rob Herring
2022-11-10  8:50     ` Miquel Raynal
2022-11-10  8:50       ` Miquel Raynal
2022-11-10 14:05       ` Rob Herring
2022-11-10 14:05         ` Rob Herring
2022-11-10 17:43         ` Miquel Raynal
2022-11-10 17:43           ` Miquel Raynal
2022-11-10 19:47           ` Rob Herring
2022-11-10 19:47             ` Rob Herring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221110193108.GA854032-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=brgl@bgdev.pl \
    --cc=ceggers@arri.de \
    --cc=cory.tusar@pid1solutions.com \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luka.perkov@sartura.hr \
    --cc=michael@walle.cc \
    --cc=miquel.raynal@bootlin.com \
    --cc=robert.marko@sartura.hr \
    --cc=srinivas.kandagatla@linaro.org \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.