100 lines
2.9 KiB
Plaintext
100 lines
2.9 KiB
Plaintext
|
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>;
|
||
|
};
|