Documentation / devicetree / bindings / mtd / mtd.yaml


Based on kernel version 6.11. Page generated on 2024-09-24 08:21 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mtd/mtd.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MTD (Memory Technology Device)

maintainers:
  - Miquel Raynal <miquel.raynal@bootlin.com>
  - Richard Weinberger <richard@nod.at>

select: false

properties:
  $nodename:
    pattern: "^(flash|.*sram|nand)(@.*)?$"

  label:
    description:
      User-defined MTD device name. Can be used to assign user friendly
      names to MTD devices (instead of the flash model or flash controller
      based name) in order to ease flash device identification and/or
      describe what they are used for.
 
  '#address-cells':
    deprecated: true
 
  '#size-cells':
    deprecated: true

  partitions:
    $ref: /schemas/mtd/partitions/partitions.yaml

    required:
      - compatible

patternProperties:
  "@[0-9a-f]+$":
    $ref: partitions/partition.yaml
    deprecated: true
 
  "^partition@[0-9a-f]+":
    $ref: partitions/partition.yaml
    deprecated: true
 
  "^otp(-[0-9]+)?$":
    type: object

    allOf:
      - $ref: /schemas/nvmem/nvmem.yaml#
      - $ref: /schemas/nvmem/nvmem-deprecated-cells.yaml#

    unevaluatedProperties: false

    description: |
      An OTP memory region. Some flashes provide a one-time-programmable
      memory whose content can either be programmed by a user or is already
      pre-programmed by the factory. Some flashes might provide both.

    properties:
      compatible:
        enum:
          - user-otp
          - factory-otp

    required:
      - compatible
 
# This is a generic file other binding inherit from
additionalProperties: true

examples:
  - |
    spi {
        #address-cells = <1>;
        #size-cells = <0>;
 
        flash@0 {
            reg = <0>;
            compatible = "jedec,spi-nor";
            label = "System-firmware";
        };
    };

  - |
    spi {
        #address-cells = <1>;
        #size-cells = <0>;
 
        flash@0 {
            reg = <0>;
            compatible = "jedec,spi-nor";
 
            otp-1 {
                compatible = "factory-otp";
                #address-cells = <1>;
                #size-cells = <1>;
 
                electronic-serial-number@0 {
                    reg = <0 8>;
                };
            };
 
            otp-2 {
                compatible = "user-otp";
                #address-cells = <1>;
                #size-cells = <1>;
 
                mac-address@0 {
                    reg = <0 6>;
                };
            };
        };
    };

...