Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / arch / arm / mach-ixp4xx / ixdp425-setup.c
index 77346c1..da72383 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/serial.h>
 #include <linux/tty.h>
 #include <linux/serial_8250.h>
+#include <linux/slab.h>
 
 #include <asm/types.h>
 #include <asm/setup.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/flash.h>
 
-void __init ixdp425_map_io(void) 
-{
-       ixp4xx_map_io();
-}
-
 static struct flash_platform_data ixdp425_flash_data = {
        .map_name       = "cfi_probe",
        .width          = 2,
 };
 
 static struct resource ixdp425_flash_resource = {
-       .start          = IXDP425_FLASH_BASE,
-       .end            = IXDP425_FLASH_BASE + IXDP425_FLASH_SIZE,
        .flags          = IORESOURCE_MEM,
 };
 
@@ -82,7 +76,7 @@ static struct plat_serial8250_port ixdp425_uart_data[] = {
                .mapbase        = IXP4XX_UART1_BASE_PHYS,
                .membase        = (char *)IXP4XX_UART1_BASE_VIRT + REG_OFFSET,
                .irq            = IRQ_IXP4XX_UART1,
-               .flags          = UPF_BOOT_AUTOCONF,
+               .flags          = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
                .iotype         = UPIO_MEM,
                .regshift       = 2,
                .uartclk        = IXP4XX_UART_XTAL,
@@ -90,17 +84,18 @@ static struct plat_serial8250_port ixdp425_uart_data[] = {
        {
                .mapbase        = IXP4XX_UART2_BASE_PHYS,
                .membase        = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET,
-               .irq            = IRQ_IXP4XX_UART1,
-               .flags          = UPF_BOOT_AUTOCONF,
+               .irq            = IRQ_IXP4XX_UART2,
+               .flags          = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
                .iotype         = UPIO_MEM,
                .regshift       = 2,
                .uartclk        = IXP4XX_UART_XTAL,
-       }
+       },
+       { },
 };
 
 static struct platform_device ixdp425_uart = {
        .name                   = "serial8250",
-       .id                     = 0,
+       .id                     = PLAT8250_DEV_PLATFORM,
        .dev.platform_data      = ixdp425_uart_data,
        .num_resources          = 2,
        .resource               = ixdp425_uart_resources
@@ -112,53 +107,55 @@ static struct platform_device *ixdp425_devices[] __initdata = {
        &ixdp425_uart
 };
 
-
 static void __init ixdp425_init(void)
 {
        ixp4xx_sys_init();
 
-       /*
-        * IXP465 has 32MB window
-        */
-       if (machine_is_ixdp465()) {
-               ixdp425_flash_resource.end += IXDP425_FLASH_SIZE;
-       }
+       ixdp425_flash_resource.start = IXP4XX_EXP_BUS_BASE(0);
+       ixdp425_flash_resource.end =
+               IXP4XX_EXP_BUS_BASE(0) + ixp4xx_exp_bus_size - 1;
 
        platform_add_devices(ixdp425_devices, ARRAY_SIZE(ixdp425_devices));
 }
 
+#ifdef CONFIG_ARCH_IXDP425
 MACHINE_START(IXDP425, "Intel IXDP425 Development Platform")
-       MAINTAINER("MontaVista Software, Inc.")
-       BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS,
-               IXP4XX_PERIPHERAL_BASE_VIRT)
-       MAPIO(ixdp425_map_io)
-       INITIRQ(ixp4xx_init_irq)
+       /* Maintainer: MontaVista Software, Inc. */
+       .phys_io        = IXP4XX_PERIPHERAL_BASE_PHYS,
+       .io_pg_offst    = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
+       .map_io         = ixp4xx_map_io,
+       .init_irq       = ixp4xx_init_irq,
        .timer          = &ixp4xx_timer,
-       BOOT_PARAMS(0x0100)
-       INIT_MACHINE(ixdp425_init)
+       .boot_params    = 0x0100,
+       .init_machine   = ixdp425_init,
 MACHINE_END
+#endif
 
+#ifdef CONFIG_MACH_IXDP465
 MACHINE_START(IXDP465, "Intel IXDP465 Development Platform")
-       MAINTAINER("MontaVista Software, Inc.")
-       BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS,
-               IXP4XX_PERIPHERAL_BASE_VIRT)
-       MAPIO(ixdp425_map_io)
-       INITIRQ(ixp4xx_init_irq)
+       /* Maintainer: MontaVista Software, Inc. */
+       .phys_io        = IXP4XX_PERIPHERAL_BASE_PHYS,
+       .io_pg_offst    = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
+       .map_io         = ixp4xx_map_io,
+       .init_irq       = ixp4xx_init_irq,
        .timer          = &ixp4xx_timer,
-       BOOT_PARAMS(0x0100)
-       INIT_MACHINE(ixdp425_init)
+       .boot_params    = 0x0100,
+       .init_machine   = ixdp425_init,
 MACHINE_END
+#endif
 
+#ifdef CONFIG_ARCH_PRPMC1100
 MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform")
-       MAINTAINER("MontaVista Software, Inc.")
-       BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS,
-               IXP4XX_PERIPHERAL_BASE_VIRT)
-       MAPIO(ixdp425_map_io)
-       INITIRQ(ixp4xx_init_irq)
+       /* Maintainer: MontaVista Software, Inc. */
+       .phys_io        = IXP4XX_PERIPHERAL_BASE_PHYS,
+       .io_pg_offst    = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
+       .map_io         = ixp4xx_map_io,
+       .init_irq       = ixp4xx_init_irq,
        .timer          = &ixp4xx_timer,
-       BOOT_PARAMS(0x0100)
-       INIT_MACHINE(ixdp425_init)
+       .boot_params    = 0x0100,
+       .init_machine   = ixdp425_init,
 MACHINE_END
+#endif
 
 /*
  * Avila is functionally equivalent to IXDP425 except that it adds
@@ -168,14 +165,14 @@ MACHINE_END
  */
 #ifdef CONFIG_ARCH_AVILA
 MACHINE_START(AVILA, "Gateworks Avila Network Platform")
-       MAINTAINER("Deepak Saxena <dsaxena@plexity.net>")
-       BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS,
-               IXP4XX_PERIPHERAL_BASE_VIRT)
-       MAPIO(ixdp425_map_io)
-       INITIRQ(ixp4xx_init_irq)
+       /* Maintainer: Deepak Saxena <dsaxena@plexity.net> */
+       .phys_io        = IXP4XX_PERIPHERAL_BASE_PHYS,
+       .io_pg_offst    = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
+       .map_io         = ixp4xx_map_io,
+       .init_irq       = ixp4xx_init_irq,
        .timer          = &ixp4xx_timer,
-       BOOT_PARAMS(0x0100)
-       INIT_MACHINE(ixdp425_init)
+       .boot_params    = 0x0100,
+       .init_machine   = ixdp425_init,
 MACHINE_END
 #endif