Browse Source

fsl/mpic: Document and use the "big-endian" device-tree flag

The MPIC code checks for a "big-endian" property and sets the flag
MPIC_BIG_ENDIAN if one is present, although prior to the "mpic->flags"
fixup that would never have worked anways.

Unfortunately, even now that it works properly, the Freescale mpic
device-node (the "PowerQUICC-III"-compatible one) does not specify it,
so all of the board ports need to manually pass it to mpic_alloc().

Document the flag and add it to the pq3 device tree.  Existing code will
still need to pass the MPIC_BIG_ENDIAN flag because their dtb may not
have this property, but new platforms shouldn't need to do so.

Signed-off-by: Kyle Moffett <Kyle.D.Moffett@boeing.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Kyle Moffett 13 years ago
parent
commit
98cca250ae

+ 8 - 1
Documentation/devicetree/bindings/powerpc/fsl/mpic.txt

@@ -56,7 +56,14 @@ PROPERTIES
           to the client.  The presence of this property also mandates
           to the client.  The presence of this property also mandates
           that any initialization related to interrupt sources shall
           that any initialization related to interrupt sources shall
           be limited to sources explicitly referenced in the device tree.
           be limited to sources explicitly referenced in the device tree.
-       
+
+  - big-endian
+      Usage: optional
+      Value type: <empty>
+          If present the MPIC will be assumed to be big-endian.  Some
+          device-trees omit this property on MPIC nodes even when the MPIC is
+          in fact big-endian, so certain boards override this property.
+
 INTERRUPT SPECIFIER DEFINITION
 INTERRUPT SPECIFIER DEFINITION
 
 
   Interrupt specifiers consists of 4 cells encoded as
   Interrupt specifiers consists of 4 cells encoded as

+ 1 - 0
arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi

@@ -39,6 +39,7 @@ mpic: pic@40000 {
 	reg = <0x40000 0x40000>;
 	reg = <0x40000 0x40000>;
 	compatible = "fsl,mpic";
 	compatible = "fsl,mpic";
 	device_type = "open-pic";
 	device_type = "open-pic";
+	big-endian;
 };
 };
 
 
 timer@41100 {
 timer@41100 {