
On 14/10/2021 00:20, Marek Behún wrote:
Add device tree bindings for U-Boot environment NVMEM provider.
U-Boot environment can be stored at a specific offset of a MTD device, EEPROM, MMC, NAND or SATA device, on an UBI volume, or in a file on a filesystem.
The environment can contain information such as device's MAC address, which should be used by the ethernet controller node.
Have you looked at ./Documentation/devicetree/bindings/mtd/partitions/nvmem-cells.yaml ?
--srini
Signed-off-by: Marek Behún kabel@kernel.org
.../bindings/nvmem/denx,u-boot-env.yaml | 88 +++++++++++++++++++ include/dt-bindings/nvmem/u-boot-env.h | 18 ++++ 2 files changed, 106 insertions(+) create mode 100644 Documentation/devicetree/bindings/nvmem/denx,u-boot-env.yaml create mode 100644 include/dt-bindings/nvmem/u-boot-env.h
diff --git a/Documentation/devicetree/bindings/nvmem/denx,u-boot-env.yaml b/Documentation/devicetree/bindings/nvmem/denx,u-boot-env.yaml new file mode 100644 index 000000000000..56505c08e622 --- /dev/null +++ b/Documentation/devicetree/bindings/nvmem/denx,u-boot-env.yaml @@ -0,0 +1,88 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/nvmem/denx,u-boot-env.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: U-Boot environment NVMEM Device Tree Bindings
+maintainers:
- Marek Behún kabel@kernel.org
+description:
- This binding represents U-Boot's environment NVMEM settings which can be
- stored on a specific offset of an EEPROM, MMC, NAND or SATA device, or
- an UBI volume, or in a file on a filesystem.
+properties:
- compatible:
- const: denx,u-boot-env
- path:
- description:
The path to the file containing the environment if on a filesystem.
- $ref: /schemas/types.yaml#/definitions/string
+patternProperties:
- "^[^=]+$":
- type: object
- description:
This node represents one U-Boot environment variable, which is also one
NVMEM data cell.
- properties:
name:
description:
If the variable name contains characters not allowed in device tree node
name, use this property to specify the name, otherwise the variable name
is equal to node name.
$ref: /schemas/types.yaml#/definitions/string
type:
description:
Type of the variable. Since variables, even integers and MAC addresses,
are stored as strings in U-Boot environment, for proper conversion the
type needs to be specified. Use one of the U_BOOT_ENV_TYPE_* prefixed
definitions from include/dt-bindings/nvmem/u-boot-env.h.
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
maximum: 5
- required:
- type
+required:
- compatible
+additionalProperties: true
+examples:
- |
- #include <dt-bindings/nvmem/u-boot-env.h>
- spi-flash {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@180000 {
compatible = "denx,u-boot-env";
label = "u-boot-env";
reg = <0x180000 0x10000>;
eth0_addr: ethaddr {
type = <U_BOOT_ENV_TYPE_MAC_ADDRESS>;
};
};
};
- };
- ethernet-controller {
nvmem-cells = <ð0_addr>;
nvmem-cell-names = "mac-address";
- };
+... diff --git a/include/dt-bindings/nvmem/u-boot-env.h b/include/dt-bindings/nvmem/u-boot-env.h new file mode 100644 index 000000000000..760e5b240619 --- /dev/null +++ b/include/dt-bindings/nvmem/u-boot-env.h @@ -0,0 +1,18 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/*
- Macros for U-Boot environment NVMEM device tree bindings.
- Copyright (C) 2021 Marek Behún kabel@kernel.org
- */
+#ifndef __DT_BINDINGS_NVMEM_U_BOOT_ENV_H +#define __DT_BINDINGS_NVMEM_U_BOOT_ENV_H
+#define U_BOOT_ENV_TYPE_STRING 0 +#define U_BOOT_ENV_TYPE_ULONG 1 +#define U_BOOT_ENV_TYPE_BOOL 2 +#define U_BOOT_ENV_TYPE_MAC_ADDRESS 3 +#define U_BOOT_ENV_TYPE_ULONG_HEX 4 +#define U_BOOT_ENV_TYPE_ULONG_DEC 5
+#endif /* __DT_BINDINGS_NVMEM_U_BOOT_ENV_H */