# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/reset/socionext,uniphier-reset.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: UniPhier reset controller

maintainers:
  - Masahiro Yamada <yamada.masahiro@socionext.com>

properties:
  compatible:
    oneOf:
      - description: System reset
        enum:
          - socionext,uniphier-ld4-reset
          - socionext,uniphier-pro4-reset
          - socionext,uniphier-sld8-reset
          - socionext,uniphier-pro5-reset
          - socionext,uniphier-pxs2-reset
          - socionext,uniphier-ld6b-reset
          - socionext,uniphier-ld11-reset
          - socionext,uniphier-ld20-reset
          - socionext,uniphier-pxs3-reset
          - socionext,uniphier-nx1-reset
      - description: Media I/O (MIO) reset, SD reset
        enum:
          - socionext,uniphier-ld4-mio-reset
          - socionext,uniphier-pro4-mio-reset
          - socionext,uniphier-sld8-mio-reset
          - socionext,uniphier-pro5-sd-reset
          - socionext,uniphier-pxs2-sd-reset
          - socionext,uniphier-ld11-mio-reset
          - socionext,uniphier-ld11-sd-reset
          - socionext,uniphier-ld20-sd-reset
          - socionext,uniphier-pxs3-sd-reset
          - socionext,uniphier-nx1-sd-reset
      - description: Peripheral reset
        enum:
          - socionext,uniphier-ld4-peri-reset
          - socionext,uniphier-pro4-peri-reset
          - socionext,uniphier-sld8-peri-reset
          - socionext,uniphier-pro5-peri-reset
          - socionext,uniphier-pxs2-peri-reset
          - socionext,uniphier-ld11-peri-reset
          - socionext,uniphier-ld20-peri-reset
          - socionext,uniphier-pxs3-peri-reset
          - socionext,uniphier-nx1-peri-reset
      - description: Analog signal amplifier reset
        enum:
          - socionext,uniphier-ld11-adamv-reset
          - socionext,uniphier-ld20-adamv-reset

  "#reset-cells":
    const: 1

additionalProperties: false

required:
  - compatible
  - "#reset-cells"

examples:
  - |
    sysctrl@61840000 {
        compatible = "socionext,uniphier-sysctrl", "simple-mfd", "syscon";
        reg = <0x61840000 0x4000>;

        reset {
            compatible = "socionext,uniphier-ld11-reset";
            #reset-cells = <1>;
        };

        // other nodes ...
    };

  - |
    mioctrl@59810000 {
        compatible = "socionext,uniphier-mioctrl", "simple-mfd", "syscon";
        reg = <0x59810000 0x800>;

        reset {
            compatible = "socionext,uniphier-ld11-mio-reset";
            #reset-cells = <1>;
        };

        // other nodes ...
    };

  - |
    perictrl@59820000 {
        compatible = "socionext,uniphier-perictrl", "simple-mfd", "syscon";
        reg = <0x59820000 0x200>;

        reset {
            compatible = "socionext,uniphier-ld11-peri-reset";
            #reset-cells = <1>;
        };

        // other nodes ...
    };

  - |
    adamv@57920000 {
        compatible = "socionext,uniphier-ld11-adamv", "simple-mfd", "syscon";
        reg = <0x57920000 0x1000>;

        reset {
            compatible = "socionext,uniphier-ld11-adamv-reset";
            #reset-cells = <1>;
        };

        // other nodes ...
    };
