diff options
author | Hugh Blemings <hugh@blemings.org> | 2007-12-20 23:39:28 -0500 |
---|---|---|
committer | Josh Boyer <jwboyer@linux.vnet.ibm.com> | 2007-12-23 14:13:33 -0500 |
commit | 6bbc5476298a3dd46a7a19c2af03778b094acb15 (patch) | |
tree | d88cbb289b92195f079d62f3695224b09865e855 /arch/powerpc/platforms/44x | |
parent | 379865d63cb97f8e8241724aae48e795a6b7cb10 (diff) |
[POWERPC] 4xx: Base support for 440GX Taishan eval board
This patch adds base support for the AMCC Taishan 440GX evaluation
board.
Signed-off-by: Hugh Blemings <hugh@blemings.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Diffstat (limited to 'arch/powerpc/platforms/44x')
-rw-r--r-- | arch/powerpc/platforms/44x/Kconfig | 14 | ||||
-rw-r--r-- | arch/powerpc/platforms/44x/Makefile | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/44x/taishan.c | 74 |
3 files changed, 89 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig index f65fa10ef427..1bf042498f6e 100644 --- a/arch/powerpc/platforms/44x/Kconfig +++ b/arch/powerpc/platforms/44x/Kconfig | |||
@@ -23,6 +23,16 @@ config SEQUOIA | |||
23 | help | 23 | help |
24 | This option enables support for the AMCC PPC440EPX evaluation board. | 24 | This option enables support for the AMCC PPC440EPX evaluation board. |
25 | 25 | ||
26 | config TAISHAN | ||
27 | bool "Taishan" | ||
28 | depends on 44x | ||
29 | default n | ||
30 | select 440GX | ||
31 | select PCI | ||
32 | help | ||
33 | This option enables support for the AMCC PPC440GX "Taishan" | ||
34 | evaluation board. | ||
35 | |||
26 | #config LUAN | 36 | #config LUAN |
27 | # bool "Luan" | 37 | # bool "Luan" |
28 | # depends on 44x | 38 | # depends on 44x |
@@ -59,6 +69,10 @@ config 440GP | |||
59 | 69 | ||
60 | config 440GX | 70 | config 440GX |
61 | bool | 71 | bool |
72 | select IBM_NEW_EMAC_EMAC4 | ||
73 | select IBM_NEW_EMAC_RGMII | ||
74 | select IBM_NEW_EMAC_ZMII #test only | ||
75 | select IBM_NEW_EMAC_TAH #test only | ||
62 | 76 | ||
63 | config 440SP | 77 | config 440SP |
64 | bool | 78 | bool |
diff --git a/arch/powerpc/platforms/44x/Makefile b/arch/powerpc/platforms/44x/Makefile index 10ce6740cc7d..8b05589471d2 100644 --- a/arch/powerpc/platforms/44x/Makefile +++ b/arch/powerpc/platforms/44x/Makefile | |||
@@ -1,4 +1,5 @@ | |||
1 | obj-$(CONFIG_44x) := misc_44x.o | 1 | obj-$(CONFIG_44x) := misc_44x.o |
2 | obj-$(CONFIG_EBONY) += ebony.o | 2 | obj-$(CONFIG_EBONY) += ebony.o |
3 | obj-$(CONFIG_TAISHAN) += taishan.o | ||
3 | obj-$(CONFIG_BAMBOO) += bamboo.o | 4 | obj-$(CONFIG_BAMBOO) += bamboo.o |
4 | obj-$(CONFIG_SEQUOIA) += sequoia.o | 5 | obj-$(CONFIG_SEQUOIA) += sequoia.o |
diff --git a/arch/powerpc/platforms/44x/taishan.c b/arch/powerpc/platforms/44x/taishan.c new file mode 100644 index 000000000000..e3b7c7023336 --- /dev/null +++ b/arch/powerpc/platforms/44x/taishan.c | |||
@@ -0,0 +1,74 @@ | |||
1 | /* | ||
2 | * Taishan board specific routines based off ebony.c code | ||
3 | * original copyrights below | ||
4 | * | ||
5 | * Matt Porter <mporter@kernel.crashing.org> | ||
6 | * Copyright 2002-2005 MontaVista Software Inc. | ||
7 | * | ||
8 | * Eugene Surovegin <eugene.surovegin@zultys.com> or <ebs@ebshome.net> | ||
9 | * Copyright (c) 2003-2005 Zultys Technologies | ||
10 | * | ||
11 | * Rewritten and ported to the merged powerpc tree: | ||
12 | * Copyright 2007 David Gibson <dwg@au1.ibm.com>, IBM Corporation. | ||
13 | * | ||
14 | * Modified from ebony.c for taishan: | ||
15 | * Copyright 2007 Hugh Blemings <hugh@au.ibm.com>, IBM Corporation. | ||
16 | * | ||
17 | * This program is free software; you can redistribute it and/or modify it | ||
18 | * under the terms of the GNU General Public License as published by the | ||
19 | * Free Software Foundation; either version 2 of the License, or (at your | ||
20 | * option) any later version. | ||
21 | */ | ||
22 | |||
23 | #include <linux/init.h> | ||
24 | #include <linux/of_platform.h> | ||
25 | |||
26 | #include <asm/machdep.h> | ||
27 | #include <asm/prom.h> | ||
28 | #include <asm/udbg.h> | ||
29 | #include <asm/time.h> | ||
30 | #include <asm/uic.h> | ||
31 | #include <asm/pci-bridge.h> | ||
32 | |||
33 | #include "44x.h" | ||
34 | |||
35 | static struct of_device_id taishan_of_bus[] = { | ||
36 | { .compatible = "ibm,plb4", }, | ||
37 | { .compatible = "ibm,opb", }, | ||
38 | { .compatible = "ibm,ebc", }, | ||
39 | {}, | ||
40 | }; | ||
41 | |||
42 | static int __init taishan_device_probe(void) | ||
43 | { | ||
44 | if (!machine_is(taishan)) | ||
45 | return 0; | ||
46 | |||
47 | of_platform_bus_probe(NULL, taishan_of_bus, NULL); | ||
48 | |||
49 | return 0; | ||
50 | } | ||
51 | device_initcall(taishan_device_probe); | ||
52 | |||
53 | /* | ||
54 | * Called very early, MMU is off, device-tree isn't unflattened | ||
55 | */ | ||
56 | static int __init taishan_probe(void) | ||
57 | { | ||
58 | unsigned long root = of_get_flat_dt_root(); | ||
59 | |||
60 | if (!of_flat_dt_is_compatible(root, "amcc,taishan")) | ||
61 | return 0; | ||
62 | |||
63 | return 1; | ||
64 | } | ||
65 | |||
66 | define_machine(taishan) { | ||
67 | .name = "Taishan", | ||
68 | .probe = taishan_probe, | ||
69 | .progress = udbg_progress, | ||
70 | .init_IRQ = uic_init_tree, | ||
71 | .get_irq = uic_get_irq, | ||
72 | .restart = ppc44x_reset_system, | ||
73 | .calibrate_decr = generic_calibrate_decr, | ||
74 | }; | ||