Merge branch 'origin'
[pandora-kernel.git] / arch / arm / mach-ixp2000 / ixdp2x01.c
index 7a51099..150519f 100644 (file)
@@ -29,7 +29,7 @@
 #include <linux/serial.h>
 #include <linux/tty.h>
 #include <linux/serial_core.h>
-#include <linux/device.h>
+#include <linux/platform_device.h>
 
 #include <asm/io.h>
 #include <asm/irq.h>
@@ -51,7 +51,7 @@
  *************************************************************************/
 static void ixdp2x01_irq_mask(unsigned int irq)
 {
-       ixp2000_reg_write(IXDP2X01_INT_MASK_SET_REG,
+       ixp2000_reg_wrb(IXDP2X01_INT_MASK_SET_REG,
                                IXP2000_BOARD_IRQ_MASK(irq));
 }
 
@@ -114,7 +114,7 @@ void __init ixdp2x01_init_irq(void)
 
        /* Mask all interrupts from CPLD, disable simulation */
        ixp2000_reg_write(IXDP2X01_INT_MASK_SET_REG, 0xffffffff);
-       ixp2000_reg_write(IXDP2X01_INT_SIM_REG, 0);
+       ixp2000_reg_wrb(IXDP2X01_INT_SIM_REG, 0);
 
        for (irq = NR_IXP2000_IRQS; irq < NR_IXDP2X01_IRQS; irq++) {
                if (irq & valid_irq_mask) {
@@ -136,7 +136,7 @@ void __init ixdp2x01_init_irq(void)
  *************************************************************************/
 static struct map_desc ixdp2x01_io_desc __initdata = {
        .virtual        = IXDP2X01_VIRT_CPLD_BASE, 
-       .physical       = IXDP2X01_PHYS_CPLD_BASE,
+       .pfn            = __phys_to_pfn(IXDP2X01_PHYS_CPLD_BASE),
        .length         = IXDP2X01_CPLD_REGION_SIZE,
        .type           = MT_DEVICE
 };
@@ -212,6 +212,7 @@ void __init ixdp2x01_pci_preinit(void)
 {
        ixp2000_reg_write(IXP2000_PCI_ADDR_EXT, 0x00000000);
        ixp2000_pci_preinit();
+       pcibios_setup("firmware");
 }
 
 #define DEVPIN(dev, pin) ((pin) | ((dev) << 3))
@@ -299,8 +300,9 @@ struct hw_pci ixdp2x01_pci __initdata = {
 
 int __init ixdp2x01_pci_init(void)
 {
+       if (machine_is_ixdp2401() || machine_is_ixdp2801())
+               pci_common_init(&ixdp2x01_pci);
 
-       pci_common_init(&ixdp2x01_pci);
        return 0;
 }
 
@@ -316,7 +318,7 @@ static struct flash_platform_data ixdp2x01_flash_platform_data = {
 
 static unsigned long ixdp2x01_flash_bank_setup(unsigned long ofs)
 {
-       ixp2000_reg_write(IXDP2X01_CPLD_FLASH_REG,
+       ixp2000_reg_wrb(IXDP2X01_CPLD_FLASH_REG,
                ((ofs >> IXDP2X01_FLASH_WINDOW_BITS) | IXDP2X01_CPLD_FLASH_INTERN));
        return (ofs & IXDP2X01_FLASH_WINDOW_MASK);
 }
@@ -363,7 +365,7 @@ static struct platform_device *ixdp2x01_devices[] __initdata = {
 
 static void __init ixdp2x01_init_machine(void)
 {
-       ixp2000_reg_write(IXDP2X01_CPLD_FLASH_REG,
+       ixp2000_reg_wrb(IXDP2X01_CPLD_FLASH_REG,
                (IXDP2X01_CPLD_FLASH_BANK_MASK | IXDP2X01_CPLD_FLASH_INTERN));
        
        ixdp2x01_flash_data.nr_banks =
@@ -377,7 +379,6 @@ static void __init ixdp2x01_init_machine(void)
 #ifdef CONFIG_ARCH_IXDP2401
 MACHINE_START(IXDP2401, "Intel IXDP2401 Development Platform")
        /* Maintainer: MontaVista Software, Inc. */
-       .phys_ram       = 0x00000000,
        .phys_io        = IXP2000_UART_PHYS_BASE,
        .io_pg_offst    = ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
        .boot_params    = 0x00000100,
@@ -391,7 +392,6 @@ MACHINE_END
 #ifdef CONFIG_ARCH_IXDP2801
 MACHINE_START(IXDP2801, "Intel IXDP2801 Development Platform")
        /* Maintainer: MontaVista Software, Inc. */
-       .phys_ram       = 0x00000000,
        .phys_io        = IXP2000_UART_PHYS_BASE,
        .io_pg_offst    = ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
        .boot_params    = 0x00000100,