aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimur Tabi <timur@freescale.com>2011-09-15 14:04:13 -0400
committerKumar Gala <galak@kernel.crashing.org>2011-10-12 00:47:24 -0400
commit499ccb27a89ecd08475f73710fe27fb600431a91 (patch)
tree149197238505f04e7291ef190295af7b70a0c1a0
parent878e3cb5f7763f388a1fa7d2a33b66601f75b43e (diff)
powerpc/85xx: clean up FPGA device tree nodes for Freecsale QorIQ boards
Standarize and document the FPGA nodes used on Freescale QorIQ reference boards. There are different kinds of FPGAs used on the boards, but only two are currently standard: "pixis", "ngpixis", and "qixis". Although there are minor differences among the boards that have one kind of FPGA, most of the functionality is the same, so it makes sense to create common compatibility strings. We also need to update the P1022DS platform file, because the compatible string for its PIXIS node has changed. This means that older kernels are not compatible with newer device trees. This is not a real problem, however, since that particular function doesn't work anyway. When the DIU is active, the PIXIS is in "indirect mode", and so cannot be accessed as a memory-mapped device. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
-rw-r--r--Documentation/devicetree/bindings/powerpc/fsl/board.txt30
-rw-r--r--arch/powerpc/boot/dts/p1022ds.dts2
-rw-r--r--arch/powerpc/boot/dts/p2020ds.dts5
-rw-r--r--arch/powerpc/boot/dts/p3041ds.dts4
-rw-r--r--arch/powerpc/boot/dts/p4080ds.dts8
-rw-r--r--arch/powerpc/boot/dts/p5020ds.dts4
-rw-r--r--arch/powerpc/platforms/85xx/p1022_ds.c11
7 files changed, 42 insertions, 22 deletions
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/board.txt b/Documentation/devicetree/bindings/powerpc/fsl/board.txt
index 39e941515a36..380914e965e0 100644
--- a/Documentation/devicetree/bindings/powerpc/fsl/board.txt
+++ b/Documentation/devicetree/bindings/powerpc/fsl/board.txt
@@ -1,3 +1,8 @@
1Freescale Reference Board Bindings
2
3This document describes device tree bindings for various devices that
4exist on some Freescale reference boards.
5
1* Board Control and Status (BCSR) 6* Board Control and Status (BCSR)
2 7
3Required properties: 8Required properties:
@@ -12,25 +17,26 @@ Example:
12 reg = <f8000000 8000>; 17 reg = <f8000000 8000>;
13 }; 18 };
14 19
15* Freescale on board FPGA 20* Freescale on-board FPGA
16 21
17This is the memory-mapped registers for on board FPGA. 22This is the memory-mapped registers for on board FPGA.
18 23
19Required properities: 24Required properities:
20- compatible : should be "fsl,fpga-pixis". 25- compatible: should be a board-specific string followed by a string
21- reg : should contain the address and the length of the FPPGA register 26 indicating the type of FPGA. Example:
22 set. 27 "fsl,<board>-fpga", "fsl,fpga-pixis"
28- reg: should contain the address and the length of the FPGA register set.
23- interrupt-parent: should specify phandle for the interrupt controller. 29- interrupt-parent: should specify phandle for the interrupt controller.
24- interrupts : should specify event (wakeup) IRQ. 30- interrupts: should specify event (wakeup) IRQ.
25 31
26Example (MPC8610HPCD): 32Example (P1022DS):
27 33
28 board-control@e8000000 { 34 board-control@3,0 {
29 compatible = "fsl,fpga-pixis"; 35 compatible = "fsl,p1022ds-fpga", "fsl,fpga-ngpixis";
30 reg = <0xe8000000 32>; 36 reg = <3 0 0x30>;
31 interrupt-parent = <&mpic>; 37 interrupt-parent = <&mpic>;
32 interrupts = <8 8>; 38 interrupts = <8 8 0 0>;
33 }; 39 };
34 40
35* Freescale BCSR GPIO banks 41* Freescale BCSR GPIO banks
36 42
diff --git a/arch/powerpc/boot/dts/p1022ds.dts b/arch/powerpc/boot/dts/p1022ds.dts
index 1be9743ab5e0..b9b8719a6204 100644
--- a/arch/powerpc/boot/dts/p1022ds.dts
+++ b/arch/powerpc/boot/dts/p1022ds.dts
@@ -150,7 +150,7 @@
150 }; 150 };
151 151
152 board-control@3,0 { 152 board-control@3,0 {
153 compatible = "fsl,p1022ds-pixis"; 153 compatible = "fsl,p1022ds-fpga", "fsl,fpga-ngpixis";
154 reg = <3 0 0x30>; 154 reg = <3 0 0x30>;
155 interrupt-parent = <&mpic>; 155 interrupt-parent = <&mpic>;
156 /* 156 /*
diff --git a/arch/powerpc/boot/dts/p2020ds.dts b/arch/powerpc/boot/dts/p2020ds.dts
index dae403100f2f..66f03d6477b2 100644
--- a/arch/powerpc/boot/dts/p2020ds.dts
+++ b/arch/powerpc/boot/dts/p2020ds.dts
@@ -118,6 +118,11 @@
118 }; 118 };
119 }; 119 };
120 120
121 board-control@3,0 {
122 compatible = "fsl,p2020ds-fpga", "fsl,fpga-ngpixis";
123 reg = <0x3 0x0 0x30>;
124 };
125
121 nand@4,0 { 126 nand@4,0 {
122 compatible = "fsl,elbc-fcm-nand"; 127 compatible = "fsl,elbc-fcm-nand";
123 reg = <0x4 0x0 0x40000>; 128 reg = <0x4 0x0 0x40000>;
diff --git a/arch/powerpc/boot/dts/p3041ds.dts b/arch/powerpc/boot/dts/p3041ds.dts
index 69cae674f396..961a74cd1e95 100644
--- a/arch/powerpc/boot/dts/p3041ds.dts
+++ b/arch/powerpc/boot/dts/p3041ds.dts
@@ -147,8 +147,8 @@
147 }; 147 };
148 148
149 board-control@3,0 { 149 board-control@3,0 {
150 compatible = "fsl,p3041ds-pixis"; 150 compatible = "fsl,p3041ds-fpga", "fsl,fpga-ngpixis";
151 reg = <3 0 0x20>; 151 reg = <3 0 0x30>;
152 }; 152 };
153 }; 153 };
154 154
diff --git a/arch/powerpc/boot/dts/p4080ds.dts b/arch/powerpc/boot/dts/p4080ds.dts
index eb11098bb687..ccd53aff0e9a 100644
--- a/arch/powerpc/boot/dts/p4080ds.dts
+++ b/arch/powerpc/boot/dts/p4080ds.dts
@@ -108,7 +108,8 @@
108 108
109 localbus@ffe124000 { 109 localbus@ffe124000 {
110 reg = <0xf 0xfe124000 0 0x1000>; 110 reg = <0xf 0xfe124000 0 0x1000>;
111 ranges = <0 0 0xf 0xe8000000 0x08000000>; 111 ranges = <0 0 0xf 0xe8000000 0x08000000
112 3 0 0xf 0xffdf0000 0x00008000>;
112 113
113 flash@0,0 { 114 flash@0,0 {
114 compatible = "cfi-flash"; 115 compatible = "cfi-flash";
@@ -116,6 +117,11 @@
116 bank-width = <2>; 117 bank-width = <2>;
117 device-width = <2>; 118 device-width = <2>;
118 }; 119 };
120
121 board-control@3,0 {
122 compatible = "fsl,p4080ds-fpga", "fsl,fpga-ngpixis";
123 reg = <3 0 0x30>;
124 };
119 }; 125 };
120 126
121 pci0: pcie@ffe200000 { 127 pci0: pcie@ffe200000 {
diff --git a/arch/powerpc/boot/dts/p5020ds.dts b/arch/powerpc/boot/dts/p5020ds.dts
index 8366e2fd2fba..ca4d592c91d1 100644
--- a/arch/powerpc/boot/dts/p5020ds.dts
+++ b/arch/powerpc/boot/dts/p5020ds.dts
@@ -147,8 +147,8 @@
147 }; 147 };
148 148
149 board-control@3,0 { 149 board-control@3,0 {
150 compatible = "fsl,p5020ds-pixis"; 150 compatible = "fsl,p5020ds-fpga", "fsl,fpga-ngpixis";
151 reg = <3 0 0x20>; 151 reg = <3 0 0x30>;
152 }; 152 };
153 }; 153 };
154 154
diff --git a/arch/powerpc/platforms/85xx/p1022_ds.c b/arch/powerpc/platforms/85xx/p1022_ds.c
index 266b3aadfe5e..6a0b9731b259 100644
--- a/arch/powerpc/platforms/85xx/p1022_ds.c
+++ b/arch/powerpc/platforms/85xx/p1022_ds.c
@@ -128,17 +128,20 @@ static void p1022ds_set_gamma_table(int monitor_port, char *gamma_table_base)
128 */ 128 */
129static void p1022ds_set_monitor_port(int monitor_port) 129static void p1022ds_set_monitor_port(int monitor_port)
130{ 130{
131 struct device_node *pixis_node; 131 struct device_node *np;
132 void __iomem *pixis; 132 void __iomem *pixis;
133 u8 __iomem *brdcfg1; 133 u8 __iomem *brdcfg1;
134 134
135 pixis_node = of_find_compatible_node(NULL, NULL, "fsl,p1022ds-pixis"); 135 np = of_find_compatible_node(NULL, NULL, "fsl,p1022ds-fpga");
136 if (!pixis_node) { 136 if (!np)
137 /* older device trees used "fsl,p1022ds-pixis" */
138 np = of_find_compatible_node(NULL, NULL, "fsl,p1022ds-pixis");
139 if (!np) {
137 pr_err("p1022ds: missing ngPIXIS node\n"); 140 pr_err("p1022ds: missing ngPIXIS node\n");
138 return; 141 return;
139 } 142 }
140 143
141 pixis = of_iomap(pixis_node, 0); 144 pixis = of_iomap(np, 0);
142 if (!pixis) { 145 if (!pixis) {
143 pr_err("p1022ds: could not map ngPIXIS registers\n"); 146 pr_err("p1022ds: could not map ngPIXIS registers\n");
144 return; 147 return;