Re: [PATCH v8 1/6] dt-bindings: sram: describe option to reserve parts of the memory
From: Arnd Bergmann <arnd@arndb.de>
Date: 2014-02-25 13:20:38
Also in:
linux-arm-kernel, lkml
On Tuesday 25 February 2014, Heiko Stübner wrote:
Some SoCs need parts of their sram for special purposes. So while being part of the peripheral, it should not be part of the genpool controlling the sram. Therefore add the option to define reserved regions as subnodes of the sram-node similar to defining reserved global memory regions.
[adding Sachin Kamat to Cc, he just had the same issue]
quoted hunk ↗ jump to hunk
Originally Suggested-by: Rob Herring <redacted> Using subnodes for reserved regions Suggested-by: Grant Likely <redacted> Signed-off-by: Heiko Stuebner <heiko@sntech.de> Tested-by: Ulrich Prinz <redacted> --- Documentation/devicetree/bindings/misc/sram.txt | 33 +++++++++++++++++++++++++ 1 file changed, 33 insertions(+)diff --git a/Documentation/devicetree/bindings/misc/sram.txt b/Documentation/devicetree/bindings/misc/sram.txt index 4d0a00e..2d83758 100644 --- a/Documentation/devicetree/bindings/misc/sram.txt +++ b/Documentation/devicetree/bindings/misc/sram.txt@@ -8,9 +8,42 @@ Required properties: - reg : SRAM iomem address range +Reserving sram areas: +--------------------- + +Each child of the sram node specifies a region of reserved memory. Each +child node should use a 'reg' property to specify a specific range of +reserved memory. + +Following the generic-names recommended practice, node names should +reflect the purpose of the node. Unit address (@<address>) should be +appended to the name. + +Required properties in the sram node: + +- #address-cells, #size-cells : should use the same values as the root node +- ranges : standard definition, should be empty
I think we should rather define the 'ranges' property to translate from addresses within the sram to bus addresses.
+Required properties in the area nodes: + +- reg : iomem address range + +Optional properties in the area nodes: + +- compatible : standard definition +
Is this enough? Normally we should define a list of "compatible" strings that people can add to, but not have an anything-allowed option.
Example:
sram: sram@5c000000 {
compatible = "mmio-sram";
reg = <0x5c000000 0x40000>; /* 256 KiB SRAM at address 0x5c000000 */
+
+ #adress-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ smp-sram@5c000100 {
+ compatible = "socvendor,smp-sram";
+ reg = <0x5c000100 0x50>;
+ };
};