# 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 Device Tree Bindings

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:
      - const: allwinner,sun4i-a10-sram-controller
        deprecated: true
      - const: allwinner,sun4i-a10-system-control
      - const: allwinner,sun5i-a13-system-control
      - items:
          - const: allwinner,sun7i-a20-system-control
          - const: allwinner,sun4i-a10-system-control
      - const: allwinner,sun8i-a23-system-control
      - const: allwinner,sun8i-h3-system-control
      - items:
          - const: allwinner,sun8i-v3s-system-control
          - const: allwinner,sun8i-h3-system-control
      - items:
          - const: allwinner,sun8i-r40-system-control
          - const: allwinner,sun4i-a10-system-control
      - const: allwinner,sun50i-a64-sram-controller
        deprecated: true
      - const: allwinner,sun50i-a64-system-control
      - const: allwinner,sun50i-h5-system-control
      - items:
          - const: allwinner,sun50i-h6-system-control
          - const: allwinner,sun50i-a64-system-control
      - items:
          - const: allwinner,suniv-f1c100s-system-control
          - const: allwinner,sun4i-a10-system-control
      - const: allwinner,sun50i-h616-system-control

  reg:
    maxItems: 1

  ranges: true

patternProperties:
  "^sram@[a-z0-9]+":
    type: object

    properties:
      compatible:
        const: mmio-sram

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

        properties:
          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:
                  - const: allwinner,sun5i-a13-sram-a3-a4
                  - const: allwinner,sun4i-a10-sram-a3-a4
              - items:
                  - const: allwinner,sun7i-a20-sram-a3-a4
                  - const: allwinner,sun4i-a10-sram-a3-a4
              - items:
                  - const: allwinner,sun5i-a13-sram-c1
                  - const: allwinner,sun4i-a10-sram-c1
              - items:
                  - const: allwinner,sun7i-a20-sram-c1
                  - const: allwinner,sun4i-a10-sram-c1
              - items:
                  - const: allwinner,sun8i-a23-sram-c1
                  - const: allwinner,sun4i-a10-sram-c1
              - items:
                  - const: allwinner,sun8i-h3-sram-c1
                  - const: allwinner,sun4i-a10-sram-c1
              - items:
                  - const: allwinner,sun8i-r40-sram-c1
                  - const: allwinner,sun4i-a10-sram-c1
              - items:
                  - const: allwinner,sun50i-a64-sram-c1
                  - const: allwinner,sun4i-a10-sram-c1
              - items:
                  - const: allwinner,sun50i-h5-sram-c1
                  - const: allwinner,sun4i-a10-sram-c1
              - items:
                  - const: allwinner,sun50i-h6-sram-c1
                  - const: allwinner,sun4i-a10-sram-c1
              - items:
                  - const: allwinner,sun5i-a13-sram-d
                  - const: allwinner,sun4i-a10-sram-d
              - items:
                  - const: allwinner,sun7i-a20-sram-d
                  - const: allwinner,sun4i-a10-sram-d
              - items:
                  - const: allwinner,suniv-f1c100s-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>;
        };
      };
    };
