description: |
  This binding is used to describe fixed partitions of a flash (or
  other nonvolatile storage) memory.

  Here is an example:

    &flash0 {
            partitions {
                    compatible = "fixed-partitions";
                    #address-cells = <1>;
                    #size-cells = <1>;

                    boot_partition: partition@0 {
                            label = "mcuboot";
                            reg = <0x00000000 0x0000C000>;
                    };
                    slot0_partition: partition@c000 {
                            label = "image-0";
                            reg = <0x0000C000 0x00076000>;
                    };
                    slot1_partition: partition@82000 {
                            label = "image-1";
                            reg = <0x00082000 0x00076000>;
                    };

                    /*
                     * The flash starting at 0x000f8000 and ending at
                     * 0x000fffff is reserved for use by the application.
                     */

                    /*
                     * Storage partition will be used by FCB/LittleFS/NVS
                     * if enabled.
                     */
                    storage_partition: partition@f8000 {
                            label = "storage";
                            reg = <0x000f8000 0x00008000>;
                    };
            };
    };

  Note that the usual name for this node is 'partitions'.
  The fixed-partitions node should be a child of the flash
  memory node. Note also that the flash memory node is usually
  different from the node representing the flash controller
  IP block.

  Above, slot0_partition's register address 0xc000 means that
  the partition begins at that offset from the parent flash
  memory flash0's base address. That is, partition addresses
  are relative; physical addresses must be calculated by adding
  the start address of flash0 in memory to each partition's
  reg address.

compatible: "fixed-partitions"

properties:
  "#address-cells":
    type: int
    description: |
      Number of cells required to represent a child node's
      reg property address. This must be large enough to
      represent the start offset of each partition.

  "#size-cells":
    type: int
    description: |
      Number of cells required to represent a child node's
      reg property address. This must be large enough to
      represent the size of each partition in bytes.

child-binding:
  description: |
    Each child node of the fixed-partitions node represents
    an individual flash partition. These should usually
    look like this:

      partition_nodelabel: partition@START_OFFSET {
              label = "human-readable-name";
              reg = <0xSTART_OFFSET 0xSIZE>;
      };
  properties:
    label:
      type: string
      description: |
        Human readable string describing the flash partition.
    read-only:
      type: boolean
      description: set this property if the partition is read-only
    reg:
      type: array
      description: |
        This should be in the format <OFFSET SIZE>, where OFFSET
        is the offset of the flash partition relative to the base
        address of the parent memory, and SIZE is the size of
        the partition in bytes.
      required: true
