[POWERPC] Walnut board support
authorJosh Boyer <jwboyer@linux.vnet.ibm.com>
Fri, 7 Sep 2007 12:51:24 +0000 (07:51 -0500)
committerJosh Boyer <jwboyer@linux.vnet.ibm.com>
Fri, 7 Sep 2007 12:51:24 +0000 (07:51 -0500)
Board support for the PPC405 Walnut evaluation board

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
arch/powerpc/platforms/40x/Kconfig
arch/powerpc/platforms/40x/Makefile
arch/powerpc/platforms/40x/walnut.c [new file with mode: 0644]
arch/powerpc/platforms/Kconfig
arch/powerpc/platforms/Makefile

index 2cc7343b468c9196818f2a874f2bb25af6a73ba7..c3dce3b3d5240389640f2d49239677b7fdfdf7d7 100644 (file)
 #      help
 #        This option enables support for the IBM PPC405GPr evaluation board.
 
-#config WALNUT
-#      bool "Walnut"
-#      depends on 40x
-#      default y
-#      select 405GP
-#      help
-#        This option enables support for the IBM PPC405GP evaluation board.
+config WALNUT
+       bool "Walnut"
+       depends on 40x
+       default y
+       select 405GP
+       help
+         This option enables support for the IBM PPC405GP evaluation board.
 
 #config XILINX_ML300
 #      bool "Xilinx-ML300"
index 79ff6b1e887cb1220b3f4e4602fce23189ecdb43..e6c0bbd063a444be65f186fffc519d0d3e9f2bd9 100644 (file)
@@ -1 +1 @@
-# empty makefile so make clean works
\ No newline at end of file
+obj-$(CONFIG_WALNUT) += walnut.o
diff --git a/arch/powerpc/platforms/40x/walnut.c b/arch/powerpc/platforms/40x/walnut.c
new file mode 100644 (file)
index 0000000..c17fdf2
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Architecture- / platform-specific boot-time initialization code for
+ * IBM PowerPC 4xx based boards. Adapted from original
+ * code by Gary Thomas, Cort Dougan <cort@fsmlabs.com>, and Dan Malek
+ * <dan@net4x.com>.
+ *
+ * Copyright(c) 1999-2000 Grant Erickson <grant@lcse.umn.edu>
+ *
+ * Rewritten and ported to the merged powerpc tree:
+ * Copyright 2007 IBM Corporation
+ * Josh Boyer <jwboyer@linux.vnet.ibm.com>
+ *
+ * 2002 (c) MontaVista, Software, Inc.  This file is licensed under
+ * the terms of the GNU General Public License version 2.  This program
+ * is licensed "as is" without any warranty of any kind, whether express
+ * or implied.
+ */
+
+#include <linux/init.h>
+#include <asm/machdep.h>
+#include <asm/prom.h>
+#include <asm/udbg.h>
+#include <asm/time.h>
+#include <asm/uic.h>
+#include <asm/of_platform.h>
+
+static struct of_device_id walnut_of_bus[] = {
+       { .compatible = "ibm,plb3", },
+       { .compatible = "ibm,opb", },
+       { .compatible = "ibm,ebc", },
+       {},
+};
+
+static int __init walnut_device_probe(void)
+{
+       if (!machine_is(walnut))
+               return 0;
+
+       /* FIXME: do bus probe here */
+       of_platform_bus_probe(NULL, walnut_of_bus, NULL);
+
+       return 0;
+}
+device_initcall(walnut_device_probe);
+
+static int __init walnut_probe(void)
+{
+       unsigned long root = of_get_flat_dt_root();
+
+       if (!of_flat_dt_is_compatible(root, "ibm,walnut"))
+               return 0;
+
+       return 1;
+}
+
+static void __init walnut_setup_arch(void)
+{
+}
+
+define_machine(walnut) {
+       .name                   = "Walnut",
+       .probe                  = walnut_probe,
+       .setup_arch             = walnut_setup_arch,
+       .progress               = udbg_progress,
+       .init_IRQ               = uic_init_tree,
+       .get_irq                = uic_get_irq,
+       .calibrate_decr = generic_calibrate_decr,
+};
index 041df77ec11779c9a294e29c32e37f4522e1bb09..8eb8d400ecb2ea2f01b4ba5f238795ae05212887 100644 (file)
@@ -59,7 +59,7 @@ source "arch/powerpc/platforms/85xx/Kconfig"
 source "arch/powerpc/platforms/86xx/Kconfig"
 source "arch/powerpc/platforms/embedded6xx/Kconfig"
 source "arch/powerpc/platforms/44x/Kconfig"
-#source "arch/powerpc/platforms/4xx/Kconfig
+source "arch/powerpc/platforms/40x/Kconfig"
 
 config PPC_NATIVE
        bool
index d44e832b01f2c0b3bb782c64161ade8842f6750f..6d9079da5f5a917c9357faa19f22300dab43f178 100644 (file)
@@ -9,7 +9,7 @@ obj-$(CONFIG_PPC_PMAC)          += powermac/
 endif
 endif
 obj-$(CONFIG_PPC_CHRP)         += chrp/
-#obj-$(CONFIG_4xx)             += 4xx/
+obj-$(CONFIG_40x)              += 40x/
 obj-$(CONFIG_44x)              += 44x/
 obj-$(CONFIG_PPC_MPC52xx)      += 52xx/
 obj-$(CONFIG_PPC_8xx)          += 8xx/