# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/reset/syscon-poweroff.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Generic SYSCON mapped register poweroff driver

maintainers:
  - Sebastian Reichel <sre@kernel.org>

description: |+
  This is a generic poweroff driver using syscon to map the poweroff register.
  The poweroff is generally performed with a write to the poweroff register
  defined by the register map pointed by syscon reference plus the offset
  with the value and mask defined in the poweroff node.
  Default will be little endian mode, 32 bit access only.

properties:
  compatible:
    const: syscon-poweroff

  mask:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: Update only the register bits defined by the mask (32 bit).

  offset:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: Offset in the register map for the poweroff register (in bytes).

  regmap:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: Phandle to the register map node.

  value:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: The poweroff value written to the poweroff register (32 bit access).

required:
  - compatible
  - regmap
  - offset

additionalProperties: false

allOf:
  - if:
      not:
        required:
          - mask
    then:
      required:
        - value

examples:
  - |
    poweroff {
        compatible = "syscon-poweroff";
        regmap = <&regmapnode>;
        offset = <0x0>;
        mask = <0x7a>;
    };