aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/83xx
diff options
context:
space:
mode:
authorAnton Vorontsov <avorontsov@ru.mvista.com>2008-05-23 12:39:01 -0400
committerKumar Gala <galak@kernel.crashing.org>2008-06-10 12:11:17 -0400
commitb13e930906b313d787f4dd07fe78b74a3a8c22c4 (patch)
tree96f88bf75f2c95bdbd36e4a43b80f9459a94b26f /arch/powerpc/platforms/83xx
parent32def337aafee0bc65eb58d5b1b3617525eb7fb7 (diff)
powerpc/83xx: new board support: MPC8360E-RDK
This is patch adds board file, device tree, and defconfig for the new board, made by Freescale Semiconductor Inc. and Logic Product Development. Currently supported: 1. UEC{1,2,7,4}; 2. I2C; 3. SPI; 4. NS16550 serial; 5. PCI and miniPCI; 6. Intel NOR StrataFlash X16 64Mbit PC28F640P30T85; 7. Graphics controller, Fujitsu MB86277. Not supported in this patch: 1. StMICRO NAND512W3A2BN6E, 512 Mbit (supported with FSL UPM NAND driver); 2. FHCI USB (supported with FHCI driver). 3. QE Serial UCCs (tested to not work with ucc_uart driver, reason unknown, yet); 4. ADC AD7843 (tested to work, but support via device tree depends on major SPI rework, GPIO API, etc); Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/platforms/83xx')
-rw-r--r--arch/powerpc/platforms/83xx/Kconfig11
-rw-r--r--arch/powerpc/platforms/83xx/Makefile1
-rw-r--r--arch/powerpc/platforms/83xx/mpc836x_rdk.c102
3 files changed, 114 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/83xx/Kconfig b/arch/powerpc/platforms/83xx/Kconfig
index 583b0c7409c9..fe75b2ac3c9f 100644
--- a/arch/powerpc/platforms/83xx/Kconfig
+++ b/arch/powerpc/platforms/83xx/Kconfig
@@ -58,6 +58,17 @@ config MPC836x_MDS
58 help 58 help
59 This option enables support for the MPC836x MDS Processor Board. 59 This option enables support for the MPC836x MDS Processor Board.
60 60
61config MPC836x_RDK
62 bool "Freescale/Logic MPC836x RDK"
63 select DEFAULT_UIMAGE
64 select QUICC_ENGINE
65 select QE_GPIO
66 select FSL_GTM
67 select FSL_LBC
68 help
69 This option enables support for the MPC836x RDK Processor Board,
70 also known as ZOOM PowerQUICC Kit.
71
61config MPC837x_MDS 72config MPC837x_MDS
62 bool "Freescale MPC837x MDS" 73 bool "Freescale MPC837x MDS"
63 select DEFAULT_UIMAGE 74 select DEFAULT_UIMAGE
diff --git a/arch/powerpc/platforms/83xx/Makefile b/arch/powerpc/platforms/83xx/Makefile
index 76494bed69ae..f331fd7dd836 100644
--- a/arch/powerpc/platforms/83xx/Makefile
+++ b/arch/powerpc/platforms/83xx/Makefile
@@ -8,6 +8,7 @@ obj-$(CONFIG_MPC832x_RDB) += mpc832x_rdb.o
8obj-$(CONFIG_MPC834x_MDS) += mpc834x_mds.o 8obj-$(CONFIG_MPC834x_MDS) += mpc834x_mds.o
9obj-$(CONFIG_MPC834x_ITX) += mpc834x_itx.o 9obj-$(CONFIG_MPC834x_ITX) += mpc834x_itx.o
10obj-$(CONFIG_MPC836x_MDS) += mpc836x_mds.o 10obj-$(CONFIG_MPC836x_MDS) += mpc836x_mds.o
11obj-$(CONFIG_MPC836x_RDK) += mpc836x_rdk.o
11obj-$(CONFIG_MPC832x_MDS) += mpc832x_mds.o 12obj-$(CONFIG_MPC832x_MDS) += mpc832x_mds.o
12obj-$(CONFIG_MPC837x_MDS) += mpc837x_mds.o 13obj-$(CONFIG_MPC837x_MDS) += mpc837x_mds.o
13obj-$(CONFIG_SBC834x) += sbc834x.o 14obj-$(CONFIG_SBC834x) += sbc834x.o
diff --git a/arch/powerpc/platforms/83xx/mpc836x_rdk.c b/arch/powerpc/platforms/83xx/mpc836x_rdk.c
new file mode 100644
index 000000000000..c10dec4bf178
--- /dev/null
+++ b/arch/powerpc/platforms/83xx/mpc836x_rdk.c
@@ -0,0 +1,102 @@
1/*
2 * MPC8360E-RDK board file.
3 *
4 * Copyright (c) 2006 Freescale Semicondutor, Inc.
5 * Copyright (c) 2007-2008 MontaVista Software, Inc.
6 *
7 * Author: Anton Vorontsov <avorontsov@ru.mvista.com>
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version.
13 */
14
15#include <linux/kernel.h>
16#include <linux/pci.h>
17#include <linux/of_platform.h>
18#include <linux/io.h>
19#include <asm/prom.h>
20#include <asm/time.h>
21#include <asm/ipic.h>
22#include <asm/udbg.h>
23#include <asm/qe.h>
24#include <asm/qe_ic.h>
25#include <sysdev/fsl_soc.h>
26
27#include "mpc83xx.h"
28
29static struct of_device_id __initdata mpc836x_rdk_ids[] = {
30 { .compatible = "simple-bus", },
31 {},
32};
33
34static int __init mpc836x_rdk_declare_of_platform_devices(void)
35{
36 return of_platform_bus_probe(NULL, mpc836x_rdk_ids, NULL);
37}
38machine_device_initcall(mpc836x_rdk, mpc836x_rdk_declare_of_platform_devices);
39
40static void __init mpc836x_rdk_setup_arch(void)
41{
42#ifdef CONFIG_PCI
43 struct device_node *np;
44#endif
45
46 if (ppc_md.progress)
47 ppc_md.progress("mpc836x_rdk_setup_arch()", 0);
48
49#ifdef CONFIG_PCI
50 for_each_compatible_node(np, "pci", "fsl,mpc8349-pci")
51 mpc83xx_add_bridge(np);
52#endif
53
54 qe_reset();
55}
56
57static void __init mpc836x_rdk_init_IRQ(void)
58{
59 struct device_node *np;
60
61 np = of_find_compatible_node(NULL, NULL, "fsl,ipic");
62 if (!np)
63 return;
64
65 ipic_init(np, 0);
66
67 /*
68 * Initialize the default interrupt mapping priorities,
69 * in case the boot rom changed something on us.
70 */
71 ipic_set_default_priority();
72 of_node_put(np);
73
74 np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
75 if (!np)
76 return;
77
78 qe_ic_init(np, 0, qe_ic_cascade_low_ipic, qe_ic_cascade_high_ipic);
79 of_node_put(np);
80}
81
82/*
83 * Called very early, MMU is off, device-tree isn't unflattened.
84 */
85static int __init mpc836x_rdk_probe(void)
86{
87 unsigned long root = of_get_flat_dt_root();
88
89 return of_flat_dt_is_compatible(root, "fsl,mpc8360rdk");
90}
91
92define_machine(mpc836x_rdk) {
93 .name = "MPC836x RDK",
94 .probe = mpc836x_rdk_probe,
95 .setup_arch = mpc836x_rdk_setup_arch,
96 .init_IRQ = mpc836x_rdk_init_IRQ,
97 .get_irq = ipic_get_irq,
98 .restart = mpc83xx_restart,
99 .time_init = mpc83xx_time_init,
100 .calibrate_decr = generic_calibrate_decr,
101 .progress = udbg_progress,
102};