# 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
      - 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

  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,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>;
        };
      };
    };
