xref: /freebsd-src/sys/contrib/device-tree/Bindings/mtd/mtd.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
15956d97fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
25956d97fSEmmanuel Vadot%YAML 1.2
35956d97fSEmmanuel Vadot---
45956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/mtd/mtd.yaml#
55956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65956d97fSEmmanuel Vadot
77ef62cebSEmmanuel Vadottitle: MTD (Memory Technology Device)
85956d97fSEmmanuel Vadot
95956d97fSEmmanuel Vadotmaintainers:
105956d97fSEmmanuel Vadot  - Miquel Raynal <miquel.raynal@bootlin.com>
115956d97fSEmmanuel Vadot  - Richard Weinberger <richard@nod.at>
125956d97fSEmmanuel Vadot
1301950c46SEmmanuel Vadotselect: false
1401950c46SEmmanuel Vadot
155956d97fSEmmanuel Vadotproperties:
165956d97fSEmmanuel Vadot  $nodename:
17f126890aSEmmanuel Vadot    pattern: "^(flash|.*sram|nand)(@.*)?$"
185956d97fSEmmanuel Vadot
195956d97fSEmmanuel Vadot  label:
205956d97fSEmmanuel Vadot    description:
215956d97fSEmmanuel Vadot      User-defined MTD device name. Can be used to assign user friendly
225956d97fSEmmanuel Vadot      names to MTD devices (instead of the flash model or flash controller
235956d97fSEmmanuel Vadot      based name) in order to ease flash device identification and/or
245956d97fSEmmanuel Vadot      describe what they are used for.
255956d97fSEmmanuel Vadot
268bab661aSEmmanuel Vadot  '#address-cells':
278bab661aSEmmanuel Vadot    deprecated: true
288bab661aSEmmanuel Vadot
298bab661aSEmmanuel Vadot  '#size-cells':
308bab661aSEmmanuel Vadot    deprecated: true
318bab661aSEmmanuel Vadot
328bab661aSEmmanuel Vadot  partitions:
338bab661aSEmmanuel Vadot    $ref: /schemas/mtd/partitions/partitions.yaml
348bab661aSEmmanuel Vadot
358bab661aSEmmanuel Vadot    required:
368bab661aSEmmanuel Vadot      - compatible
378bab661aSEmmanuel Vadot
385956d97fSEmmanuel VadotpatternProperties:
398bab661aSEmmanuel Vadot  "@[0-9a-f]+$":
408bab661aSEmmanuel Vadot    $ref: partitions/partition.yaml
418bab661aSEmmanuel Vadot    deprecated: true
428bab661aSEmmanuel Vadot
438bab661aSEmmanuel Vadot  "^partition@[0-9a-f]+":
448bab661aSEmmanuel Vadot    $ref: partitions/partition.yaml
458bab661aSEmmanuel Vadot    deprecated: true
468bab661aSEmmanuel Vadot
475956d97fSEmmanuel Vadot  "^otp(-[0-9]+)?$":
4884943d6fSEmmanuel Vadot    type: object
4984943d6fSEmmanuel Vadot
5084943d6fSEmmanuel Vadot    allOf:
51*7d0873ebSEmmanuel Vadot      - $ref: /schemas/nvmem/nvmem.yaml#
52*7d0873ebSEmmanuel Vadot      - $ref: /schemas/nvmem/nvmem-deprecated-cells.yaml#
5384943d6fSEmmanuel Vadot
54fac71e4eSEmmanuel Vadot    unevaluatedProperties: false
555956d97fSEmmanuel Vadot
565956d97fSEmmanuel Vadot    description: |
575956d97fSEmmanuel Vadot      An OTP memory region. Some flashes provide a one-time-programmable
585956d97fSEmmanuel Vadot      memory whose content can either be programmed by a user or is already
595956d97fSEmmanuel Vadot      pre-programmed by the factory. Some flashes might provide both.
605956d97fSEmmanuel Vadot
615956d97fSEmmanuel Vadot    properties:
625956d97fSEmmanuel Vadot      compatible:
635956d97fSEmmanuel Vadot        enum:
645956d97fSEmmanuel Vadot          - user-otp
655956d97fSEmmanuel Vadot          - factory-otp
665956d97fSEmmanuel Vadot
675956d97fSEmmanuel Vadot    required:
685956d97fSEmmanuel Vadot      - compatible
695956d97fSEmmanuel Vadot
708bab661aSEmmanuel Vadot# This is a generic file other binding inherit from
715956d97fSEmmanuel VadotadditionalProperties: true
725956d97fSEmmanuel Vadot
735956d97fSEmmanuel Vadotexamples:
745956d97fSEmmanuel Vadot  - |
755956d97fSEmmanuel Vadot    spi {
765956d97fSEmmanuel Vadot        #address-cells = <1>;
775956d97fSEmmanuel Vadot        #size-cells = <0>;
785956d97fSEmmanuel Vadot
795956d97fSEmmanuel Vadot        flash@0 {
805956d97fSEmmanuel Vadot            reg = <0>;
815956d97fSEmmanuel Vadot            compatible = "jedec,spi-nor";
825956d97fSEmmanuel Vadot            label = "System-firmware";
835956d97fSEmmanuel Vadot        };
845956d97fSEmmanuel Vadot    };
855956d97fSEmmanuel Vadot
865956d97fSEmmanuel Vadot  - |
875956d97fSEmmanuel Vadot    spi {
885956d97fSEmmanuel Vadot        #address-cells = <1>;
895956d97fSEmmanuel Vadot        #size-cells = <0>;
905956d97fSEmmanuel Vadot
915956d97fSEmmanuel Vadot        flash@0 {
925956d97fSEmmanuel Vadot            reg = <0>;
935956d97fSEmmanuel Vadot            compatible = "jedec,spi-nor";
945956d97fSEmmanuel Vadot
955956d97fSEmmanuel Vadot            otp-1 {
965956d97fSEmmanuel Vadot                compatible = "factory-otp";
975956d97fSEmmanuel Vadot                #address-cells = <1>;
985956d97fSEmmanuel Vadot                #size-cells = <1>;
995956d97fSEmmanuel Vadot
1005956d97fSEmmanuel Vadot                electronic-serial-number@0 {
1015956d97fSEmmanuel Vadot                    reg = <0 8>;
1025956d97fSEmmanuel Vadot                };
1035956d97fSEmmanuel Vadot            };
1045956d97fSEmmanuel Vadot
1055956d97fSEmmanuel Vadot            otp-2 {
1065956d97fSEmmanuel Vadot                compatible = "user-otp";
1075956d97fSEmmanuel Vadot                #address-cells = <1>;
1085956d97fSEmmanuel Vadot                #size-cells = <1>;
1095956d97fSEmmanuel Vadot
1105956d97fSEmmanuel Vadot                mac-address@0 {
1115956d97fSEmmanuel Vadot                    reg = <0 6>;
1125956d97fSEmmanuel Vadot                };
1135956d97fSEmmanuel Vadot            };
1145956d97fSEmmanuel Vadot        };
1155956d97fSEmmanuel Vadot    };
1165956d97fSEmmanuel Vadot
1175956d97fSEmmanuel Vadot...
118