diff mbox

[2/2] doc: dt: add documentation for pl172 memory bindings

Message ID 1430241879-30046-3-git-send-email-manabian@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Joachim Eastwood April 28, 2015, 5:24 p.m. UTC
Signed-off-by: Joachim Eastwood <manabian@gmail.com>
---
 .../bindings/memory-controllers/arm,pl172.txt      | 125 +++++++++++++++++++++
 1 file changed, 125 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/memory-controllers/arm,pl172.txt

Comments

Joachim Eastwood May 12, 2015, 5:44 p.m. UTC | #1
Hi DT maintainers,

Do you have any comments on the bindings below?

These bindings are based on bindings for "ti,davinci-aemif" found
under memory-controllers/ti-aemif.txt

regards,
Joachim Eastwood

On 28 April 2015 at 19:24, Joachim Eastwood <manabian@gmail.com> wrote:
> Signed-off-by: Joachim Eastwood <manabian@gmail.com>
> ---
>  .../bindings/memory-controllers/arm,pl172.txt      | 125 +++++++++++++++++++++
>  1 file changed, 125 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/memory-controllers/arm,pl172.txt
>
> diff --git a/Documentation/devicetree/bindings/memory-controllers/arm,pl172.txt b/Documentation/devicetree/bindings/memory-controllers/arm,pl172.txt
> new file mode 100644
> index 000000000000..e6df32f9986d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/memory-controllers/arm,pl172.txt
> @@ -0,0 +1,125 @@
> +* Device tree bindings for ARM PL172 MultiPort Memory Controller
> +
> +Required properties:
> +
> +- compatible:          "arm,pl172", "arm,primecell"
> +
> +- reg:                 Must contains offset/length value for controller.
> +
> +- #address-cells:      Must be 2. The partition number has to be encoded in the
> +                       first address cell and it may accept values 0..N-1
> +                       (N - total number of partitions). The second cell is the
> +                       offset into the partition.
> +
> +- #size-cells:         Must be set to 1.
> +
> +- ranges:              Must contain one or more chip select memory regions.
> +
> +- clocks:              Must contain references to controller clocks.
> +
> +- clock-names:         Must contain "mpmcclk" and "apb_pclk".
> +
> +- clock-ranges:                Empty property indicating that child nodes can inherit
> +                       named clocks. Required only if clock tree data present
> +                       in device tree.
> +                       See clock-bindings.txt
> +
> +Child chip-select (cs) nodes contain the memory devices nodes connected to
> +such as NOR (e.g. cfi-flash) and NAND.
> +
> +Required child cs node properties:
> +
> +- #address-cells:      Must be 2.
> +
> +- #size-cells:         Must be 1.
> +
> +- ranges:              Empty property indicating that child nodes can inherit
> +                       memory layout.
> +
> +- clock-ranges:                Empty property indicating that child nodes can inherit
> +                       named clocks. Required only if clock tree data present
> +                       in device tree.
> +
> +- mpmc,cs:             Chip select number. Indicates to the pl0172 driver
> +                       which chipselect is used for accessing the memory.
> +
> +- mpmc,memory-width:   Width of the chip select memory. Must be equal to
> +                       either 8, 16 or 32.
> +
> +Optional child cs node config properties:
> +
> +- mpmc,async-page-mode:        Enable asynchronous page mode.
> +
> +- mpmc,cs-active-high: Set chip select polarity to active high.
> +
> +- mpmc,byte-lane-low:  Set byte lane state to low.
> +
> +- mpmc,extended-wait:  Enable extended wait.
> +
> +- mpmc,buffer-enable:  Enable write buffer.
> +
> +- mpmc,write-protect:  Enable write protect.
> +
> +Optional child cs node timing properties:
> +
> +- mpmc,write-enable-delay:     Delay from chip select assertion to write
> +                               enable (WE signal) in nano seconds.
> +
> +- mpmc,output-enable-delay:    Delay from chip select assertion to output
> +                               enable (OE signal) in nano seconds.
> +
> +- mpmc,write-access-delay:     Delay from chip select assertion to write
> +                               access in nano seconds.
> +
> +- mpmc,read-access-delay:      Delay from chip select assertion to read
> +                               access in nano seconds.
> +
> +- mpmc,page-mode-read-delay:   Delay for asynchronous page mode sequential
> +                               accesses in nano seconds.
> +
> +- mpmc,turn-round-delay:       Delay between access to memory banks in nano
> +                               seconds.
> +
> +If any of the above timing parameters are absent, current parameter value will
> +be taken from the corresponding HW reg.
> +
> +Example for pl172 with nor flash on chip select 0 shown below.
> +
> +emc: memory-controller@40005000 {
> +       compatible = "arm,pl172", "arm,primecell";
> +       reg = <0x40005000 0x1000>;
> +       clocks = <&ccu1 CLK_CPU_EMCDIV>, <&ccu1 CLK_CPU_EMC>;
> +       clock-names = "mpmcclk", "apb_pclk";
> +       #address-cells = <2>;
> +       #size-cells = <1>;
> +       ranges = <0 0 0x1c000000 0x1000000
> +                 1 0 0x1d000000 0x1000000
> +                 2 0 0x1e000000 0x1000000
> +                 3 0 0x1f000000 0x1000000>;
> +
> +       cs0 {
> +               #address-cells = <2>;
> +               #size-cells = <1>;
> +               ranges;
> +
> +               mpmc,cs = <0>;
> +               mpmc,memory-width = <16>;
> +               mpmc,byte-lane-low;
> +               mpmc,write-enable-delay = <0>;
> +               mpmc,output-enable-delay = <0>;
> +               mpmc,read-enable-delay = <70>;
> +               mpmc,page-mode-read-delay = <70>;
> +
> +               flash@0,0 {
> +                       compatible = "sst,sst39vf320", "cfi-flash";
> +                       reg = <0 0 0x400000>;
> +                       bank-width = <2>;
> +                       #address-cells = <1>;
> +                       #size-cells = <1>;
> +                       partition@0 {
> +                               label = "data";
> +                               reg = <0 0x400000>;
> +                       };
> +               };
> +       };
> +};
> --
> 1.8.0
>
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/memory-controllers/arm,pl172.txt b/Documentation/devicetree/bindings/memory-controllers/arm,pl172.txt
new file mode 100644
index 000000000000..e6df32f9986d
--- /dev/null
+++ b/Documentation/devicetree/bindings/memory-controllers/arm,pl172.txt
@@ -0,0 +1,125 @@ 
+* Device tree bindings for ARM PL172 MultiPort Memory Controller
+
+Required properties:
+
+- compatible:		"arm,pl172", "arm,primecell"
+
+- reg:			Must contains offset/length value for controller.
+
+- #address-cells:	Must be 2. The partition number has to be encoded in the
+			first address cell and it may accept values 0..N-1
+			(N - total number of partitions). The second cell is the
+			offset into the partition.
+
+- #size-cells:		Must be set to 1.
+
+- ranges:		Must contain one or more chip select memory regions.
+
+- clocks:		Must contain references to controller clocks.
+
+- clock-names:		Must contain "mpmcclk" and "apb_pclk".
+
+- clock-ranges:		Empty property indicating that child nodes can inherit
+			named clocks. Required only if clock tree data present
+			in device tree.
+			See clock-bindings.txt
+
+Child chip-select (cs) nodes contain the memory devices nodes connected to
+such as NOR (e.g. cfi-flash) and NAND.
+
+Required child cs node properties:
+
+- #address-cells:	Must be 2.
+
+- #size-cells:		Must be 1.
+
+- ranges:		Empty property indicating that child nodes can inherit
+			memory layout.
+
+- clock-ranges:		Empty property indicating that child nodes can inherit
+			named clocks. Required only if clock tree data present
+			in device tree.
+
+- mpmc,cs:		Chip select number. Indicates to the pl0172 driver
+			which chipselect is used for accessing the memory.
+
+- mpmc,memory-width:	Width of the chip select memory. Must be equal to
+			either 8, 16 or 32.
+
+Optional child cs node config properties:
+
+- mpmc,async-page-mode:	Enable asynchronous page mode.
+
+- mpmc,cs-active-high:	Set chip select polarity to active high.
+
+- mpmc,byte-lane-low:	Set byte lane state to low.
+
+- mpmc,extended-wait:	Enable extended wait.
+
+- mpmc,buffer-enable:	Enable write buffer.
+
+- mpmc,write-protect:	Enable write protect.
+
+Optional child cs node timing properties:
+
+- mpmc,write-enable-delay:	Delay from chip select assertion to write
+				enable (WE signal) in nano seconds.
+
+- mpmc,output-enable-delay:	Delay from chip select assertion to output
+				enable (OE signal) in nano seconds.
+
+- mpmc,write-access-delay:	Delay from chip select assertion to write
+				access in nano seconds.
+
+- mpmc,read-access-delay:	Delay from chip select assertion to read
+				access in nano seconds.
+
+- mpmc,page-mode-read-delay:	Delay for asynchronous page mode sequential
+				accesses in nano seconds.
+
+- mpmc,turn-round-delay:	Delay between access to memory banks in nano
+				seconds.
+
+If any of the above timing parameters are absent, current parameter value will
+be taken from the corresponding HW reg.
+
+Example for pl172 with nor flash on chip select 0 shown below.
+
+emc: memory-controller@40005000 {
+	compatible = "arm,pl172", "arm,primecell";
+	reg = <0x40005000 0x1000>;
+	clocks = <&ccu1 CLK_CPU_EMCDIV>, <&ccu1 CLK_CPU_EMC>;
+	clock-names = "mpmcclk", "apb_pclk";
+	#address-cells = <2>;
+	#size-cells = <1>;
+	ranges = <0 0 0x1c000000 0x1000000
+		  1 0 0x1d000000 0x1000000
+		  2 0 0x1e000000 0x1000000
+		  3 0 0x1f000000 0x1000000>;
+
+	cs0 {
+		#address-cells = <2>;
+		#size-cells = <1>;
+		ranges;
+
+		mpmc,cs = <0>;
+		mpmc,memory-width = <16>;
+		mpmc,byte-lane-low;
+		mpmc,write-enable-delay = <0>;
+		mpmc,output-enable-delay = <0>;
+		mpmc,read-enable-delay = <70>;
+		mpmc,page-mode-read-delay = <70>;
+
+		flash@0,0 {
+			compatible = "sst,sst39vf320", "cfi-flash";
+			reg = <0 0 0x400000>;
+			bank-width = <2>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			partition@0 {
+				label = "data";
+				reg = <0 0x400000>;
+			};
+		};
+	};
+};