# SPDX-License-Identifier: GPL-2.0+
%YAML 1.2
---
$id: http://devicetree.org/schemas/sram/allwinner,sun4i-a10-system-control.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A10 System Control

maintainers:
  - Chen-Yu Tsai <wens@csie.org>
  - Maxime Ripard <mripard@kernel.org>

description:
  The SRAM controller found on most Allwinner devices is represented
  by a regular node for the SRAM controller itself, with sub-nodes
  representing the SRAM handled by the SRAM controller.

properties:
  "#address-cells":
    const: 1

  "#size-cells":
    const: 1

  compatible:
    oneOf:
      - enum:
          - allwinner,sun4i-a10-sram-controller
          - allwinner,sun50i-a64-sram-controller
        deprecated: true
      - enum:
          - allwinner,sun4i-a10-system-control
          - allwinner,sun5i-a13-system-control
          - allwinner,sun8i-a23-system-control
          - allwinner,sun8i-h3-system-control
          - allwinner,sun20i-d1-system-control
          - allwinner,sun50i-a64-system-control
          - allwinner,sun50i-h5-system-control
          - allwinner,sun50i-h616-system-control
      - items:
          - enum:
              - allwinner,suniv-f1c100s-system-control
              - allwinner,sun7i-a20-system-control
              - allwinner,sun8i-r40-system-control
          - const: allwinner,sun4i-a10-system-control
      - items:
          - const: allwinner,sun8i-v3s-system-control
          - const: allwinner,sun8i-h3-system-control
      - items:
          - const: allwinner,sun50i-h6-system-control
          - const: allwinner,sun50i-a64-system-control

  reg:
    maxItems: 1

  ranges: true

patternProperties:
  "^regulators@[0-9a-f]+$":
    $ref: /schemas/regulator/allwinner,sun20i-d1-system-ldos.yaml#

  "^sram@[a-f0-9]+":
    $ref: /schemas/sram/sram.yaml#
    unevaluatedProperties: false

    patternProperties:
      "^sram-section?@[a-f0-9]+$":
        type: object
        additionalProperties: false

        properties:
          reg: true

          compatible:
            oneOf:
              - const: allwinner,sun4i-a10-sram-a3-a4
              - const: allwinner,sun4i-a10-sram-c1
              - const: allwinner,sun4i-a10-sram-d
              - const: allwinner,sun50i-a64-sram-c
              - items:
                  - enum:
                      - allwinner,sun5i-a13-sram-a3-a4
                      - allwinner,sun7i-a20-sram-a3-a4
                  - const: allwinner,sun4i-a10-sram-a3-a4
              - items:
                  - enum:
                      - allwinner,sun5i-a13-sram-c1
                      - allwinner,sun7i-a20-sram-c1
                      - allwinner,sun8i-a23-sram-c1
                      - allwinner,sun8i-h3-sram-c1
                      - allwinner,sun8i-r40-sram-c1
                      - allwinner,sun50i-a64-sram-c1
                      - allwinner,sun50i-h5-sram-c1
                      - allwinner,sun50i-h6-sram-c1
                  - const: allwinner,sun4i-a10-sram-c1
              - items:
                  - enum:
                      - allwinner,suniv-f1c100s-sram-d
                      - allwinner,sun5i-a13-sram-d
                      - allwinner,sun7i-a20-sram-d
                  - const: allwinner,sun4i-a10-sram-d
              - items:
                  - const: allwinner,sun50i-h6-sram-c
                  - const: allwinner,sun50i-a64-sram-c

required:
  - "#address-cells"
  - "#size-cells"
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    system-control@1c00000 {
      compatible = "allwinner,sun4i-a10-system-control";
      reg = <0x01c00000 0x30>;
      #address-cells = <1>;
      #size-cells = <1>;
      ranges;

      sram_a: sram@0 {
        compatible = "mmio-sram";
        reg = <0x00000000 0xc000>;
        #address-cells = <1>;
        #size-cells = <1>;
        ranges = <0 0x00000000 0xc000>;

        emac_sram: sram-section@8000 {
          compatible = "allwinner,sun4i-a10-sram-a3-a4";
          reg = <0x8000 0x4000>;
        };
      };
    };

  - |
    syscon@3000000 {
      compatible = "allwinner,sun20i-d1-system-control";
      reg = <0x3000000 0x1000>;
      ranges;
      #address-cells = <1>;
      #size-cells = <1>;

      regulators@3000150 {
        compatible = "allwinner,sun20i-d1-system-ldos";
        reg = <0x3000150 0x4>;

        reg_ldoa: ldoa {
          regulator-min-microvolt = <1800000>;
          regulator-max-microvolt = <1800000>;
        };

        reg_ldob: ldob {
          regulator-name = "vcc-dram";
          regulator-min-microvolt = <1500000>;
          regulator-max-microvolt = <1500000>;
        };
      };
    };
