提交 499ccb27 编写于 作者: T Timur Tabi 提交者: Kumar Gala

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: NTimur Tabi <timur@freescale.com>
Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
上级 878e3cb5
Freescale Reference Board Bindings
This document describes device tree bindings for various devices that
exist on some Freescale reference boards.
* Board Control and Status (BCSR) * Board Control and Status (BCSR)
Required properties: Required properties:
...@@ -12,25 +17,26 @@ Example: ...@@ -12,25 +17,26 @@ Example:
reg = <f8000000 8000>; reg = <f8000000 8000>;
}; };
* Freescale on board FPGA * Freescale on-board FPGA
This is the memory-mapped registers for on board FPGA. This is the memory-mapped registers for on board FPGA.
Required properities: Required properities:
- compatible : should be "fsl,fpga-pixis". - compatible: should be a board-specific string followed by a string
- reg : should contain the address and the length of the FPPGA register indicating the type of FPGA. Example:
set. "fsl,<board>-fpga", "fsl,fpga-pixis"
- reg: should contain the address and the length of the FPGA register set.
- interrupt-parent: should specify phandle for the interrupt controller. - interrupt-parent: should specify phandle for the interrupt controller.
- interrupts : should specify event (wakeup) IRQ. - interrupts: should specify event (wakeup) IRQ.
Example (MPC8610HPCD): Example (P1022DS):
board-control@e8000000 { board-control@3,0 {
compatible = "fsl,fpga-pixis"; compatible = "fsl,p1022ds-fpga", "fsl,fpga-ngpixis";
reg = <0xe8000000 32>; reg = <3 0 0x30>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
interrupts = <8 8>; interrupts = <8 8 0 0>;
}; };
* Freescale BCSR GPIO banks * Freescale BCSR GPIO banks
......
...@@ -150,7 +150,7 @@ ...@@ -150,7 +150,7 @@
}; };
board-control@3,0 { board-control@3,0 {
compatible = "fsl,p1022ds-pixis"; compatible = "fsl,p1022ds-fpga", "fsl,fpga-ngpixis";
reg = <3 0 0x30>; reg = <3 0 0x30>;
interrupt-parent = <&mpic>; interrupt-parent = <&mpic>;
/* /*
......
...@@ -118,6 +118,11 @@ ...@@ -118,6 +118,11 @@
}; };
}; };
board-control@3,0 {
compatible = "fsl,p2020ds-fpga", "fsl,fpga-ngpixis";
reg = <0x3 0x0 0x30>;
};
nand@4,0 { nand@4,0 {
compatible = "fsl,elbc-fcm-nand"; compatible = "fsl,elbc-fcm-nand";
reg = <0x4 0x0 0x40000>; reg = <0x4 0x0 0x40000>;
......
...@@ -147,8 +147,8 @@ ...@@ -147,8 +147,8 @@
}; };
board-control@3,0 { board-control@3,0 {
compatible = "fsl,p3041ds-pixis"; compatible = "fsl,p3041ds-fpga", "fsl,fpga-ngpixis";
reg = <3 0 0x20>; reg = <3 0 0x30>;
}; };
}; };
......
...@@ -108,7 +108,8 @@ ...@@ -108,7 +108,8 @@
localbus@ffe124000 { localbus@ffe124000 {
reg = <0xf 0xfe124000 0 0x1000>; reg = <0xf 0xfe124000 0 0x1000>;
ranges = <0 0 0xf 0xe8000000 0x08000000>; ranges = <0 0 0xf 0xe8000000 0x08000000
3 0 0xf 0xffdf0000 0x00008000>;
flash@0,0 { flash@0,0 {
compatible = "cfi-flash"; compatible = "cfi-flash";
...@@ -116,6 +117,11 @@ ...@@ -116,6 +117,11 @@
bank-width = <2>; bank-width = <2>;
device-width = <2>; device-width = <2>;
}; };
board-control@3,0 {
compatible = "fsl,p4080ds-fpga", "fsl,fpga-ngpixis";
reg = <3 0 0x30>;
};
}; };
pci0: pcie@ffe200000 { pci0: pcie@ffe200000 {
......
...@@ -147,8 +147,8 @@ ...@@ -147,8 +147,8 @@
}; };
board-control@3,0 { board-control@3,0 {
compatible = "fsl,p5020ds-pixis"; compatible = "fsl,p5020ds-fpga", "fsl,fpga-ngpixis";
reg = <3 0 0x20>; reg = <3 0 0x30>;
}; };
}; };
......
...@@ -128,17 +128,20 @@ static void p1022ds_set_gamma_table(int monitor_port, char *gamma_table_base) ...@@ -128,17 +128,20 @@ static void p1022ds_set_gamma_table(int monitor_port, char *gamma_table_base)
*/ */
static void p1022ds_set_monitor_port(int monitor_port) static void p1022ds_set_monitor_port(int monitor_port)
{ {
struct device_node *pixis_node; struct device_node *np;
void __iomem *pixis; void __iomem *pixis;
u8 __iomem *brdcfg1; u8 __iomem *brdcfg1;
pixis_node = of_find_compatible_node(NULL, NULL, "fsl,p1022ds-pixis"); np = of_find_compatible_node(NULL, NULL, "fsl,p1022ds-fpga");
if (!pixis_node) { if (!np)
/* older device trees used "fsl,p1022ds-pixis" */
np = of_find_compatible_node(NULL, NULL, "fsl,p1022ds-pixis");
if (!np) {
pr_err("p1022ds: missing ngPIXIS node\n"); pr_err("p1022ds: missing ngPIXIS node\n");
return; return;
} }
pixis = of_iomap(pixis_node, 0); pixis = of_iomap(np, 0);
if (!pixis) { if (!pixis) {
pr_err("p1022ds: could not map ngPIXIS registers\n"); pr_err("p1022ds: could not map ngPIXIS registers\n");
return; return;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册