# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pmem-region.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

maintainers:
  - Oliver O'Halloran <oohall@gmail.com>

title: Persistent Memory Regions

description: |
  Persistent memory refers to a class of memory devices that are:

    a) Usable as main system memory (i.e. cacheable), and
    b) Retain their contents across power failure.

  Given b) it is best to think of persistent memory as a kind of memory mapped
  storage device. To ensure data integrity the operating system needs to manage
  persistent regions separately to the normal memory pool. To aid with that this
  binding provides a standardised interface for discovering where persistent
  memory regions exist inside the physical address space.

properties:
  compatible:
    const: pmem-region

  reg:
    maxItems: 1

  volatile:
    description:
      Indicates the region is volatile (non-persistent) and the OS can skip
      cache flushes for writes
    type: boolean

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    pmem@5000 {
        compatible = "pmem-region";
        reg = <0x00005000 0x00001000>;
    };
