summaryrefslogtreecommitdiff
path: root/arch/powerpc/platforms/85xx/corenet_ds.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/platforms/85xx/corenet_ds.c')
-rw-r--r--arch/powerpc/platforms/85xx/corenet_ds.c49
1 files changed, 46 insertions, 3 deletions
diff --git a/arch/powerpc/platforms/85xx/corenet_ds.c b/arch/powerpc/platforms/85xx/corenet_ds.c
index c59c617..004ffb4 100644
--- a/arch/powerpc/platforms/85xx/corenet_ds.c
+++ b/arch/powerpc/platforms/85xx/corenet_ds.c
@@ -5,8 +5,8 @@
*
* Copyright 2009-2011 Freescale Semiconductor Inc.
*
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*/
@@ -31,6 +31,8 @@
#include <sysdev/fsl_pci.h>
#include "smp.h"
+#include <linux/fsl_usdpaa.h>
+
void __init corenet_ds_pic_init(void)
{
struct mpic *mpic;
@@ -66,7 +68,19 @@ void __init corenet_ds_setup_arch(void)
static const struct of_device_id of_device_ids[] = {
{
- .compatible = "simple-bus"
+ .compatible = "simple-bus",
+ },
+ {
+ .compatible = "fsl,dpaa",
+ },
+ {
+ .compatible = "mdio-mux-gpio",
+ },
+ {
+ .compatible = "fsl,fpga-ngpixis",
+ },
+ {
+ .compatible = "fsl,fpga-qixis",
},
{
.compatible = "fsl,srio",
@@ -100,3 +114,32 @@ int __init corenet_ds_publish_devices(void)
{
return of_platform_bus_probe(NULL, of_device_ids, NULL);
}
+
+/* Early setup is required for large chunks of contiguous (and coarsely-aligned)
+ * memory. The following shoe-horns Q/Bman "init_early" calls into the
+ * platform setup to let them parse their CCSR nodes early on. */
+#ifdef CONFIG_FSL_QMAN_CONFIG
+void __init qman_init_early(void);
+#endif
+#ifdef CONFIG_FSL_BMAN_CONFIG
+void __init bman_init_early(void);
+#endif
+#ifdef CONFIG_FSL_PME2_CTRL
+void __init pme2_init_early(void);
+#endif
+
+__init void corenet_ds_init_early(void)
+{
+#ifdef CONFIG_FSL_QMAN_CONFIG
+ qman_init_early();
+#endif
+#ifdef CONFIG_FSL_BMAN_CONFIG
+ bman_init_early();
+#endif
+#ifdef CONFIG_FSL_PME2_CTRL
+ pme2_init_early();
+#endif
+#ifdef CONFIG_FSL_USDPAA
+ fsl_usdpaa_init_early();
+#endif
+}