summary refs log tree commit diff
path: root/arch/arm/mach-ixp2000
diff options
context:
space:
mode:
authorDeepak Saxena <dsaxena@plexity.net>2006-03-20 17:10:08 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-03-21 22:06:06 +0000
commit0328ad23cfd8a0501f44a1b83e49d5b0e47e2b3c (patch)
tree6cf4b72c6a243a1848c26bd548370ed794bfe065 /arch/arm/mach-ixp2000
parent3fc3e1c0640887f883c28330e9d35145d23b2696 (diff)
downloadlinux-0328ad23cfd8a0501f44a1b83e49d5b0e47e2b3c.tar.gz
[ARM] 3334/1: Add support for IXDP28x5 platforms
Patch from Deepak Saxena

This patch adds support for Intel's IXDP28x5 platform. This
is just and IXDP2801 with a new CPU rev but the bootloader
has been updated to reflect a new machine ID so we just build
support for it by default when we build IXDP2801.

Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-ixp2000')
-rw-r--r--arch/arm/mach-ixp2000/Kconfig9
-rw-r--r--arch/arm/mach-ixp2000/ixdp2x01.c20
2 files changed, 25 insertions, 4 deletions
diff --git a/arch/arm/mach-ixp2000/Kconfig b/arch/arm/mach-ixp2000/Kconfig
index ecb58d83478e..86f53f8ccbf5 100644
--- a/arch/arm/mach-ixp2000/Kconfig
+++ b/arch/arm/mach-ixp2000/Kconfig
@@ -43,12 +43,17 @@ config ARCH_IXDP2401
 	  this platform, see <file:Documentation/arm/IXP2000>.
 
 config ARCH_IXDP2801
-	bool "Support Intel IXDP2801"
+	bool "Support Intel IXDP2801 and IXDP28x5"
 	help
 	  Say 'Y' here if you want your kernel to support the Intel
-	  IXDP2801 reference platform. For more information on
+	  IXDP2801/2805/2855 reference platforms. For more information on
 	  this platform, see <file:Documentation/arm/IXP2000>.
 
+config MACH_IXDP28X5
+	bool
+	depends on ARCH_IXDP2801
+	default y
+
 config ARCH_IXDP2X01
 	bool
 	depends on ARCH_IXDP2401 || ARCH_IXDP2801
diff --git a/arch/arm/mach-ixp2000/ixdp2x01.c b/arch/arm/mach-ixp2000/ixdp2x01.c
index 150519fb38ec..f9d4968c1d66 100644
--- a/arch/arm/mach-ixp2000/ixdp2x01.c
+++ b/arch/arm/mach-ixp2000/ixdp2x01.c
@@ -284,7 +284,7 @@ static int ixdp2x01_pci_setup(int nr, struct pci_sys_data *sys)
 {
 	sys->mem_offset = 0xe0000000;
 
-	if (machine_is_ixdp2801())
+	if (machine_is_ixdp2801() || machine_is_ixdp28x5())
 		sys->mem_offset -= ((*IXP2000_PCI_ADDR_EXT & 0xE000) << 16);
 
 	return ixp2000_pci_setup(nr, sys);
@@ -300,7 +300,8 @@ struct hw_pci ixdp2x01_pci __initdata = {
 
 int __init ixdp2x01_pci_init(void)
 {
-	if (machine_is_ixdp2401() || machine_is_ixdp2801())
+	if (machine_is_ixdp2401() || machine_is_ixdp2801() ||\
+		machine_is_ixdp28x5())
 		pci_common_init(&ixdp2x01_pci);
 
 	return 0;
@@ -400,6 +401,21 @@ MACHINE_START(IXDP2801, "Intel IXDP2801 Development Platform")
 	.timer		= &ixdp2x01_timer,
 	.init_machine	= ixdp2x01_init_machine,
 MACHINE_END
+
+/*
+ * IXDP28x5 is basically an IXDP2801 with a different CPU but Intel
+ * changed the machine ID in the bootloader
+ */
+MACHINE_START(IXDP28X5, "Intel IXDP2805/2855 Development Platform")
+	/* Maintainer: MontaVista Software, Inc. */
+	.phys_io	= IXP2000_UART_PHYS_BASE,
+	.io_pg_offst	= ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
+	.boot_params	= 0x00000100,
+	.map_io		= ixdp2x01_map_io,
+	.init_irq	= ixdp2x01_init_irq,
+	.timer		= &ixdp2x01_timer,
+	.init_machine	= ixdp2x01_init_machine,
+MACHINE_END
 #endif