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 5d96ea42eb
("dt-bindings: mtd: Clarify all
partition subnodes").
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Message-ID: <20230611140330.154222-24-srinivas.kandagatla@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
08ef7a48ef
commit
bd912c991d
4 changed files with 84 additions and 21 deletions
|
@ -0,0 +1,31 @@
|
||||||
|
# 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
|
|
@ -0,0 +1,50 @@
|
||||||
|
# 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.
|
perform their parsing. The nvmem-layout container is here to describe these.
|
||||||
|
|
||||||
oneOf:
|
oneOf:
|
||||||
|
- $ref: fixed-layout.yaml
|
||||||
- $ref: kontron,sl28-vpd.yaml
|
- $ref: kontron,sl28-vpd.yaml
|
||||||
- $ref: onie,tlv-layout.yaml
|
- $ref: onie,tlv-layout.yaml
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
compatible: true
|
compatible: true
|
||||||
|
|
||||||
'#address-cells': false
|
|
||||||
|
|
||||||
'#size-cells': false
|
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
|
|
||||||
|
|
|
@ -49,23 +49,8 @@ properties:
|
||||||
patternProperties:
|
patternProperties:
|
||||||
"@[0-9a-f]+(,[0-7])?$":
|
"@[0-9a-f]+(,[0-7])?$":
|
||||||
type: object
|
type: object
|
||||||
|
$ref: layouts/fixed-cell.yaml
|
||||||
properties:
|
deprecated: true
|
||||||
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.
|
|
||||||
|
|
||||||
additionalProperties: true
|
additionalProperties: true
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue