[POWERPC] 83xx: MPC8313e RBD add NAND to device tree
authorScott Wood <scottwood@freescale.com>
Thu, 17 Jan 2008 22:37:51 +0000 (16:37 -0600)
committerKumar Gala <galak@kernel.crashing.org>
Thu, 24 Jan 2008 01:34:46 +0000 (19:34 -0600)
Add NAND to device tree, and call of_platform_bus_probe().

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
arch/powerpc/boot/dts/mpc8313erdb.dts
arch/powerpc/platforms/83xx/mpc8313_rdb.c

index 6e8c606..396710d 100644 (file)
                reg = <00000000 08000000>;      // 128MB at 0
        };
 
+       localbus@e0005000 {
+               #address-cells = <2>;
+               #size-cells = <1>;
+               compatible = "fsl,mpc8313-elbc", "fsl,elbc", "simple-bus";
+               reg = <e0005000 1000>;
+               interrupts = <d#77 8>;
+               interrupt-parent = <&ipic>;
+
+               // CS0 and CS1 are swapped when
+               // booting from nand, but the
+               // addresses are the same.
+               ranges = <0 0 fe000000 00800000
+                         1 0 e2800000 00008000
+                         2 0 f0000000 00020000
+                         3 0 fa000000 00008000>;
+
+               nand@1,0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "fsl,mpc8313-fcm-nand",
+                                    "fsl,elbc-fcm-nand";
+                       reg = <1 0 2000>;
+
+                       u-boot@0 {
+                               reg = <0 100000>;
+                               read-only;
+                       };
+
+                       kernel@100000 {
+                               reg = <100000 300000>;
+                       };
+
+                       fs@400000 {
+                               reg = <400000 1c00000>;
+                       };
+               };
+       };
+
        soc8313@e0000000 {
                #address-cells = <1>;
                #size-cells = <1>;
                device_type = "soc";
+               compatible = "simple-bus";
                ranges = <0 e0000000 00100000>;
                reg = <e0000000 00000200>;
                bus-frequency = <0>;
index 6fb8299..4996b7d 100644 (file)
@@ -14,6 +14,7 @@
  */
 
 #include <linux/pci.h>
+#include <linux/of_platform.h>
 
 #include <asm/time.h>
 #include <asm/ipic.h>
@@ -75,6 +76,18 @@ static int __init mpc8313_rdb_probe(void)
        return of_flat_dt_is_compatible(root, "MPC8313ERDB");
 }
 
+static struct of_device_id __initdata of_bus_ids[] = {
+       { .compatible = "simple-bus" },
+       {},
+};
+
+static int __init declare_of_platform_devices(void)
+{
+       of_platform_bus_probe(NULL, of_bus_ids, NULL);
+       return 0;
+}
+machine_device_initcall(mpc8313_rdb, declare_of_platform_devices);
+
 define_machine(mpc8313_rdb) {
        .name                   = "MPC8313 RDB",
        .probe                  = mpc8313_rdb_probe,