1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mtd/mtd.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: MTD (Memory Technology Device)
8
9maintainers:
10  - Miquel Raynal <miquel.raynal@bootlin.com>
11  - Richard Weinberger <richard@nod.at>
12
13select: false
14
15properties:
16  $nodename:
17    pattern: "^(flash|.*sram|nand)(@.*)?$"
18
19  label:
20    description:
21      User-defined MTD device name. Can be used to assign user friendly
22      names to MTD devices (instead of the flash model or flash controller
23      based name) in order to ease flash device identification and/or
24      describe what they are used for.
25
26  '#address-cells':
27    deprecated: true
28
29  '#size-cells':
30    deprecated: true
31
32  partitions:
33    $ref: /schemas/mtd/partitions/partitions.yaml
34
35    required:
36      - compatible
37
38patternProperties:
39  "@[0-9a-f]+$":
40    $ref: partitions/partition.yaml
41    deprecated: true
42
43  "^partition@[0-9a-f]+":
44    $ref: partitions/partition.yaml
45    deprecated: true
46
47  "^otp(-[0-9]+)?$":
48    type: object
49
50    allOf:
51      - $ref: /schemas/nvmem/nvmem.yaml#
52      - $ref: /schemas/nvmem/nvmem-deprecated-cells.yaml#
53
54    unevaluatedProperties: false
55
56    description: |
57      An OTP memory region. Some flashes provide a one-time-programmable
58      memory whose content can either be programmed by a user or is already
59      pre-programmed by the factory. Some flashes might provide both.
60
61    properties:
62      compatible:
63        enum:
64          - user-otp
65          - factory-otp
66
67    required:
68      - compatible
69
70# This is a generic file other binding inherit from
71additionalProperties: true
72
73examples:
74  - |
75    spi {
76        #address-cells = <1>;
77        #size-cells = <0>;
78
79        flash@0 {
80            reg = <0>;
81            compatible = "jedec,spi-nor";
82            label = "System-firmware";
83        };
84    };
85
86  - |
87    spi {
88        #address-cells = <1>;
89        #size-cells = <0>;
90
91        flash@0 {
92            reg = <0>;
93            compatible = "jedec,spi-nor";
94
95            otp-1 {
96                compatible = "factory-otp";
97                #address-cells = <1>;
98                #size-cells = <1>;
99
100                electronic-serial-number@0 {
101                    reg = <0 8>;
102                };
103            };
104
105            otp-2 {
106                compatible = "user-otp";
107                #address-cells = <1>;
108                #size-cells = <1>;
109
110                mac-address@0 {
111                    reg = <0 6>;
112                };
113            };
114        };
115    };
116
117...
118