Allwinnner SoC SRAM controllers
-----------------------------------------------------

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

Controller Node
---------------

Required properties:
- compatible : should be:
    - "allwinner,sun4i-a10-sram-controller" (deprecated)
    - "allwinner,sun4i-a10-system-control"
    - "allwinner,sun5i-a13-system-control"
    - "allwinner,sun7i-a20-system-control", "allwinner,sun4i-a10-system-control"
    - "allwinner,sun8i-a23-system-control"
    - "allwinner,sun8i-h3-system-control"
    - "allwinner,sun50i-a64-sram-controller" (deprecated)
    - "allwinner,sun50i-a64-system-control"
- reg : sram controller register offset + length

SRAM nodes
----------

Each SRAM is described using the mmio-sram bindings documented in
Documentation/devicetree/bindings/sram/sram.txt

Each SRAM will have SRAM sections that are going to be handled by the
SRAM controller as subnodes. These sections are represented following
once again the representation described in the mmio-sram binding.

The valid sections compatible for A10 are:
    - allwinner,sun4i-a10-sram-a3-a4
    - allwinner,sun4i-a10-sram-c1
    - allwinner,sun4i-a10-sram-d

The valid sections compatible for A13 are:
    - allwinner,sun5i-a13-sram-a3-a4, allwinner,sun4i-a10-sram-a3-a4
    - allwinner,sun5i-a13-sram-c1, allwinner,sun4i-a10-sram-c1
    - allwinner,sun5i-a13-sram-d, allwinner,sun4i-a10-sram-d

The valid sections compatible for A20 are:
    - allwinner,sun7i-a20-sram-a3-a4, allwinner,sun4i-a10-sram-a3-a4
    - allwinner,sun7i-a20-sram-c1, allwinner,sun4i-a10-sram-c1
    - allwinner,sun7i-a20-sram-d, allwinner,sun4i-a10-sram-d

The valid sections compatible for A23/A33 are:
    - allwinner,sun8i-a23-sram-c1, allwinner,sun4i-a10-sram-c1

The valid sections compatible for H3 are:
    - allwinner,sun8i-h3-sram-c1, allwinner,sun4i-a10-sram-c1

The valid sections compatible for A64 are:
    - allwinner,sun50i-a64-sram-c

Devices using SRAM sections
---------------------------

Some devices need to request to the SRAM controller to map an SRAM for
their exclusive use.

The relationship between such a device and an SRAM section is
expressed through the allwinner,sram property, that will take a
phandle and an argument.

This valid values for this argument are:
  - 0: CPU
  - 1: Device

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

	sram_a: sram@00000000 {
		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>;
		};
	};
};

emac: ethernet@1c0b000 {
	compatible = "allwinner,sun4i-a10-emac";
	...

	allwinner,sram = <&emac_sram 1>;
};
