diff options
author | Xuelin Shi <b29237@freescale.com> | 2012-11-21 04:01:20 -0500 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2012-11-25 08:19:51 -0500 |
commit | 1723d90915d4689fa2e8cd4151d45ea38c96cb99 (patch) | |
tree | 05e6b66c430b9a28e982193e984c9eb24a51ea45 | |
parent | 5320b50797a9a5373f31f5b1c26346357f73e179 (diff) |
powerpc/dma/raidengine: add raidengine device
The RaidEngine is a new Freescale hardware that used for parity
computation offloading in RAID5/6.
This patch adds the device node in device tree and related binding
documentation.
Signed-off-by: Harninder Rai <harninder.rai@freescale.com>
Signed-off-by: Naveen Burmi <naveenburmi@freescale.com>
Signed-off-by: Xuelin Shi <b29237@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
-rw-r--r-- | Documentation/devicetree/bindings/powerpc/fsl/raideng.txt | 81 | ||||
-rw-r--r-- | arch/powerpc/boot/dts/fsl/p5020si-post.dtsi | 1 | ||||
-rw-r--r-- | arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi | 6 | ||||
-rw-r--r-- | arch/powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi | 85 |
4 files changed, 173 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/raideng.txt b/Documentation/devicetree/bindings/powerpc/fsl/raideng.txt new file mode 100644 index 000000000000..4ad29b9ac2ac --- /dev/null +++ b/Documentation/devicetree/bindings/powerpc/fsl/raideng.txt | |||
@@ -0,0 +1,81 @@ | |||
1 | * Freescale 85xx RAID Engine nodes | ||
2 | |||
3 | RAID Engine nodes are defined to describe on-chip RAID accelerators. Each RAID | ||
4 | Engine should have a separate node. | ||
5 | |||
6 | Supported chips: | ||
7 | P5020, P5040 | ||
8 | |||
9 | Required properties: | ||
10 | |||
11 | - compatible: Should contain "fsl,raideng-v1.0" as the value | ||
12 | This identifies RAID Engine block. 1 in 1.0 represents | ||
13 | major number whereas 0 represents minor number. The | ||
14 | version matches the hardware IP version. | ||
15 | - reg: offset and length of the register set for the device | ||
16 | - ranges: standard ranges property specifying the translation | ||
17 | between child address space and parent address space | ||
18 | |||
19 | Example: | ||
20 | /* P5020 */ | ||
21 | raideng: raideng@320000 { | ||
22 | compatible = "fsl,raideng-v1.0"; | ||
23 | #address-cells = <1>; | ||
24 | #size-cells = <1>; | ||
25 | reg = <0x320000 0x10000>; | ||
26 | ranges = <0 0x320000 0x10000>; | ||
27 | }; | ||
28 | |||
29 | |||
30 | There must be a sub-node for each job queue present in RAID Engine | ||
31 | This node must be a sub-node of the main RAID Engine node | ||
32 | |||
33 | - compatible: Should contain "fsl,raideng-v1.0-job-queue" as the value | ||
34 | This identifies the job queue interface | ||
35 | - reg: offset and length of the register set for job queue | ||
36 | - ranges: standard ranges property specifying the translation | ||
37 | between child address space and parent address space | ||
38 | |||
39 | Example: | ||
40 | /* P5020 */ | ||
41 | raideng_jq0@1000 { | ||
42 | compatible = "fsl,raideng-v1.0-job-queue"; | ||
43 | reg = <0x1000 0x1000>; | ||
44 | ranges = <0x0 0x1000 0x1000>; | ||
45 | }; | ||
46 | |||
47 | |||
48 | There must be a sub-node for each job ring present in RAID Engine | ||
49 | This node must be a sub-node of job queue node | ||
50 | |||
51 | - compatible: Must contain "fsl,raideng-v1.0-job-ring" as the value | ||
52 | This identifies job ring. Should contain either | ||
53 | "fsl,raideng-v1.0-hp-ring" or "fsl,raideng-v1.0-lp-ring" | ||
54 | depending upon whether ring has high or low priority | ||
55 | - reg: offset and length of the register set for job ring | ||
56 | - interrupts: interrupt mapping for job ring IRQ | ||
57 | |||
58 | Optional property: | ||
59 | |||
60 | - fsl,liodn: Specifies the LIODN to be used for Job Ring. This | ||
61 | property is normally set by firmware. Value | ||
62 | is of 12-bits which is the LIODN number for this JR. | ||
63 | This property is used by the IOMMU (PAMU) to distinquish | ||
64 | transactions from this JR and than be able to do address | ||
65 | translation & protection accordingly. | ||
66 | |||
67 | Example: | ||
68 | /* P5020 */ | ||
69 | raideng_jq0@1000 { | ||
70 | compatible = "fsl,raideng-v1.0-job-queue"; | ||
71 | reg = <0x1000 0x1000>; | ||
72 | ranges = <0x0 0x1000 0x1000>; | ||
73 | |||
74 | raideng_jr0: jr@0 { | ||
75 | compatible = "fsl,raideng-v1.0-job-ring", "fsl,raideng-v1.0-hp-ring"; | ||
76 | reg = <0x0 0x400>; | ||
77 | interrupts = <139 2 0 0>; | ||
78 | interrupt-parent = <&mpic>; | ||
79 | fsl,liodn = <0x41>; | ||
80 | }; | ||
81 | }; | ||
diff --git a/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi b/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi index 64b6abea8464..5d7205b7bb05 100644 --- a/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi +++ b/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi | |||
@@ -354,4 +354,5 @@ | |||
354 | /include/ "qoriq-sata2-0.dtsi" | 354 | /include/ "qoriq-sata2-0.dtsi" |
355 | /include/ "qoriq-sata2-1.dtsi" | 355 | /include/ "qoriq-sata2-1.dtsi" |
356 | /include/ "qoriq-sec4.2-0.dtsi" | 356 | /include/ "qoriq-sec4.2-0.dtsi" |
357 | /include/ "qoriq-raid1.0-0.dtsi" | ||
357 | }; | 358 | }; |
diff --git a/arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi index 0a198b0a77e5..8df47fc45ab5 100644 --- a/arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi +++ b/arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi | |||
@@ -73,6 +73,12 @@ | |||
73 | rtic_c = &rtic_c; | 73 | rtic_c = &rtic_c; |
74 | rtic_d = &rtic_d; | 74 | rtic_d = &rtic_d; |
75 | sec_mon = &sec_mon; | 75 | sec_mon = &sec_mon; |
76 | |||
77 | raideng = &raideng; | ||
78 | raideng_jr0 = &raideng_jr0; | ||
79 | raideng_jr1 = &raideng_jr1; | ||
80 | raideng_jr2 = &raideng_jr2; | ||
81 | raideng_jr3 = &raideng_jr3; | ||
76 | }; | 82 | }; |
77 | 83 | ||
78 | cpus { | 84 | cpus { |
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi new file mode 100644 index 000000000000..8d2e8aa6cf8a --- /dev/null +++ b/arch/powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi | |||
@@ -0,0 +1,85 @@ | |||
1 | /* | ||
2 | * QorIQ RAID 1.0 device tree stub [ controller @ offset 0x320000 ] | ||
3 | * | ||
4 | * Copyright 2012 Freescale Semiconductor Inc. | ||
5 | * | ||
6 | * Redistribution and use in source and binary forms, with or without | ||
7 | * modification, are permitted provided that the following conditions are met: | ||
8 | * * Redistributions of source code must retain the above copyright | ||
9 | * notice, this list of conditions and the following disclaimer. | ||
10 | * * Redistributions in binary form must reproduce the above copyright | ||
11 | * notice, this list of conditions and the following disclaimer in the | ||
12 | * documentation and/or other materials provided with the distribution. | ||
13 | * * Neither the name of Freescale Semiconductor nor the | ||
14 | * names of its contributors may be used to endorse or promote products | ||
15 | * derived from this software without specific prior written permission. | ||
16 | * | ||
17 | * | ||
18 | * ALTERNATIVELY, this software may be distributed under the terms of the | ||
19 | * GNU General Public License ("GPL") as published by the Free Software | ||
20 | * Foundation, either version 2 of that License or (at your option) any | ||
21 | * later version. | ||
22 | * | ||
23 | * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY | ||
24 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
25 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
26 | * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY | ||
27 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
28 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
29 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
30 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
31 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
32 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
33 | */ | ||
34 | |||
35 | raideng: raideng@320000 { | ||
36 | compatible = "fsl,raideng-v1.0"; | ||
37 | #address-cells = <1>; | ||
38 | #size-cells = <1>; | ||
39 | reg = <0x320000 0x10000>; | ||
40 | ranges = <0 0x320000 0x10000>; | ||
41 | |||
42 | raideng_jq0@1000 { | ||
43 | compatible = "fsl,raideng-v1.0-job-queue"; | ||
44 | #address-cells = <1>; | ||
45 | #size-cells = <1>; | ||
46 | reg = <0x1000 0x1000>; | ||
47 | ranges = <0x0 0x1000 0x1000>; | ||
48 | |||
49 | raideng_jr0: jr@0 { | ||
50 | compatible = "fsl,raideng-v1.0-job-ring", "fsl,raideng-v1.0-hp-ring"; | ||
51 | reg = <0x0 0x400>; | ||
52 | interrupts = <139 2 0 0>; | ||
53 | interrupt-parent = <&mpic>; | ||
54 | }; | ||
55 | |||
56 | raideng_jr1: jr@400 { | ||
57 | compatible = "fsl,raideng-v1.0-job-ring", "fsl,raideng-v1.0-lp-ring"; | ||
58 | reg = <0x400 0x400>; | ||
59 | interrupts = <140 2 0 0>; | ||
60 | interrupt-parent = <&mpic>; | ||
61 | }; | ||
62 | }; | ||
63 | |||
64 | raideng_jq1@2000 { | ||
65 | compatible = "fsl,raideng-v1.0-job-queue"; | ||
66 | #address-cells = <1>; | ||
67 | #size-cells = <1>; | ||
68 | reg = <0x2000 0x1000>; | ||
69 | ranges = <0x0 0x2000 0x1000>; | ||
70 | |||
71 | raideng_jr2: jr@0 { | ||
72 | compatible = "fsl,raideng-v1.0-job-ring", "fsl,raideng-v1.0-hp-ring"; | ||
73 | reg = <0x0 0x400>; | ||
74 | interrupts = <141 2 0 0>; | ||
75 | interrupt-parent = <&mpic>; | ||
76 | }; | ||
77 | |||
78 | raideng_jr3: jr@400 { | ||
79 | compatible = "fsl,raideng-v1.0-job-ring", "fsl,raideng-v1.0-lp-ring"; | ||
80 | reg = <0x400 0x400>; | ||
81 | interrupts = <142 2 0 0>; | ||
82 | interrupt-parent = <&mpic>; | ||
83 | }; | ||
84 | }; | ||
85 | }; | ||