[ARM] msm: clean up iomap and devices
authorBrian Swetland <swetland@google.com>
Wed, 10 Sep 2008 21:00:53 +0000 (14:00 -0700)
committerBrian Swetland <swetland@google.com>
Wed, 22 Oct 2008 09:40:59 +0000 (02:40 -0700)
- Add some more peripherals (sdcc, etc) to the iomap.
- Remove virtual base addresses for devices that we should be passing
  physical addresses to drivers via resources and ioremap()ing.
- don't try to use uarts for ll debug once the mmu is enabled due to
  problems with the peripheral window
- make base addresses void __iomem * and fixup irq.c and timer.c
- Remove common.c and bring in devices.c/devices.h similar to
  the PXA architecture.

Signed-off-by: Brian Swetland <swetland@google.com>
arch/arm/mach-msm/Makefile
arch/arm/mach-msm/board-halibut.c
arch/arm/mach-msm/common.c [deleted file]
arch/arm/mach-msm/devices.c [new file with mode: 0644]
arch/arm/mach-msm/devices.h [new file with mode: 0644]
arch/arm/mach-msm/include/mach/debug-macro.S
arch/arm/mach-msm/include/mach/msm_iomap.h
arch/arm/mach-msm/io.c
arch/arm/mach-msm/irq.c
arch/arm/mach-msm/timer.c

index ae96fff..d4d1dea 100644 (file)
@@ -1,8 +1,6 @@
 obj-y += io.o idle.o irq.o timer.o dma.o
+obj-y += devices.o
 obj-y += proc_comm.o
 
-# Common code for board init
-obj-y += common.o
-
 obj-$(CONFIG_MACH_HALIBUT) += board-halibut.o
 
index a242591..b263783 100644 (file)
@@ -33,6 +33,8 @@
 #include <linux/mtd/nand.h>
 #include <linux/mtd/partitions.h>
 
+#include "devices.h"
+
 static struct resource smc91x_resources[] = {
        [0] = {
                .start  = 0x9C004300,
@@ -53,31 +55,12 @@ static struct platform_device smc91x_device = {
        .resource       = smc91x_resources,
 };
 
-static void mddi0_panel_power(int on)
-{
-}
-
-static struct msm_mddi_platform_data msm_mddi0_pdata = {
-       .panel_power    = mddi0_panel_power,
-       .has_vsync_irq  = 0,
-};
-
-static struct platform_device msm_mddi0_device = {
-       .name   = "msm_mddi",
-       .id     = 0,
-       .dev    = {
-               .platform_data = &msm_mddi0_pdata
-       },
-};
-
-static struct platform_device msm_serial0_device = {
-       .name   = "msm_serial",
-       .id     = 0,
-};
-
 static struct platform_device *devices[] __initdata = {
-       &msm_serial0_device,
-       &msm_mddi0_device,
+       &msm_device_uart3,
+       &msm_device_smd,
+       &msm_device_nand,
+       &msm_device_hsusb,
+       &msm_device_i2c,
        &smc91x_device,
 };
 
@@ -91,7 +74,6 @@ static void __init halibut_init_irq(void)
 static void __init halibut_init(void)
 {
        platform_add_devices(devices, ARRAY_SIZE(devices));
-       msm_add_devices();
 }
 
 static void __init halibut_map_io(void)
@@ -100,11 +82,6 @@ static void __init halibut_map_io(void)
 }
 
 MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)")
-
-/* UART for LL DEBUG */
-       .phys_io        = MSM_UART1_PHYS,
-       .io_pg_offst    = ((MSM_UART1_BASE) >> 18) & 0xfffc,
-
        .boot_params    = 0x10000100,
        .map_io         = halibut_map_io,
        .init_irq       = halibut_init_irq,
diff --git a/arch/arm/mach-msm/common.c b/arch/arm/mach-msm/common.c
deleted file mode 100644 (file)
index 604f8ad..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/* linux/arch/arm/mach-msm/common.c
- *
- * Common setup code for MSM7K Boards
- *
- * Copyright (C) 2007 Google, Inc.
- * Author: Brian Swetland <swetland@google.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- */
-
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/io.h>
-
-#include <asm/mach/flash.h>
-
-#include <asm/setup.h>
-
-#include <linux/mtd/nand.h>
-#include <linux/mtd/partitions.h>
-
-#include <mach/msm_iomap.h>
-
-#include <mach/board.h>
-
-struct flash_platform_data msm_nand_data = {
-       .parts          = 0,
-       .nr_parts       = 0,
-};
-
-static struct resource msm_nand_resources[] = {
-       [0] = {
-               .start  = 7,
-               .end    = 7,
-               .flags  = IORESOURCE_DMA,
-       },
-};
-
-static struct platform_device msm_nand_device = {
-       .name           = "msm_nand",
-       .id             = -1,
-       .num_resources  = ARRAY_SIZE(msm_nand_resources),
-       .resource       = msm_nand_resources,
-       .dev            = {
-               .platform_data  = &msm_nand_data,
-       },
-};
-
-static struct platform_device msm_smd_device = {
-       .name   = "msm_smd",
-       .id     = -1,
-};
-
-static struct resource msm_i2c_resources[] = {
-       {
-               .start  = MSM_I2C_BASE,
-               .end    = MSM_I2C_BASE + MSM_I2C_SIZE - 1,
-               .flags  = IORESOURCE_MEM,
-       },
-       {
-               .start  = INT_PWB_I2C,
-               .end    = INT_PWB_I2C,
-               .flags  = IORESOURCE_IRQ,
-       },
-};
-
-static struct platform_device msm_i2c_device = {
-       .name           = "msm_i2c",
-       .id             = 0,
-       .num_resources  = ARRAY_SIZE(msm_i2c_resources),
-       .resource       = msm_i2c_resources,
-};
-
-static struct resource usb_resources[] = {
-       {
-               .start  = MSM_HSUSB_PHYS,
-               .end    = MSM_HSUSB_PHYS + MSM_HSUSB_SIZE,
-               .flags  = IORESOURCE_MEM,
-       },
-       {
-               .start  = INT_USB_HS,
-               .end    = INT_USB_HS,
-               .flags  = IORESOURCE_IRQ,
-       },
-};
-
-static struct platform_device msm_hsusb_device = {
-       .name           = "msm_hsusb",
-       .id             = -1,
-       .num_resources  = ARRAY_SIZE(usb_resources),
-       .resource       = usb_resources,
-       .dev            = {
-               .coherent_dma_mask      = 0xffffffff,
-       },
-};
-
-static struct platform_device *devices[] __initdata = {
-       &msm_nand_device,
-       &msm_smd_device,
-       &msm_i2c_device,
-       &msm_hsusb_device,
-};
-
-void __init msm_add_devices(void)
-{
-       platform_add_devices(devices, ARRAY_SIZE(devices));
-}
diff --git a/arch/arm/mach-msm/devices.c b/arch/arm/mach-msm/devices.c
new file mode 100644 (file)
index 0000000..f2a74b9
--- /dev/null
@@ -0,0 +1,267 @@
+/* linux/arch/arm/mach-msm/devices.c
+ *
+ * Copyright (C) 2008 Google, Inc.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/platform_device.h>
+
+#include <mach/msm_iomap.h>
+#include "devices.h"
+
+#include <asm/mach/flash.h>
+#include <linux/mtd/nand.h>
+#include <linux/mtd/partitions.h>
+
+static struct resource resources_uart1[] = {
+       {
+               .start  = INT_UART1,
+               .end    = INT_UART1,
+               .flags  = IORESOURCE_IRQ,
+       },
+       {
+               .start  = MSM_UART1_PHYS,
+               .end    = MSM_UART1_PHYS + MSM_UART1_SIZE - 1,
+               .flags  = IORESOURCE_MEM,
+       },
+};
+
+static struct resource resources_uart2[] = {
+       {
+               .start  = INT_UART2,
+               .end    = INT_UART2,
+               .flags  = IORESOURCE_IRQ,
+       },
+       {
+               .start  = MSM_UART2_PHYS,
+               .end    = MSM_UART2_PHYS + MSM_UART2_SIZE - 1,
+               .flags  = IORESOURCE_MEM,
+       },
+};
+
+static struct resource resources_uart3[] = {
+       {
+               .start  = INT_UART3,
+               .end    = INT_UART3,
+               .flags  = IORESOURCE_IRQ,
+       },
+       {
+               .start  = MSM_UART3_PHYS,
+               .end    = MSM_UART3_PHYS + MSM_UART3_SIZE - 1,
+               .flags  = IORESOURCE_MEM,
+       },
+};
+
+struct platform_device msm_device_uart1 = {
+       .name   = "msm_serial",
+       .id     = 0,
+       .num_resources  = ARRAY_SIZE(resources_uart1),
+       .resource       = resources_uart1,
+};
+
+struct platform_device msm_device_uart2 = {
+       .name   = "msm_serial",
+       .id     = 1,
+       .num_resources  = ARRAY_SIZE(resources_uart2),
+       .resource       = resources_uart2,
+};
+
+struct platform_device msm_device_uart3 = {
+       .name   = "msm_serial",
+       .id     = 2,
+       .num_resources  = ARRAY_SIZE(resources_uart3),
+       .resource       = resources_uart3,
+};
+
+static struct resource resources_i2c[] = {
+       {
+               .start  = MSM_I2C_PHYS,
+               .end    = MSM_I2C_PHYS + MSM_I2C_SIZE - 1,
+               .flags  = IORESOURCE_MEM,
+       },
+       {
+               .start  = INT_PWB_I2C,
+               .end    = INT_PWB_I2C,
+               .flags  = IORESOURCE_IRQ,
+       },
+};
+
+struct platform_device msm_device_i2c = {
+       .name           = "msm_i2c",
+       .id             = 0,
+       .num_resources  = ARRAY_SIZE(resources_i2c),
+       .resource       = resources_i2c,
+};
+
+static struct resource resources_hsusb[] = {
+       {
+               .start  = MSM_HSUSB_PHYS,
+               .end    = MSM_HSUSB_PHYS + MSM_HSUSB_SIZE,
+               .flags  = IORESOURCE_MEM,
+       },
+       {
+               .start  = INT_USB_HS,
+               .end    = INT_USB_HS,
+               .flags  = IORESOURCE_IRQ,
+       },
+};
+
+struct platform_device msm_device_hsusb = {
+       .name           = "msm_hsusb",
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(resources_hsusb),
+       .resource       = resources_hsusb,
+       .dev            = {
+               .coherent_dma_mask      = 0xffffffff,
+       },
+};
+
+struct flash_platform_data msm_nand_data = {
+       .parts          = NULL,
+       .nr_parts       = 0,
+};
+
+static struct resource resources_nand[] = {
+       [0] = {
+               .start  = 7,
+               .end    = 7,
+               .flags  = IORESOURCE_DMA,
+       },
+};
+
+struct platform_device msm_device_nand = {
+       .name           = "msm_nand",
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(resources_nand),
+       .resource       = resources_nand,
+       .dev            = {
+               .platform_data  = &msm_nand_data,
+       },
+};
+
+struct platform_device msm_device_smd = {
+       .name   = "msm_smd",
+       .id     = -1,
+};
+
+static struct resource resources_sdc1[] = {
+       {
+               .start  = MSM_SDC1_PHYS,
+               .end    = MSM_SDC1_PHYS + MSM_SDC1_SIZE - 1,
+               .flags  = IORESOURCE_MEM,
+       },
+       {
+               .start  = INT_SDC1_0,
+               .end    = INT_SDC1_1,
+               .flags  = IORESOURCE_IRQ,
+       },
+       {
+               .start  = 8,
+               .end    = 8,
+               .flags  = IORESOURCE_DMA,
+       },
+};
+
+static struct resource resources_sdc2[] = {
+       {
+               .start  = MSM_SDC2_PHYS,
+               .end    = MSM_SDC2_PHYS + MSM_SDC2_SIZE - 1,
+               .flags  = IORESOURCE_MEM,
+       },
+       {
+               .start  = INT_SDC2_0,
+               .end    = INT_SDC2_1,
+               .flags  = IORESOURCE_IRQ,
+       },
+       {
+               .start  = 8,
+               .end    = 8,
+               .flags  = IORESOURCE_DMA,
+       },
+};
+
+static struct resource resources_sdc3[] = {
+       {
+               .start  = MSM_SDC3_PHYS,
+               .end    = MSM_SDC3_PHYS + MSM_SDC3_SIZE - 1,
+               .flags  = IORESOURCE_MEM,
+       },
+       {
+               .start  = INT_SDC3_0,
+               .end    = INT_SDC3_1,
+               .flags  = IORESOURCE_IRQ,
+       },
+       {
+               .start  = 8,
+               .end    = 8,
+               .flags  = IORESOURCE_DMA,
+       },
+};
+
+static struct resource resources_sdc4[] = {
+       {
+               .start  = MSM_SDC4_PHYS,
+               .end    = MSM_SDC4_PHYS + MSM_SDC4_SIZE - 1,
+               .flags  = IORESOURCE_MEM,
+       },
+       {
+               .start  = INT_SDC4_0,
+               .end    = INT_SDC4_1,
+               .flags  = IORESOURCE_IRQ,
+       },
+       {
+               .start  = 8,
+               .end    = 8,
+               .flags  = IORESOURCE_DMA,
+       },
+};
+
+struct platform_device msm_device_sdc1 = {
+       .name           = "msm_sdcc",
+       .id             = 1,
+       .num_resources  = ARRAY_SIZE(resources_sdc1),
+       .resource       = resources_sdc1,
+       .dev            = {
+               .coherent_dma_mask      = 0xffffffff,
+       },
+};
+
+struct platform_device msm_device_sdc2 = {
+       .name           = "msm_sdcc",
+       .id             = 2,
+       .num_resources  = ARRAY_SIZE(resources_sdc2),
+       .resource       = resources_sdc2,
+       .dev            = {
+               .coherent_dma_mask      = 0xffffffff,
+       },
+};
+
+struct platform_device msm_device_sdc3 = {
+       .name           = "msm_sdcc",
+       .id             = 3,
+       .num_resources  = ARRAY_SIZE(resources_sdc3),
+       .resource       = resources_sdc3,
+       .dev            = {
+               .coherent_dma_mask      = 0xffffffff,
+       },
+};
+
+struct platform_device msm_device_sdc4 = {
+       .name           = "msm_sdcc",
+       .id             = 4,
+       .num_resources  = ARRAY_SIZE(resources_sdc4),
+       .resource       = resources_sdc4,
+       .dev            = {
+               .coherent_dma_mask      = 0xffffffff,
+       },
+};
diff --git a/arch/arm/mach-msm/devices.h b/arch/arm/mach-msm/devices.h
new file mode 100644 (file)
index 0000000..0744c4a
--- /dev/null
@@ -0,0 +1,36 @@
+/* linux/arch/arm/mach-msm/devices.h
+ *
+ * Copyright (C) 2008 Google, Inc.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef __ARCH_ARM_MACH_MSM_DEVICES_H
+#define __ARCH_ARM_MACH_MSM_DEVICES_H
+
+extern struct platform_device msm_device_uart1;
+extern struct platform_device msm_device_uart2;
+extern struct platform_device msm_device_uart3;
+
+extern struct platform_device msm_device_sdc1;
+extern struct platform_device msm_device_sdc2;
+extern struct platform_device msm_device_sdc3;
+extern struct platform_device msm_device_sdc4;
+
+extern struct platform_device msm_device_hsusb;
+
+extern struct platform_device msm_device_i2c;
+
+extern struct platform_device msm_device_smd;
+
+extern struct platform_device msm_device_nand;
+
+#endif
index 528eef4..1db3c97 100644 (file)
        mrc     p15, 0, \rx, c1, c0
        tst     \rx, #1
        ldreq   \rx, =MSM_UART1_PHYS
-       ldrne   \rx, =MSM_UART1_BASE
+       movne   \rx, #0
        .endm
 
        .macro  senduart,rd,rx
-       str     \rd, [\rx, #0x0C]
+       teq     \rx, #0
+       strne   \rd, [\rx, #0x0C]
        .endm
 
        .macro  waituart,rd,rx
        @ wait for TX_READY
+       teq     \rx, #0
+       bne     2f
 1:     ldr     \rd, [\rx, #0x08]
        tst     \rd, #0x04
        beq     1b
+2:
        .endm
 
        .macro  busyuart,rd,rx
index e221f58..2f7b4c8 100644 (file)
  *
  */
 
-#define MSM_VIC_BASE          0xE0000000
+#ifdef __ASSEMBLY__
+#define IOMEM(x)       x
+#else
+#define IOMEM(x)       ((void __force __iomem *)(x))
+#endif
+
+#define MSM_VIC_BASE          IOMEM(0xE0000000)
 #define MSM_VIC_PHYS          0xC0000000
 #define MSM_VIC_SIZE          SZ_4K
 
-#define MSM_CSR_BASE          0xE0001000
+#define MSM_CSR_BASE          IOMEM(0xE0001000)
 #define MSM_CSR_PHYS          0xC0100000
 #define MSM_CSR_SIZE          SZ_4K
 
 #define MSM_GPT_BASE          MSM_CSR_BASE
 #define MSM_GPT_SIZE          SZ_4K
 
-#define MSM_DMOV_BASE         0xE0002000
+#define MSM_DMOV_BASE         IOMEM(0xE0002000)
 #define MSM_DMOV_PHYS         0xA9700000
 #define MSM_DMOV_SIZE         SZ_4K
 
-#define MSM_UART1_BASE        0xE0003000
+#define MSM_GPIO1_BASE        IOMEM(0xE0003000)
+#define MSM_GPIO1_PHYS        0xA9200000
+#define MSM_GPIO1_SIZE        SZ_4K
+
+#define MSM_GPIO2_BASE        IOMEM(0xE0004000)
+#define MSM_GPIO2_PHYS        0xA9300000
+#define MSM_GPIO2_SIZE        SZ_4K
+
+#define MSM_CLK_CTL_BASE      IOMEM(0xE0005000)
+#define MSM_CLK_CTL_PHYS      0xA8600000
+#define MSM_CLK_CTL_SIZE      SZ_4K
+
+#define MSM_SHARED_RAM_BASE   IOMEM(0xE0100000)
+#define MSM_SHARED_RAM_PHYS   0x01F00000
+#define MSM_SHARED_RAM_SIZE   SZ_1M
+
 #define MSM_UART1_PHYS        0xA9A00000
 #define MSM_UART1_SIZE        SZ_4K
 
-#define MSM_UART2_BASE        0xE0004000
 #define MSM_UART2_PHYS        0xA9B00000
 #define MSM_UART2_SIZE        SZ_4K
 
-#define MSM_UART3_BASE        0xE0005000
 #define MSM_UART3_PHYS        0xA9C00000
 #define MSM_UART3_SIZE        SZ_4K
 
-#define MSM_I2C_BASE          0xE0006000
-#define MSM_I2C_PHYS          0xA9900000
-#define MSM_I2C_SIZE          SZ_4K
+#define MSM_SDC1_PHYS         0xA0400000
+#define MSM_SDC1_SIZE         SZ_4K
 
-#define MSM_GPIO1_BASE        0xE0007000
-#define MSM_GPIO1_PHYS        0xA9200000
-#define MSM_GPIO1_SIZE        SZ_4K
+#define MSM_SDC2_PHYS         0xA0500000
+#define MSM_SDC2_SIZE         SZ_4K
 
-#define MSM_GPIO2_BASE        0xE0008000
-#define MSM_GPIO2_PHYS        0xA9300000
-#define MSM_GPIO2_SIZE        SZ_4K
+#define MSM_SDC3_PHYS         0xA0600000
+#define MSM_SDC3_SIZE         SZ_4K
+
+#define MSM_SDC4_PHYS         0xA0700000
+#define MSM_SDC4_SIZE         SZ_4K
+
+#define MSM_I2C_PHYS          0xA9900000
+#define MSM_I2C_SIZE          SZ_4K
 
-#define MSM_HSUSB_BASE        0xE0009000
 #define MSM_HSUSB_PHYS        0xA0800000
 #define MSM_HSUSB_SIZE        SZ_4K
 
-#define MSM_CLK_CTL_BASE      0xE000A000
-#define MSM_CLK_CTL_PHYS      0xA8600000
-#define MSM_CLK_CTL_SIZE      SZ_4K
-
-#define MSM_PMDH_BASE         0xE000B000
 #define MSM_PMDH_PHYS         0xAA600000
 #define MSM_PMDH_SIZE         SZ_4K
 
-#define MSM_EMDH_BASE         0xE000C000
 #define MSM_EMDH_PHYS         0xAA700000
 #define MSM_EMDH_SIZE         SZ_4K
 
-#define MSM_MDP_BASE          0xE0010000
 #define MSM_MDP_PHYS          0xAA200000
 #define MSM_MDP_SIZE          0x000F0000
 
-#define MSM_SHARED_RAM_BASE   0xE0100000
-#define MSM_SHARED_RAM_PHYS   0x01F00000
-#define MSM_SHARED_RAM_SIZE   SZ_1M
+#define MSM_MDC_PHYS         0xAA500000
+#define MSM_MDC_SIZE         SZ_1M
+
+#define MSM_AD5_PHYS          0xAC000000
+#define MSM_AD5_SIZE          (SZ_1M*13)
+
 
 #endif
index 7999e4b..6e7692f 100644 (file)
@@ -28,7 +28,7 @@
 #include <mach/board.h>
 
 #define MSM_DEVICE(name) { \
-               .virtual = MSM_##name##_BASE, \
+               .virtual = (unsigned long) MSM_##name##_BASE, \
                .pfn = __phys_to_pfn(MSM_##name##_PHYS), \
                .length = MSM_##name##_SIZE, \
                .type = MT_DEVICE_NONSHARED, \
@@ -39,19 +39,11 @@ static struct map_desc msm_io_desc[] __initdata = {
        MSM_DEVICE(CSR),
        MSM_DEVICE(GPT),
        MSM_DEVICE(DMOV),
-       MSM_DEVICE(UART1),
-       MSM_DEVICE(UART2),
-       MSM_DEVICE(UART3),
-       MSM_DEVICE(I2C),
        MSM_DEVICE(GPIO1),
        MSM_DEVICE(GPIO2),
-       MSM_DEVICE(HSUSB),
        MSM_DEVICE(CLK_CTL),
-       MSM_DEVICE(PMDH),
-       MSM_DEVICE(EMDH),
-       MSM_DEVICE(MDP),
        {
-               .virtual =  MSM_SHARED_RAM_BASE,
+               .virtual =  (unsigned long) MSM_SHARED_RAM_BASE,
                .pfn =      __phys_to_pfn(MSM_SHARED_RAM_PHYS),
                .length =   MSM_SHARED_RAM_SIZE,
                .type =     MT_DEVICE,
index 04b8d18..69ca0dd 100644 (file)
 
 static void msm_irq_ack(unsigned int irq)
 {
-       unsigned reg = VIC_INT_CLEAR0 + ((irq & 32) ? 4 : 0);
+       void __iomem *reg = VIC_INT_CLEAR0 + ((irq & 32) ? 4 : 0);
        irq = 1 << (irq & 31);
        writel(irq, reg);
 }
 
 static void msm_irq_mask(unsigned int irq)
 {
-       unsigned reg = VIC_INT_ENCLEAR0 + ((irq & 32) ? 4 : 0);
+       void __iomem *reg = VIC_INT_ENCLEAR0 + ((irq & 32) ? 4 : 0);
        writel(1 << (irq & 31), reg);
 }
 
 static void msm_irq_unmask(unsigned int irq)
 {
-       unsigned reg = VIC_INT_ENSET0 + ((irq & 32) ? 4 : 0);
+       void __iomem *reg = VIC_INT_ENSET0 + ((irq & 32) ? 4 : 0);
        writel(1 << (irq & 31), reg);
 }
 
@@ -90,8 +90,8 @@ static int msm_irq_set_wake(unsigned int irq, unsigned int on)
 
 static int msm_irq_set_type(unsigned int irq, unsigned int flow_type)
 {
-       unsigned treg = VIC_INT_TYPE0 + ((irq & 32) ? 4 : 0);
-       unsigned preg = VIC_INT_POLARITY0 + ((irq & 32) ? 4 : 0);
+       void __iomem *treg = VIC_INT_TYPE0 + ((irq & 32) ? 4 : 0);
+       void __iomem *preg = VIC_INT_POLARITY0 + ((irq & 32) ? 4 : 0);
        int b = 1 << (irq & 31);
 
        if (flow_type & (IRQF_TRIGGER_FALLING | IRQF_TRIGGER_LOW))
index 2bffe9b..345a14c 100644 (file)
@@ -45,7 +45,7 @@ struct msm_clock {
        struct clock_event_device   clockevent;
        struct clocksource          clocksource;
        struct irqaction            irq;
-       uint32_t                    regbase;
+       void __iomem                *regbase;
        uint32_t                    freq;
        uint32_t                    shift;
 };