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

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
# 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
# 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>;
};
};
......@@ -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
......
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment