Commit ce9c0b06 authored by Miquel Raynal's avatar Miquel Raynal Committed by Greg Kroah-Hartman
Browse files

dt-bindings: nvmem: add YAML schema for the ONIE tlv layout



Add a schema for the ONIE tlv NVMEM layout that can be found on any ONIE
compatible networking device.

Describe all the possible NVMEM cells that can be produced by this
layout parser.

Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20221118063932.6418-14-srinivas.kandagatla@linaro.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b6c88f10
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ description: |

oneOf:
  - $ref: kontron,sl28-vpd.yaml
  - $ref: onie,tlv-layout.yaml

properties:
  compatible: true
+147 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/layouts/onie,tlv-layout.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NVMEM layout of the ONIE tlv table

maintainers:
  - Miquel Raynal <miquel.raynal@bootlin.com>

description:
  Modern networking hardware implementing the Open Compute Project ONIE
  infrastructure shall provide a non-volatile memory with a table whose the
  content is well specified and gives many information about the manufacturer
  (name, country of manufacture, etc) as well as device caracteristics (serial
  number, hardware version, mac addresses, etc). The underlaying device type
  (flash, EEPROM,...) is not specified. The exact location of each value is also
  dynamic and should be discovered at run time because it depends on the
  parameters the manufacturer decided to embed.

select: false

properties:
  compatible:
    const: onie,tlv-layout

  product-name:
    type: object
    additionalProperties: false

  part-number:
    type: object
    additionalProperties: false

  serial-number:
    type: object
    additionalProperties: false

  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

  manufacture-date:
    type: object
    additionalProperties: false

  device-version:
    type: object
    additionalProperties: false

  label-revision:
    type: object
    additionalProperties: false

  platforn-name:
    type: object
    additionalProperties: false

  onie-version:
    type: object
    additionalProperties: false

  num-macs:
    type: object
    additionalProperties: false

  manufacturer:
    type: object
    additionalProperties: false

  country-code:
    type: object
    additionalProperties: false

  vendor:
    type: object
    additionalProperties: false

  diag-version:
    type: object
    additionalProperties: false

  service-tag:
    type: object
    additionalProperties: false

  vendor-extension:
    type: object
    additionalProperties: false

required:
  - compatible

additionalProperties: false

examples:
  - |
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        eeprom@56 {
            compatible = "atmel,24c64";
            read-only;
            reg = <0x56>;

            nvmem-layout {
                compatible = "onie,tlv-layout";

                serial-number {
                };
            };
        };
    };

  - |
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        flash@0 {
            compatible = "m25p80", "jedec,spi-nor";
            reg = <0>;

            otp {
                compatible = "user-otp";

                nvmem-layout {
                    compatible = "onie,tlv-layout";

                    mac-address {
                        #nvmem-cell-cells = <1>;
                    };
                };
            };
        };
    };
...