| 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" |
| - "allwinner,sun50i-h6-system-control", "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 |
| |
| The valid sections compatible for H6 are: |
| - allwinner,sun50i-h6-sram-c, 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>; |
| }; |