Resguardo inicial

This commit is contained in:
lastdragon
2026-09-06 12:53:21 -06:00
parent 662efe3c2a
commit ad2088d178
94853 changed files with 43200404 additions and 0 deletions
@@ -0,0 +1,123 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/airoha,an8855-efuse.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Airoha AN8855 Switch EFUSE
maintainers:
- Christian Marangi <ansuelsmth@gmail.com>
description:
Airoha AN8855 EFUSE used to calibrate internal PHYs and store additional
configuration info.
$ref: nvmem.yaml#
properties:
compatible:
const: airoha,an8855-efuse
'#nvmem-cell-cells':
const: 0
required:
- compatible
- '#nvmem-cell-cells'
unevaluatedProperties: false
examples:
- |
efuse {
compatible = "airoha,an8855-efuse";
#nvmem-cell-cells = <0>;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
shift_sel_port0_tx_a: shift-sel-port0-tx-a@c {
reg = <0xc 0x4>;
};
shift_sel_port0_tx_b: shift-sel-port0-tx-b@10 {
reg = <0x10 0x4>;
};
shift_sel_port0_tx_c: shift-sel-port0-tx-c@14 {
reg = <0x14 0x4>;
};
shift_sel_port0_tx_d: shift-sel-port0-tx-d@18 {
reg = <0x18 0x4>;
};
shift_sel_port1_tx_a: shift-sel-port1-tx-a@1c {
reg = <0x1c 0x4>;
};
shift_sel_port1_tx_b: shift-sel-port1-tx-b@20 {
reg = <0x20 0x4>;
};
shift_sel_port1_tx_c: shift-sel-port1-tx-c@24 {
reg = <0x24 0x4>;
};
shift_sel_port1_tx_d: shift-sel-port1-tx-d@28 {
reg = <0x28 0x4>;
};
shift_sel_port2_tx_a: shift-sel-port2-tx-a@2c {
reg = <0x2c 0x4>;
};
shift_sel_port2_tx_b: shift-sel-port2-tx-b@30 {
reg = <0x30 0x4>;
};
shift_sel_port2_tx_c: shift-sel-port2-tx-c@34 {
reg = <0x34 0x4>;
};
shift_sel_port2_tx_d: shift-sel-port2-tx-d@38 {
reg = <0x38 0x4>;
};
shift_sel_port3_tx_a: shift-sel-port3-tx-a@4c {
reg = <0x4c 0x4>;
};
shift_sel_port3_tx_b: shift-sel-port3-tx-b@50 {
reg = <0x50 0x4>;
};
shift_sel_port3_tx_c: shift-sel-port3-tx-c@54 {
reg = <0x54 0x4>;
};
shift_sel_port3_tx_d: shift-sel-port3-tx-d@58 {
reg = <0x58 0x4>;
};
shift_sel_port4_tx_a: shift-sel-port4-tx-a@5c {
reg = <0x5c 0x4>;
};
shift_sel_port4_tx_b: shift-sel-port4-tx-b@60 {
reg = <0x60 0x4>;
};
shift_sel_port4_tx_c: shift-sel-port4-tx-c@64 {
reg = <0x64 0x4>;
};
shift_sel_port4_tx_d: shift-sel-port4-tx-d@68 {
reg = <0x68 0x4>;
};
};
};
@@ -0,0 +1,57 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/allwinner,sun4i-a10-sid.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner A10 Security ID
maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <mripard@kernel.org>
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
properties:
compatible:
oneOf:
- const: allwinner,sun4i-a10-sid
- const: allwinner,sun7i-a20-sid
- const: allwinner,sun8i-a83t-sid
- const: allwinner,sun8i-h3-sid
- const: allwinner,sun20i-d1-sid
- const: allwinner,sun50i-a64-sid
- items:
- enum:
- allwinner,sun50i-a100-sid
- allwinner,sun50i-h616-sid
- allwinner,sun55i-a523-sid
- const: allwinner,sun50i-a64-sid
- const: allwinner,sun50i-h5-sid
- const: allwinner,sun50i-h6-sid
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
efuse@1c23800 {
compatible = "allwinner,sun4i-a10-sid";
reg = <0x01c23800 0x10>;
};
- |
efuse@1c23800 {
compatible = "allwinner,sun7i-a20-sid";
reg = <0x01c23800 0x200>;
};
...
@@ -0,0 +1,61 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/amlogic,meson-gxbb-efuse.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Amlogic Meson GX eFuse
maintainers:
- Neil Armstrong <neil.armstrong@linaro.org>
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
properties:
compatible:
oneOf:
- const: amlogic,meson-gxbb-efuse
- items:
- const: amlogic,meson-gx-efuse
- const: amlogic,meson-gxbb-efuse
clocks:
maxItems: 1
secure-monitor:
description: phandle to the secure-monitor node
$ref: /schemas/types.yaml#/definitions/phandle
power-domains:
maxItems: 1
required:
- compatible
- clocks
- secure-monitor
unevaluatedProperties: false
examples:
- |
efuse: efuse {
compatible = "amlogic,meson-gxbb-efuse";
clocks = <&clk_efuse>;
#address-cells = <1>;
#size-cells = <1>;
secure-monitor = <&sm>;
sn: sn@14 {
reg = <0x14 0x10>;
};
eth_mac: mac@34 {
reg = <0x34 0x10>;
};
bid: bid@46 {
reg = <0x46 0x30>;
};
};
@@ -0,0 +1,58 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/amlogic,meson6-efuse.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Amlogic Meson6 eFuse
maintainers:
- Neil Armstrong <neil.armstrong@linaro.org>
- Martin Blumenstingl <martin.blumenstingl@googlemail.com>
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
properties:
compatible:
enum:
- amlogic,meson6-efuse
- amlogic,meson8-efuse
- amlogic,meson8b-efuse
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
const: core
required:
- compatible
- reg
- clocks
- clock-names
unevaluatedProperties: false
examples:
- |
efuse: efuse@0 {
compatible = "amlogic,meson6-efuse";
reg = <0x0 0x2000>;
clocks = <&clk_efuse>;
clock-names = "core";
#address-cells = <1>;
#size-cells = <1>;
ethernet_mac_address: mac@1b4 {
reg = <0x1b4 0x6>;
};
temperature_calib: calib@1f4 {
reg = <0x1f4 0x4>;
};
};
@@ -0,0 +1,51 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/apple,efuses.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Apple SoC eFuse-based NVMEM
description: |
Apple SoCs such as the M1 contain factory-programmed eFuses used to e.g. store
calibration data for the PCIe and the Type-C PHY or unique chip identifiers
such as the ECID.
maintainers:
- Sven Peter <sven@svenpeter.dev>
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
properties:
compatible:
items:
- enum:
- apple,t8103-efuses
- apple,t6000-efuses
- const: apple,efuses
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
efuse@3d2bc000 {
compatible = "apple,t8103-efuses", "apple,efuses";
reg = <0x3d2bc000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
ecid: efuse@500 {
reg = <0x500 0x8>;
};
};
...
@@ -0,0 +1,54 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/apple,spmi-nvmem.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Apple SPMI NVMEM
description: Exports a series of SPMI registers as NVMEM cells
maintainers:
- Sasha Finkelstein <k@chaosmail.tech>
allOf:
- $ref: nvmem.yaml#
properties:
compatible:
items:
- enum:
- apple,maverick-pmic
- apple,sera-pmic
- apple,stowe-pmic
- const: apple,spmi-nvmem
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/spmi/spmi.h>
pmic@f {
compatible = "apple,maverick-pmic", "apple,spmi-nvmem";
reg = <0xf SPMI_USID>;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
boot_stage: boot-stage@6001 {
reg = <0x6001 0x1>;
};
};
};
...
@@ -0,0 +1,73 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/brcm,nvram.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Broadcom's NVRAM
description: |
Broadcom's NVRAM is a structure containing device specific environment
variables. It is used for storing device configuration, booting parameters
and calibration data.
NVRAM can be accessed on Broadcom BCM47xx MIPS and Northstar ARM Cortex-A9
devices usiong I/O mapped memory.
NVRAM variables can be defined as NVMEM device subnodes.
maintainers:
- Rafał Miłecki <rafal@milecki.pl>
allOf:
- $ref: nvmem.yaml#
properties:
compatible:
const: brcm,nvram
reg:
maxItems: 1
board_id:
type: object
description: Board identification name
et0macaddr:
type: object
description: First Ethernet interface's MAC address
properties:
"#nvmem-cell-cells":
description: The first argument is a MAC address offset.
const: 1
additionalProperties: false
et1macaddr:
type: object
description: Second Ethernet interface's MAC address
properties:
"#nvmem-cell-cells":
description: The first argument is a MAC address offset.
const: 1
additionalProperties: false
et2macaddr:
type: object
description: Third Ethernet interface's MAC address
properties:
"#nvmem-cell-cells":
description: The first argument is a MAC address offset.
const: 1
additionalProperties: false
unevaluatedProperties: false
examples:
- |
nvram@1eff0000 {
compatible = "brcm,nvram";
reg = <0x1eff0000 0x10000>;
mac: et0macaddr {
};
};
@@ -0,0 +1,39 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/brcm,ocotp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Broadcom OTP memory controller
maintainers:
- Ray Jui <rjui@broadcom.com>
- Scott Branden <sbranden@broadcom.com>
properties:
compatible:
enum:
- brcm,ocotp
- brcm,ocotp-v2
reg:
maxItems: 1
brcm,ocotp-size:
description: Amount of memory available, in 32-bit words
$ref: /schemas/types.yaml#/definitions/uint32
required:
- compatible
- reg
- brcm,ocotp-size
additionalProperties: false
examples:
- |
otp@301c800 {
compatible = "brcm,ocotp";
reg = <0x0301c800 0x2c>;
brcm,ocotp-size = <2048>;
};
@@ -0,0 +1,63 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/fsl,layerscape-sfp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale Layerscape Security Fuse Processor
maintainers:
- Michael Walle <michael@walle.cc>
description: |
SFP is the security fuse processor which among other things provides a
unique identifier per part.
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml
properties:
compatible:
oneOf:
- description: Trust architecture 2.1 SFP
items:
- const: fsl,ls1021a-sfp
- description: Trust architecture 3.0 SFP
items:
- const: fsl,ls1028a-sfp
reg:
maxItems: 1
clocks:
maxItems: 1
description:
The SFP clock. Typically, this is the platform clock divided by 4.
clock-names:
const: sfp
ta-prog-sfp-supply:
description:
The regulator for the TA_PROG_SFP pin. It will be enabled for programming
and disabled for reading.
required:
- compatible
- reg
- clock-names
- clocks
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/fsl,qoriq-clockgen.h>
efuse@1e80000 {
compatible = "fsl,ls1028a-sfp";
reg = <0x1e80000 0x8000>;
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
QORIQ_CLK_PLL_DIV(4)>;
clock-names = "sfp";
};
@@ -0,0 +1,56 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/fsl,scu-ocotp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: i.MX SCU Client Device Node - OCOTP Based on SCU Message Protocol
maintainers:
- Dong Aisheng <aisheng.dong@nxp.com>
description: i.MX SCU Client Device Node
Client nodes are maintained as children of the relevant IMX-SCU device node.
allOf:
- $ref: nvmem.yaml#
properties:
compatible:
enum:
- fsl,imx8qm-scu-ocotp
- fsl,imx8qxp-scu-ocotp
patternProperties:
'^mac@[0-9a-f]*$':
type: object
description:
MAC address.
properties:
reg:
description:
Byte offset within OCOTP where the MAC address is stored
maxItems: 1
required:
- reg
additionalProperties: false
required:
- compatible
unevaluatedProperties: false
examples:
- |
ocotp {
compatible = "fsl,imx8qxp-scu-ocotp";
#address-cells = <1>;
#size-cells = <1>;
fec_mac0: mac@2c4 {
reg = <0x2c4 6>;
};
};
@@ -0,0 +1,37 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/fsl,t1023-sfp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP QorIQ eFuse support
maintainers:
- Richard Alpe <richard@bit42.se>
description:
Read support for the eFuses (SFP) on NXP QorIQ series SoC's.
allOf:
- $ref: nvmem.yaml#
properties:
compatible:
const: fsl,t1023-sfp
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
efuse@e8000 {
compatible = "fsl,t1023-sfp";
reg = <0xe8000 0x1000>;
};
...
@@ -0,0 +1,47 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/fsl,vf610-ocotp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: On-Chip OTP Memory for Freescale Vybrid
maintainers:
- Frank Li <Frank.Li@nxp.com>
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml
properties:
compatible:
items:
- enum:
- fsl,vf610-ocotp
- const: syscon
reg:
maxItems: 1
clocks:
items:
- description: ipg clock we associate with the OCOTP peripheral
required:
- compatible
- reg
- clocks
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/vf610-clock.h>
ocotp@400a5000 {
compatible = "fsl,vf610-ocotp", "syscon";
reg = <0x400a5000 0xcf0>;
#address-cells = <1>;
#size-cells = <1>;
clocks = <&clks VF610_CLK_OCOTP>;
};
@@ -0,0 +1,61 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/google,gs101-otp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Google GS101 OTP Controller
maintainers:
- Tudor Ambarus <tudor.ambarus@linaro.org>
description: |
OTP controller drives a NVMEM memory where system or user specific data
can be stored. The OTP controller register space is of interest as well
because it contains dedicated registers where it stores the Product ID
and the Chip ID (apart other things like TMU or ASV info).
allOf:
- $ref: nvmem.yaml#
properties:
compatible:
items:
- const: google,gs101-otp
clocks:
maxItems: 1
clock-names:
const: pclk
interrupts:
maxItems: 1
reg:
maxItems: 1
power-domains:
maxItems: 1
required:
- compatible
- reg
- clocks
- clock-names
- interrupts
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/google,gs101.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
efuse@10000000 {
compatible = "google,gs101-otp";
reg = <0x10000000 0xf084>;
clocks = <&cmu_misc CLK_GOUT_MISC_OTP_CON_TOP_PCLK>;
clock-names = "pclk";
interrupts = <GIC_SPI 752 IRQ_TYPE_LEVEL_HIGH>;
};
@@ -0,0 +1,59 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/imx-iim.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale i.MX IC Identification Module (IIM)
maintainers:
- Shawn Guo <shawnguo@kernel.org>
- Sascha Hauer <s.hauer@pengutronix.de>
- Fabio Estevam <festevam@gmail.com>
description: |
This binding represents the IC Identification Module (IIM) found on
i.MX25, i.MX27, i.MX31, i.MX35, i.MX51 and i.MX53 SoCs.
allOf:
- $ref: nvmem.yaml#
properties:
compatible:
enum:
- fsl,imx25-iim
- fsl,imx27-iim
- fsl,imx31-iim
- fsl,imx35-iim
- fsl,imx51-iim
- fsl,imx53-iim
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 1
required:
- compatible
- reg
- interrupts
- clocks
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/imx5-clock.h>
iim: efuse@63f98000 {
compatible = "fsl,imx53-iim";
reg = <0x63f98000 0x4000>;
interrupts = <69>;
clocks = <&clks IMX5_CLK_IIM_GATE>;
};
...
@@ -0,0 +1,91 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/imx-ocotp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale i.MX On-Chip OTP Controller (OCOTP)
maintainers:
- Shawn Guo <shawnguo@kernel.org>
- Sascha Hauer <s.hauer@pengutronix.de>
- Fabio Estevam <festevam@gmail.com>
description: |
This binding represents the on-chip eFuse OTP controller found on
i.MX6Q/D, i.MX6DL/S, i.MX6SL, i.MX6SX, i.MX6UL, i.MX6ULL/ULZ, i.MX6SLL,
i.MX7D/S, i.MX7ULP, i.MX8MQ, i.MX8MM, i.MX8MN i.MX8MP, i.MX93, i.MX94,
and i.MX95.
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
properties:
compatible:
oneOf:
- items:
- enum:
- fsl,imx6q-ocotp
- fsl,imx6sl-ocotp
- fsl,imx6sx-ocotp
- fsl,imx6ul-ocotp
- fsl,imx6ull-ocotp
- fsl,imx7d-ocotp
- fsl,imx6sll-ocotp
- fsl,imx7ulp-ocotp
- fsl,imx8mq-ocotp
- fsl,imx8mm-ocotp
- fsl,imx93-ocotp
- fsl,imx94-ocotp
- fsl,imx95-ocotp
- const: syscon
- items:
- enum:
- fsl,imx8mn-ocotp
# i.MX8MP not really compatible with fsl,imx8mm-ocotp, however
# the code for getting SoC revision depends on fsl,imx8mm-ocotp
# compatible.
- fsl,imx8mp-ocotp
- const: fsl,imx8mm-ocotp
- const: syscon
reg:
maxItems: 1
clocks:
maxItems: 1
required:
- "#address-cells"
- "#size-cells"
- compatible
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/imx6sx-clock.h>
ocotp: efuse@21bc000 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "fsl,imx6sx-ocotp", "syscon";
reg = <0x021bc000 0x4000>;
clocks = <&clks IMX6SX_CLK_OCOTP>;
cpu_speed_grade: speed-grade@10 {
reg = <0x10 4>;
};
tempmon_calib: calib@38 {
reg = <0x38 4>;
};
tempmon_temp_grade: temp-grade@20 {
reg = <0x20 4>;
};
};
...
@@ -0,0 +1,45 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/ingenic,jz4780-efuse.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Ingenic JZ EFUSE driver
maintainers:
- PrasannaKumar Muralidharan <prasannatsmkumar@gmail.com>
allOf:
- $ref: nvmem.yaml#
properties:
compatible:
enum:
- ingenic,jz4780-efuse
reg:
maxItems: 1
clocks:
# Handle for the ahb for the efuse.
maxItems: 1
required:
- compatible
- reg
- clocks
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/ingenic,jz4780-cgu.h>
efuse@134100d0 {
compatible = "ingenic,jz4780-efuse";
reg = <0x134100d0 0x2c>;
clocks = <&cgu JZ4780_CLK_AHB2>;
};
...
@@ -0,0 +1,55 @@
# 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:
compatible:
oneOf:
- const: mac-base
description: >
Cell with base MAC address to be used for calculating extra relative
addresses.
It can be stored in a plain binary format (cell length 6) or as an
ASCII text like "00:11:22:33:44:55" (cell length 17).
reg:
maxItems: 1
bits:
$ref: /schemas/types.yaml#/definitions/uint32-array
items:
- minimum: 0
maximum: 31
description:
Offset in bit within the address range specified by reg.
- minimum: 1
description:
Size in bit within the address range specified by reg.
allOf:
- if:
properties:
compatible:
contains:
const: mac-base
required: [ compatible ]
then:
properties:
"#nvmem-cell-cells":
description: The first argument is a MAC address offset.
const: 1
required:
- "#nvmem-cell-cells"
required:
- reg
additionalProperties: true
@@ -0,0 +1,62 @@
# 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]+(,[0-7])?$":
type: object
$ref: fixed-cell.yaml
unevaluatedProperties: false
required:
- compatible
additionalProperties: false
examples:
- |
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
mac@100 {
compatible = "mac-base";
reg = <0x100 0x6>;
#nvmem-cell-cells = <1>;
};
mac@110 {
compatible = "mac-base";
reg = <0x110 0x11>;
#nvmem-cell-cells = <1>;
};
calibration@4000 {
reg = <0x4000 0x100>;
};
};
@@ -0,0 +1,64 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/layouts/kontron,sl28-vpd.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NVMEM layout of the Kontron SMARC-sAL28 vital product data
maintainers:
- Michael Walle <michael@walle.cc>
description:
The vital product data (VPD) of the sl28 boards contains a serial
number and a base MAC address. The actual MAC addresses for the
on-board ethernet devices are derived from this base MAC address by
adding an offset.
select: false
properties:
compatible:
const: kontron,sl28-vpd
serial-number:
type: object
description: The board's serial number
additionalProperties: false
base-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
required:
- compatible
additionalProperties: false
examples:
- |
otp-1 {
compatible = "user-otp";
nvmem-layout {
compatible = "kontron,sl28-vpd";
serial_number: serial-number {
};
base_mac_address: base-mac-address {
#nvmem-cell-cells = <1>;
};
};
};
...
@@ -0,0 +1,32 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/layouts/nvmem-layout.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NVMEM (Non Volatile Memory) layouts
maintainers:
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
- Michael Walle <michael@walle.cc>
- Miquel Raynal <miquel.raynal@bootlin.com>
description: |
Most NVMEM layouts are static and thus do not require additional description
besides the bytes/bits offset and length. Other layouts can be less statically
define and might require dynamic reading of the NVMEM device in order to
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
- $ref: u-boot,env.yaml
properties:
compatible: true
required:
- compatible
unevaluatedProperties: false
@@ -0,0 +1,147 @@
# 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 underlying 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
platform-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>;
};
};
};
};
};
...
@@ -0,0 +1,139 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/layouts/u-boot,env.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: U-Boot environment variables layout
description: |
U-Boot uses environment variables to store device parameters and
configuration. They may be used for booting process, setup or keeping end user
info.
Data is stored using U-Boot specific formats (variant specific header and NUL
separated key-value pairs).
Environment data can be stored on various storage entities, e.g.:
1. Raw flash partition
2. UBI volume
This binding allows marking storage device (as containing env data) and
specifying used format.
Variables can be defined as NVMEM device subnodes.
maintainers:
- Rafał Miłecki <rafal@milecki.pl>
properties:
compatible:
oneOf:
- description: A standalone env data block
const: u-boot,env
- description: Two redundant blocks with active one flagged
const: u-boot,env-redundant-bool
- description: Two redundant blocks with active having higher counter
const: u-boot,env-redundant-count
- description: Broadcom's variant with custom header
const: brcm,env
reg:
description: Partition offset and size for env on top of MTD
maxItems: 1
bootcmd:
type: object
description: Command to use for automatic booting
env-size:
description:
Size in bytes of the environment data used by U-Boot for CRC
calculation. If omitted, the full NVMEM region size is used.
$ref: /schemas/types.yaml#/definitions/uint32
ethaddr:
type: object
description: Ethernet interfaces base MAC address.
additionalProperties: false
properties:
"#nvmem-cell-cells":
description: The first argument is a MAC address offset.
const: 1
allOf:
- if:
properties:
$nodename:
not:
contains:
pattern: "^partition@[0-9a-f]+$"
then:
properties:
reg: false
additionalProperties: false
examples:
- |
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
reg = <0x0 0x40000>;
label = "u-boot";
read-only;
};
env: partition@40000 {
compatible = "u-boot,env";
reg = <0x40000 0x10000>;
mac: ethaddr {
#nvmem-cell-cells = <1>;
};
};
};
- |
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
reg = <0x0 0x100000>;
compatible = "brcm,u-boot";
label = "u-boot";
partition-u-boot-env {
compatible = "brcm,env";
env-size = <0x20000>;
ethaddr {
};
};
};
};
- |
partition@0 {
reg = <0x0 0x100000>;
label = "ubi";
compatible = "linux,ubi";
volumes {
ubi-volume-u-boot-env {
volname = "env";
nvmem-layout {
compatible = "u-boot,env";
ethaddr {
#nvmem-cell-cells = <1>;
};
};
};
};
};
@@ -0,0 +1,20 @@
* NXP LPC18xx OTP memory
Internal OTP (One Time Programmable) memory for NXP LPC18xx/43xx devices.
Required properties:
- compatible: Should be "nxp,lpc1850-otp"
- reg: Must contain an entry with the physical base address and length
for each entry in reg-names.
- address-cells: must be set to 1.
- size-cells: must be set to 1.
See nvmem.txt for more information.
Example:
otp: otp@40045000 {
compatible = "nxp,lpc1850-otp";
reg = <0x40045000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
};
@@ -0,0 +1,32 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/maxim,max77759-nvmem.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Maxim Integrated MAX77759 Non Volatile Memory
maintainers:
- André Draszik <andre.draszik@linaro.org>
description: |
This module is part of the MAX77759 PMIC. For additional information, see
Documentation/devicetree/bindings/mfd/maxim,max77759.yaml.
The MAX77759 is a PMIC integrating, amongst others, Non Volatile Memory
(NVMEM) with 30 bytes of storage which can be used by software to store
information or communicate with a boot loader.
properties:
compatible:
const: maxim,max77759-nvmem
wp-gpios: false
required:
- compatible
allOf:
- $ref: nvmem.yaml#
unevaluatedProperties: false
@@ -0,0 +1,111 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/mediatek,efuse.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MediaTek efuse
description: |
MediaTek's efuse is used for storing calibration data, it can be accessed
on ARM devices usiong I/O mapped memory.
maintainers:
- Andrew-CT Chen <andrew-ct.chen@mediatek.com>
- Lala Lin <lala.lin@mediatek.com>
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
properties:
$nodename:
pattern: "^efuse@[0-9a-f]+$"
compatible:
oneOf:
- items:
- enum:
- mediatek,mt8188-efuse
- mediatek,mt8189-efuse
- mediatek,mt8196-efuse
- const: mediatek,mt8186-efuse
- const: mediatek,mt8186-efuse
- items:
- enum:
- mediatek,mt8186-efuse
- mediatek,mt8188-efuse
- const: mediatek,efuse
deprecated: true
description: Some compatibles also imply a decoding scheme for the
"gpu-speedbin" cell, and thus are not backward compatible to the
generic "mediatek,efuse" compatible.
- items:
- enum:
- mediatek,mt7622-efuse
- mediatek,mt7623-efuse
- mediatek,mt7981-efuse
- mediatek,mt7986-efuse
- mediatek,mt7988-efuse
- mediatek,mt8173-efuse
- mediatek,mt8183-efuse
- mediatek,mt8189-efuse
- mediatek,mt8192-efuse
- mediatek,mt8195-efuse
- mediatek,mt8516-efuse
- const: mediatek,efuse
- const: mediatek,mt8173-efuse
deprecated: true
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
efuse@11c10000 {
compatible = "mediatek,mt8195-efuse", "mediatek,efuse";
reg = <0x11c10000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
u3_tx_imp_p0: usb3-tx-imp@184,1 {
reg = <0x184 0x1>;
bits = <0 5>;
};
u3_rx_imp_p0: usb3-rx-imp@184,2 {
reg = <0x184 0x2>;
bits = <5 5>;
};
u3_intr_p0: usb3-intr@185 {
reg = <0x185 0x1>;
bits = <2 6>;
};
comb_tx_imp_p1: usb3-tx-imp@186,1 {
reg = <0x186 0x1>;
bits = <0 5>;
};
comb_rx_imp_p1: usb3-rx-imp@186,2 {
reg = <0x186 0x2>;
bits = <5 5>;
};
comb_intr_p1: usb3-intr@187 {
reg = <0x187 0x1>;
bits = <2 6>;
};
u2_intr_p0: usb2-intr-p0@188,1 {
reg = <0x188 0x1>;
bits = <0 5>;
};
u2_intr_p1: usb2-intr-p1@188,2 {
reg = <0x188 0x2>;
bits = <5 5>;
};
};
@@ -0,0 +1,45 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/microchip,lan9662-otpc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Microchip LAN9662 OTP Controller (OTPC)
maintainers:
- Horatiu Vultur <horatiu.vultur@microchip.com>
description: |
OTP controller drives a NVMEM memory where system specific data
(e.g. hardware configuration settings, chip identifiers) or
user specific data could be stored.
allOf:
- $ref: nvmem.yaml#
properties:
compatible:
oneOf:
- items:
- const: microchip,lan9668-otpc
- const: microchip,lan9662-otpc
- enum:
- microchip,lan9662-otpc
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
otpc: otp@e0021000 {
compatible = "microchip,lan9662-otpc";
reg = <0xe0021000 0x300>;
};
...
@@ -0,0 +1,51 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/microchip,sama7g5-otpc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Microchip SAMA7G5 OTP Controller (OTPC)
maintainers:
- Claudiu Beznea <claudiu.beznea@microchip.com>
description: |
OTP controller drives a NVMEM memory where system specific data
(e.g. calibration data for analog cells, hardware configuration
settings, chip identifiers) or user specific data could be stored.
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
properties:
compatible:
items:
- const: microchip,sama7g5-otpc
- const: syscon
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/nvmem/microchip,sama7g5-otpc.h>
otpc: efuse@e8c00000 {
compatible = "microchip,sama7g5-otpc", "syscon";
reg = <0xe8c00000 0xec>;
#address-cells = <1>;
#size-cells = <1>;
temperature_calib: calib@1 {
reg = <OTP_PKT(1) 76>;
};
};
...
@@ -0,0 +1,49 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/mxs-ocotp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: On-Chip OTP Memory for Freescale i.MX23/i.MX28
maintainers:
- Shawn Guo <shawnguo@kernel.org>
- Sascha Hauer <s.hauer@pengutronix.de>
- Fabio Estevam <festevam@gmail.com>
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
properties:
compatible:
items:
- enum:
- fsl,imx23-ocotp
- fsl,imx28-ocotp
- const: fsl,ocotp
reg:
maxItems: 1
clocks:
maxItems: 1
required:
- compatible
- reg
- clocks
unevaluatedProperties: false
examples:
- |
ocotp: efuse@8002c000 {
compatible = "fsl,imx28-ocotp", "fsl,ocotp";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x8002c000 0x2000>;
clocks = <&clks 25>;
};
...
@@ -0,0 +1,44 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/nintendo-otp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Nintendo Wii and Wii U OTP
description: |
This binding represents the OTP memory as found on a Nintendo Wii or Wii U,
which contains common and per-console keys, signatures and related data
required to access peripherals.
See https://wiiubrew.org/wiki/Hardware/OTP
maintainers:
- Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
allOf:
- $ref: nvmem.yaml#
properties:
compatible:
enum:
- nintendo,hollywood-otp
- nintendo,latte-otp
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
otp@d8001ec {
compatible = "nintendo,latte-otp";
reg = <0x0d8001ec 0x8>;
};
...
@@ -0,0 +1,47 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/nvmem-consumer.yaml#
$schema: http://devicetree.org/meta-schemas/base.yaml#
title: NVMEM (Non Volatile Memory) Consumer
maintainers:
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
select: true
properties:
nvmem:
$ref: /schemas/types.yaml#/definitions/phandle-array
description:
List of phandle to the nvmem providers.
items:
maxItems: 1
nvmem-cells:
$ref: /schemas/types.yaml#/definitions/phandle-array
description:
List of phandle to the nvmem data cells.
nvmem-names:
description:
Names for the each nvmem provider.
nvmem-cell-names:
description:
Names for each nvmem-cells specified.
dependencies:
nvmem-names: [ nvmem ]
nvmem-cell-names: [ nvmem-cells ]
additionalProperties: true
examples:
- |
tsens {
/* ... */
nvmem-cells = <&tsens_calibration>;
nvmem-cell-names = "calibration";
};
@@ -0,0 +1,28 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/nvmem-deprecated-cells.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NVMEM old syntax for fixed cells
maintainers:
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
description: |
Before introducing NVMEM layouts all NVMEM (fixed) cells were defined
as direct device subnodes. That syntax was replaced by "fixed-layout"
and is deprecated now. No new bindings should use it.
patternProperties:
"@[0-9a-f]+(,[0-7])?$":
type: object
allOf:
- $ref: layouts/fixed-cell.yaml
- properties:
compatible: false
deprecated: true
additionalProperties: true
...
@@ -0,0 +1,18 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/nvmem-provider.yaml#
$schema: http://devicetree.org/meta-schemas/base.yaml#
title: NVMEM (Non Volatile Memory) Provider
maintainers:
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
select: true
properties:
'#nvmem-cell-cells':
enum: [0, 1]
additionalProperties: true
@@ -0,0 +1 @@
This file has been moved to nvmem.yaml and nvmem-consumer.yaml.
@@ -0,0 +1,92 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/nvmem.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NVMEM (Non Volatile Memory)
maintainers:
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
description: |
This binding is intended to represent the location of hardware
configuration data stored in NVMEMs like eeprom, efuses and so on.
On a significant proportion of boards, the manufacturer has stored
some data on NVMEM, for the OS to be able to retrieve these
information and act upon it. Obviously, the OS has to know about
where to retrieve these data from, and where they are stored on the
storage device.
properties:
"#address-cells":
const: 1
"#size-cells":
const: 1
read-only:
$ref: /schemas/types.yaml#/definitions/flag
description:
Mark the provider as read only.
wp-gpios:
description:
GPIO to which the write-protect pin of the chip is connected.
The write-protect GPIO is asserted, when it's driven high
(logical '1') to block the write operation. It's deasserted,
when it's driven low (logical '0') to allow writing.
maxItems: 1
nvmem-layout:
$ref: /schemas/nvmem/layouts/nvmem-layout.yaml
description:
Alternative to the statically defined nvmem cells, this
container may reference more advanced (dynamic) layout
parsers.
additionalProperties: true
examples:
- |
#include <dt-bindings/gpio/gpio.h>
qfprom: eeprom@700000 {
compatible = "qcom,msm8974-qfprom", "qcom,qfprom";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x00700000 0x100000>;
wp-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
/* ... */
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
/* Data cells */
tsens_calibration: calib@404 {
reg = <0x404 0x10>;
};
tsens_calibration_bckp: calib_bckp@504 {
reg = <0x504 0x11>;
bits = <6 128>;
};
pvs_version: pvs-version@6 {
reg = <0x6 0x2>;
bits = <7 2>;
};
speed_bin: speed-bin@c{
reg = <0xc 0x1>;
bits = <2 3>;
};
};
};
...
@@ -0,0 +1,61 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/nxp,lpc1857-eeprom.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP LPC18xx EEPROM memory
maintainers:
- Frank Li <Frank.Li@nxp.com>
properties:
compatible:
const: nxp,lpc1857-eeprom
reg:
maxItems: 2
reg-names:
items:
- const: reg
- const: mem
clocks:
maxItems: 1
clock-names:
items:
- const: eeprom
interrupts:
maxItems: 1
resets:
maxItems: 1
required:
- compatible
- reg
- reg-names
- clocks
- clock-names
- interrupts
- resets
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/lpc18xx-ccu.h>
eeprom@4000e000 {
compatible = "nxp,lpc1857-eeprom";
reg = <0x4000e000 0x1000>,
<0x20040000 0x4000>;
reg-names = "reg", "mem";
clocks = <&ccu1 CLK_CPU_EEPROM>;
clock-names = "eeprom";
resets = <&rgu 27>;
interrupts = <4>;
};
@@ -0,0 +1,45 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/nxp,s32g-ocotp-nvmem.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP S32G OCOTP NVMEM driver
maintainers:
- Ciprian Costea <ciprianmarian.costea@nxp.com>
description:
The drivers provides an interface to access One Time
Programmable memory pages, such as TMU fuse values.
properties:
compatible:
oneOf:
- enum:
- nxp,s32g2-ocotp
- items:
- enum:
- nxp,s32g3-ocotp
- nxp,s32r45-ocotp
- const: nxp,s32g2-ocotp
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
allOf:
- $ref: nvmem.yaml#
examples:
- |
nvmem@400a4000 {
compatible = "nxp,s32g2-ocotp";
reg = <0x400a4000 0x400>;
#address-cells = <1>;
#size-cells = <1>;
};
@@ -0,0 +1,139 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/qcom,qfprom.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies Inc, QFPROM Efuse
maintainers:
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
properties:
compatible:
items:
- enum:
- qcom,apq8064-qfprom
- qcom,apq8084-qfprom
- qcom,ipq5018-qfprom
- qcom,ipq5332-qfprom
- qcom,ipq5424-qfprom
- qcom,ipq6018-qfprom
- qcom,ipq8064-qfprom
- qcom,ipq8074-qfprom
- qcom,ipq9574-qfprom
- qcom,kaanapali-qfprom
- qcom,msm8226-qfprom
- qcom,msm8916-qfprom
- qcom,msm8917-qfprom
- qcom,msm8937-qfprom
- qcom,msm8960-qfprom
- qcom,msm8974-qfprom
- qcom,msm8976-qfprom
- qcom,msm8996-qfprom
- qcom,msm8998-qfprom
- qcom,qcm2290-qfprom
- qcom,qcs404-qfprom
- qcom,qcs615-qfprom
- qcom,qcs8300-qfprom
- qcom,sa8775p-qfprom
- qcom,sar2130p-qfprom
- qcom,sc7180-qfprom
- qcom,sc7280-qfprom
- qcom,sc8280xp-qfprom
- qcom,sdm630-qfprom
- qcom,sdm670-qfprom
- qcom,sdm845-qfprom
- qcom,sm6115-qfprom
- qcom,sm6350-qfprom
- qcom,sm6375-qfprom
- qcom,sm8150-qfprom
- qcom,sm8250-qfprom
- qcom,sm8450-qfprom
- qcom,sm8550-qfprom
- qcom,sm8650-qfprom
- qcom,sm8750-qfprom
- qcom,x1e80100-qfprom
- const: qcom,qfprom
reg:
# If the QFPROM is read-only OS image then only the corrected region
# needs to be provided. If the QFPROM is writable then all 4 regions
# must be provided.
oneOf:
- items:
- description: The corrected region.
- items:
- description: The corrected region.
- description: The raw region.
- description: The config region.
- description: The security control region.
# Clock must be provided if QFPROM is writable from the OS image.
clocks:
maxItems: 1
clock-names:
const: core
# Supply reference must be provided if QFPROM is writable from the OS image.
vcc-supply:
description: Our power supply.
power-domains:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/qcom,gcc-sc7180.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
efuse@784000 {
compatible = "qcom,sc7180-qfprom", "qcom,qfprom";
reg = <0 0x00784000 0 0x8ff>,
<0 0x00780000 0 0x7a0>,
<0 0x00782000 0 0x100>,
<0 0x00786000 0 0x1fff>;
clocks = <&gcc GCC_SEC_CTRL_CLK_SRC>;
clock-names = "core";
#address-cells = <1>;
#size-cells = <1>;
vcc-supply = <&vreg_l11a_1p8>;
hstx-trim-primary@25b {
reg = <0x25b 0x1>;
bits = <1 3>;
};
};
};
- |
soc {
#address-cells = <2>;
#size-cells = <2>;
efuse@784000 {
compatible = "qcom,sdm845-qfprom", "qcom,qfprom";
reg = <0 0x00784000 0 0x8ff>;
#address-cells = <1>;
#size-cells = <1>;
hstx-trim-primary@1eb {
reg = <0x1eb 0x1>;
bits = <1 4>;
};
};
};
@@ -0,0 +1,56 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/qcom,sec-qfprom.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies Inc, Secure QFPROM Efuse
maintainers:
- Komal Bajaj <quic_kbajaj@quicinc.com>
description:
For some of the Qualcomm SoC's, it is possible that the qfprom region is
protected from non-secure access. In such situations, the OS have to use
secure calls to read the region.
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
properties:
compatible:
items:
- enum:
- qcom,qdu1000-sec-qfprom
- const: qcom,sec-qfprom
reg:
items:
- description: The secure qfprom corrected region.
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
soc {
#address-cells = <2>;
#size-cells = <2>;
efuse@221c8000 {
compatible = "qcom,qdu1000-sec-qfprom", "qcom,sec-qfprom";
reg = <0 0x221c8000 0 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
multi_chan_ddr: multi-chan-ddr@12b {
reg = <0x12b 0x1>;
bits = <0 2>;
};
};
};
@@ -0,0 +1,58 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/qcom,spmi-sdam.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Technologies, Inc. SPMI SDAM
maintainers:
- David Collins <quic_collinsd@quicinc.com>
description: |
The SDAM provides scratch register space for the PMIC clients. This
memory can be used by software to store information or communicate
to/from the PBUS.
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
properties:
compatible:
enum:
- qcom,spmi-sdam
reg:
maxItems: 1
ranges: true
required:
- compatible
- reg
- ranges
unevaluatedProperties: false
examples:
- |
pmic {
#address-cells = <1>;
#size-cells = <0>;
sdam_1: nvram@b000 {
compatible = "qcom,spmi-sdam";
reg = <0xb000>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0xb000 0x100>;
/* Data cells */
restart_reason: restart@50 {
reg = <0x50 0x1>;
bits = <6 2>;
};
};
};
...
@@ -0,0 +1,68 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/renesas,rcar-efuse.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: R-Car E-FUSE connected to PFC
maintainers:
- Geert Uytterhoeven <geert+renesas@glider.be>
description:
The E-FUSE is a type of non-volatile memory, which is accessible through the
Pin Function Controller (PFC) on some R-Car Gen4 SoCs.
allOf:
- $ref: nvmem.yaml#
properties:
compatible:
enum:
- renesas,r8a779a0-efuse # R-Car V3U
- renesas,r8a779f0-efuse # R-Car S4-8
reg:
maxItems: 1
description: PFC System Group Fuse Control and Monitor register block
clocks:
maxItems: 1
power-domains:
maxItems: 1
resets:
maxItems: 1
required:
- compatible
- reg
- clocks
- power-domains
- resets
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/r8a779f0-cpg-mssr.h>
#include <dt-bindings/power/r8a779f0-sysc.h>
fuse@e6078800 {
compatible = "renesas,r8a779f0-efuse";
reg = <0xe6078800 0x200>;
clocks = <&cpg CPG_MOD 915>;
power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
resets = <&cpg 915>;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
calib@144 {
reg = <0x144 0x08>;
};
};
};
@@ -0,0 +1,43 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/renesas,rcar-otp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: R-Car E-FUSE connected to OTP_MEM
maintainers:
- Geert Uytterhoeven <geert+renesas@glider.be>
description:
The E-FUSE is a type of non-volatile memory, which is accessible through the
One-Time Programmable Memory (OTP_MEM) module on some R-Car Gen4 SoCs.
allOf:
- $ref: nvmem.yaml#
properties:
compatible:
enum:
- renesas,r8a779g0-otp # R-CarV4H
- renesas,r8a779h0-otp # R-CarV4M
reg:
items:
- description: OTP_MEM_0
- description: OTP_MEM_1.
The addresses of cells defined under the optional nvmem-layout
subnode are relative to this register bank.
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
otp@e61be000 {
compatible = "renesas,r8a779g0-otp";
reg = <0xe61be000 0x1000>, <0xe61bf000 0x1000>;
};
@@ -0,0 +1,54 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/rmem.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Reserved Memory Based nvmem Device
maintainers:
- Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
allOf:
- $ref: nvmem.yaml#
properties:
compatible:
items:
- enum:
- mobileye,eyeq5-bootloader-config
- raspberrypi,bootloader-config
- raspberrypi,bootloader-public-key
- const: nvmem-rmem
reg:
maxItems: 1
no-map:
$ref: /schemas/types.yaml#/definitions/flag
description:
Avoid creating a virtual mapping of the region as part of the OS'
standard mapping of system memory.
required:
- compatible
- no-map
unevaluatedProperties: false
examples:
- |
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
blconfig: nvram@10000000 {
compatible = "raspberrypi,bootloader-config", "nvmem-rmem";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x10000000 0x1000>;
no-map;
};
};
...
@@ -0,0 +1,211 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/rockchip,otp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Rockchip internal OTP (One Time Programmable) memory
maintainers:
- Heiko Stuebner <heiko@sntech.de>
properties:
compatible:
enum:
- rockchip,px30-otp
- rockchip,rk3308-otp
- rockchip,rk3528-otp
- rockchip,rk3562-otp
- rockchip,rk3568-otp
- rockchip,rk3576-otp
- rockchip,rk3588-otp
reg:
maxItems: 1
clocks:
minItems: 3
maxItems: 4
clock-names:
minItems: 3
maxItems: 4
resets:
minItems: 1
maxItems: 4
reset-names:
minItems: 1
maxItems: 4
required:
- compatible
- reg
- clocks
- clock-names
- resets
- reset-names
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
- if:
properties:
compatible:
contains:
enum:
- rockchip,px30-otp
- rockchip,rk3308-otp
then:
properties:
clocks:
maxItems: 3
clock-names:
items:
- const: otp
- const: apb_pclk
- const: phy
resets:
maxItems: 1
reset-names:
items:
- const: phy
- if:
properties:
compatible:
contains:
enum:
- rockchip,rk3528-otp
then:
properties:
clocks:
maxItems: 3
clock-names:
items:
- const: otp
- const: apb_pclk
- const: sbpi
resets:
minItems: 3
maxItems: 3
reset-names:
items:
- const: otp
- const: apb
- const: sbpi
- if:
properties:
compatible:
contains:
enum:
- rockchip,rk3562-otp
- rockchip,rk3568-otp
then:
properties:
clocks:
minItems: 4
maxItems: 4
clock-names:
items:
- const: otp
- const: apb_pclk
- const: phy
- const: sbpi
resets:
minItems: 4
maxItems: 4
reset-names:
items:
- const: otp
- const: apb
- const: phy
- const: sbpi
- if:
properties:
compatible:
contains:
enum:
- rockchip,rk3576-otp
then:
properties:
clocks:
maxItems: 3
clock-names:
items:
- const: otp
- const: apb_pclk
- const: phy
resets:
minItems: 2
maxItems: 2
reset-names:
items:
- const: otp
- const: apb
- if:
properties:
compatible:
contains:
enum:
- rockchip,rk3588-otp
then:
properties:
clocks:
minItems: 4
maxItems: 4
clock-names:
items:
- const: otp
- const: apb_pclk
- const: phy
- const: arb
resets:
minItems: 3
maxItems: 3
reset-names:
items:
- const: otp
- const: apb
- const: arb
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/px30-cru.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
otp: efuse@ff290000 {
compatible = "rockchip,px30-otp";
reg = <0x0 0xff290000 0x0 0x4000>;
clocks = <&cru SCLK_OTP_USR>, <&cru PCLK_OTP_NS>,
<&cru PCLK_OTP_PHY>;
clock-names = "otp", "apb_pclk", "phy";
resets = <&cru SRST_OTP_PHY>;
reset-names = "phy";
#address-cells = <1>;
#size-cells = <1>;
cpu_id: id@7 {
reg = <0x07 0x10>;
};
cpu_leakage: cpu-leakage@17 {
reg = <0x17 0x1>;
};
performance: performance@1e {
reg = <0x1e 0x1>;
bits = <4 3>;
};
};
};
@@ -0,0 +1,73 @@
# SPDX-License-Identifier: GPL-2.0-or-later OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/rockchip-efuse.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Rockchip eFuse
maintainers:
- Heiko Stuebner <heiko@sntech.de>
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
properties:
compatible:
enum:
- rockchip,rk3066a-efuse
- rockchip,rk3188-efuse
- rockchip,rk3228-efuse
- rockchip,rk3288-efuse
- rockchip,rk3328-efuse
- rockchip,rk3368-efuse
- rockchip,rk3399-efuse
# Deprecated: old compatible value for rk3066a, rk3188 and rk3288
- rockchip,rockchip-efuse
reg:
description:
Registers location and eFuse size.
maxItems: 1
clocks:
description:
eFuse clock id.
maxItems: 1
clock-names:
const: pclk_efuse
rockchip,efuse-size:
description:
eFuse size in bytes. The eFuse size in property <reg> will be invalid if
this property is defined.
$ref: /schemas/types.yaml#/definitions/uint32
required:
- compatible
- reg
- clocks
- clock-names
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/rk3288-cru.h>
efuse: efuse@ffb40000 {
compatible = "rockchip,rk3288-efuse";
reg = <0xffb40000 0x20>;
#address-cells = <1>;
#size-cells = <1>;
clocks = <&cru PCLK_EFUSE256>;
clock-names = "pclk_efuse";
/* Data cells */
cpu_leakage: cpu_leakage@17 {
reg = <0x17 0x1>;
};
};
...
@@ -0,0 +1,41 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/snvs-lpgpr.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Low Power General Purpose Register found in i.MX Secure Non-Volatile Storage
maintainers:
- Oleksij Rempel <o.rempel@pengutronix.de>
properties:
compatible:
oneOf:
- items:
- enum:
- fsl,imx8mm-snvs-lpgpr
- fsl,imx8mn-snvs-lpgpr
- fsl,imx8mp-snvs-lpgpr
- fsl,imx8mq-snvs-lpgpr
- const: fsl,imx7d-snvs-lpgpr
- enum:
- fsl,imx6q-snvs-lpgpr
- fsl,imx6ul-snvs-lpgpr
- fsl,imx7d-snvs-lpgpr
required:
- compatible
additionalProperties: false
examples:
- |
snvs@20cc000 {
compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
reg = <0x20cc000 0x4000>;
snvs_lpgpr: snvs-lpgpr {
compatible = "fsl,imx6q-snvs-lpgpr";
};
};
@@ -0,0 +1,84 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/socionext,uniphier-efuse.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Socionext UniPhier eFuse
maintainers:
- Keiji Hayashibara <hayashibara.keiji@socionext.com>
- Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
properties:
compatible:
const: socionext,uniphier-efuse
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
efuse@100 {
compatible = "socionext,uniphier-efuse";
reg = <0x100 0x28>;
};
efuse@200 {
compatible = "socionext,uniphier-efuse";
reg = <0x200 0x68>;
#address-cells = <1>;
#size-cells = <1>;
/* Data cells */
usb_rterm0: trim@54,4 {
reg = <0x54 1>;
bits = <4 2>;
};
usb_rterm1: trim@55,4 {
reg = <0x55 1>;
bits = <4 2>;
};
usb_rterm2: trim@58,4 {
reg = <0x58 1>;
bits = <4 2>;
};
usb_rterm3: trim@59,4 {
reg = <0x59 1>;
bits = <4 2>;
};
usb_sel_t0: trim@54,0 {
reg = <0x54 1>;
bits = <0 4>;
};
usb_sel_t1: trim@55,0 {
reg = <0x55 1>;
bits = <0 4>;
};
usb_sel_t2: trim@58,0 {
reg = <0x58 1>;
bits = <0 4>;
};
usb_sel_t3: trim@59,0 {
reg = <0x59 1>;
bits = <0 4>;
};
usb_hs_i0: trim@56,0 {
reg = <0x56 1>;
bits = <0 4>;
};
usb_hs_i2: trim@5a,0 {
reg = <0x5a 1>;
bits = <0 4>;
};
};
@@ -0,0 +1,39 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/sprd,sc2731-efuse.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Spreadtrum SC27XX PMIC eFuse
maintainers:
- Orson Zhai <orsonzhai@gmail.com>
- Baolin Wang <baolin.wang7@gmail.com>
- Chunyan Zhang <zhang.lyra@gmail.com>
properties:
compatible:
enum:
- sprd,sc2720-efuse
- sprd,sc2721-efuse
- sprd,sc2723-efuse
- sprd,sc2730-efuse
- sprd,sc2731-efuse
reg:
maxItems: 1
hwlocks:
maxItems: 1
required:
- compatible
- reg
- hwlocks
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
unevaluatedProperties: false
...
@@ -0,0 +1,61 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/sprd,ums312-efuse.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Spreadtrum UMS312 eFuse
maintainers:
- Orson Zhai <orsonzhai@gmail.com>
- Baolin Wang <baolin.wang7@gmail.com>
- Chunyan Zhang <zhang.lyra@gmail.com>
properties:
compatible:
const: sprd,ums312-efuse
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
const: enable
hwlocks:
maxItems: 1
required:
- compatible
- reg
- clocks
- clock-names
- hwlocks
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/sprd,ums512-clk.h>
efuse@32240000 {
compatible = "sprd,ums312-efuse";
reg = <0x32240000 0x10000>;
clocks = <&aonapb_gate CLK_EFUSE_EB>;
clock-names = "enable";
hwlocks = <&hwlock 8>;
#address-cells = <1>;
#size-cells = <1>;
/* Data cells */
thermal_calib: calib@10 {
reg = <0x10 0x2>;
};
};
...
@@ -0,0 +1,73 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/st,stm32-romem.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: STMicroelectronics STM32 Factory-programmed data
description: |
This represents STM32 Factory-programmed read only non-volatile area: locked
flash, OTP, read-only HW regs... This contains various information such as:
analog calibration data for temperature sensor (e.g. TS_CAL1, TS_CAL2),
internal vref (VREFIN_CAL), unique device ID...
maintainers:
- Fabrice Gasnier <fabrice.gasnier@foss.st.com>
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
properties:
compatible:
enum:
- st,stm32f4-otp
- st,stm32mp13-bsec
- st,stm32mp15-bsec
- st,stm32mp25-bsec
reg:
maxItems: 1
patternProperties:
"@[0-9a-f]+$":
type: object
$ref: layouts/fixed-cell.yaml
unevaluatedProperties: false
properties:
st,non-secure-otp:
description: |
This property explicits a factory programmed area that both secure
and non-secure worlds can access. It is needed when, by default, the
related area can only be reached by the secure world.
type: boolean
required:
- "#address-cells"
- "#size-cells"
- compatible
- reg
unevaluatedProperties: false
examples:
- |
efuse@1fff7800 {
compatible = "st,stm32f4-otp";
reg = <0x1fff7800 0x400>;
#address-cells = <1>;
#size-cells = <1>;
calib@22c {
reg = <0x22c 0x2>;
};
mac_addr@e4 {
reg = <0xe4 0x8>;
st,non-secure-otp;
};
};
...
@@ -0,0 +1,79 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) Sunplus Co., Ltd. 2021
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/sunplus,sp7021-ocotp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: On-Chip OTP Memory for Sunplus SP7021
maintainers:
- Vincent Shih <vincent.sunplus@gmail.com>
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
properties:
compatible:
const: sunplus,sp7021-ocotp
reg:
maxItems: 2
reg-names:
items:
- const: hb_gpio
- const: otprx
clocks:
maxItems: 1
thermal-calibration:
type: object
description: thermal calibration values
disconnect-voltage:
type: object
description: disconnect voltages of usb2 port 0 and port 1
mac-address0:
type: object
description: MAC address of ethernet port 0
mac-address1:
type: object
description: MAC address of ethernet port 1
required:
- compatible
- reg
- reg-names
- clocks
unevaluatedProperties: false
examples:
- |
otp: otp@9c00af00 {
compatible = "sunplus,sp7021-ocotp";
reg = <0x9c00af00 0x34>, <0x9c00af80 0x58>;
reg-names = "hb_gpio", "otprx";
clocks = <&clkc 0x15>;
#address-cells = <1>;
#size-cells = <1>;
therm_calib: thermal-calibration@14 {
reg = <0x14 0x3>;
};
disc_vol: disconnect-voltage@18 {
reg = <0x18 0x2>;
};
mac_addr0: mac-address0@34 {
reg = <0x34 0x6>;
};
mac_addr1: mac-address1@3a {
reg = <0x3a 0x6>;
};
};
...
@@ -0,0 +1,42 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/xlnx,zynqmp-nvmem.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Zynq UltraScale+ MPSoC Non Volatile Memory interface
description: |
The ZynqMP MPSoC provides access to the hardware related data
like SOC revision, IDCODE and specific purpose efuses.
maintainers:
- Kalyani Akula <kalyani.akula@amd.com>
- Praveen Teja Kundanala <praveen.teja.kundanala@amd.com>
allOf:
- $ref: nvmem.yaml#
properties:
compatible:
const: xlnx,zynqmp-nvmem-fw
required:
- compatible
unevaluatedProperties: false
examples:
- |
soc-nvmem {
compatible = "xlnx,zynqmp-nvmem-fw";
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
soc_revision: soc-revision@0 {
reg = <0x0 0x4>;
};
};
};
@@ -0,0 +1,54 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/zii,rave-sp-eeprom.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Zodiac Inflight Innovations RAVE EEPROM
maintainers:
- Frank Li <Frank.Li@nxp.com>
description:
RAVE SP EEPROM device is a "MFD cell" device exposing physical EEPROM
attached to RAVE Supervisory Processor. It is expected that its Device
Tree node is specified as a child of the node corresponding to the
parent RAVE SP device (as documented in
Documentation/devicetree/bindings/mfd/zii,rave-sp.yaml)
properties:
compatible:
const: zii,rave-sp-eeprom
reg:
maxItems: 1
zii,eeprom-name:
$ref: /schemas/types.yaml#/definitions/string
description:
Unique EEPROM identifier describing its function in the
system. Will be used as created NVMEM deivce's name.
required:
- compatible
allOf:
- $ref: nvmem.yaml#
- $ref: nvmem-deprecated-cells.yaml#
unevaluatedProperties: false
examples:
- |
eeprom@a4 {
compatible = "zii,rave-sp-eeprom";
reg = <0xa4 0x4000>;
#address-cells = <1>;
#size-cells = <1>;
zii,eeprom-name = "main-eeprom";
wdt-timeout@81 {
reg = <0x81 2>;
};
};