Commit bd912c99 authored by Rafał Miłecki's avatar Rafał Miłecki Committed by Greg Kroah-Hartman
Browse files

dt-bindings: nvmem: layouts: add fixed-layout



With the introduction of NVMEM layouts, new NVMEM content structures
should be defined as such. We should also try to convert / migrate
existing NVMEM content bindings to layouts.

This commit handles fixed NVMEM cells. So far they had to be defined
directly - as device subnodes. With this change it's allowed to put them
in the DT node named "nvmem-layout".

Having NVMEM cells in separated node is preferred as it draws a nice
line between NVMEM device and its content. It results in cleaner
bindings.

FWIW a very similar situation has happened to MTD devices and their
partitions: see commit 5d96ea42 ("dt-bindings: mtd: Clarify all
partition subnodes").

Signed-off-by: default avatarRafał Miłecki <rafal@milecki.pl>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Message-ID: <20230611140330.154222-24-srinivas.kandagatla@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 08ef7a48
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/layouts/fixed-cell.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Fixed offset & size NVMEM cell

maintainers:
  - Rafał Miłecki <rafal@milecki.pl>
  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

properties:
  reg:
    maxItems: 1

  bits:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    items:
      - minimum: 0
        maximum: 7
        description:
          Offset in bit within the address range specified by reg.
      - minimum: 1
        description:
          Size in bit within the address range specified by reg.

required:
  - reg

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

title: NVMEM layout for fixed NVMEM cells

description:
  Many NVMEM devices have hardcoded cells layout (offset and size of defined
  NVMEM content doesn't change).

  This binding allows defining such NVMEM layout with its cells. It can be used
  on top of any NVMEM device.

maintainers:
  - Rafał Miłecki <rafal@milecki.pl>

properties:
  compatible:
    const: fixed-layout

  "#address-cells":
    const: 1

  "#size-cells":
    const: 1

patternProperties:
  "@[a-f0-9]+$":
    type: object
    $ref: fixed-cell.yaml
    unevaluatedProperties: false

required:
  - compatible

additionalProperties: false

examples:
  - |
    nvmem-layout {
        compatible = "fixed-layout";
        #address-cells = <1>;
        #size-cells = <1>;

        calibration@4000 {
            reg = <0x4000 0x100>;
        };
    };
+1 −4
Original line number Diff line number Diff line
@@ -18,16 +18,13 @@ description: |
  perform their parsing. The nvmem-layout container is here to describe these.

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

properties:
  compatible: true

  '#address-cells': false

  '#size-cells': false

required:
  - compatible

+2 −17
Original line number Diff line number Diff line
@@ -49,23 +49,8 @@ properties:
patternProperties:
  "@[0-9a-f]+(,[0-7])?$":
    type: object

    properties:
      reg:
        maxItems: 1
        description:
          Offset and size in bytes within the storage device.

      bits:
        $ref: /schemas/types.yaml#/definitions/uint32-array
        items:
          - minimum: 0
            maximum: 7
            description:
              Offset in bit within the address range specified by reg.
          - minimum: 1
            description:
              Size in bit within the address range specified by reg.
    $ref: layouts/fixed-cell.yaml
    deprecated: true

additionalProperties: true