aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/Kconfig2
-rw-r--r--arch/arm/mach-ep93xx/adssphere.c1
-rw-r--r--arch/arm/mach-ep93xx/gesbc9312.c1
-rw-r--r--arch/arm/mach-ep93xx/ts72xx.c12
-rw-r--r--arch/arm/mach-ep93xx/ts72xx.h (renamed from arch/arm/mach-ep93xx/include/mach/ts72xx.h)10
-rw-r--r--arch/arm/mach-exynos/include/mach/map.h2
-rw-r--r--arch/arm/mach-exynos/include/mach/sysmmu.h2
-rw-r--r--arch/arm/mach-msm/board-msm8x60.c5
-rw-r--r--arch/arm/mach-msm/include/mach/msm_iomap-8960.h2
-rw-r--r--arch/arm/mach-msm/include/mach/msm_iomap-8x60.h2
-rw-r--r--arch/arm/mach-msm/io.c25
-rw-r--r--arch/arm/mach-nomadik/board-nhk8815.c3
-rw-r--r--arch/arm/mach-omap2/gpio.c2
-rw-r--r--arch/arm/mach-omap2/omap-wakeupgen.c8
-rw-r--r--arch/arm/mach-s3c24xx/mach-h1940.c4
-rw-r--r--arch/arm/mach-tegra/powergate.c43
-rw-r--r--arch/arm/mach-ux500/Kconfig1
-rw-r--r--arch/arm/mach-ux500/board-mop500-regulators.c15
-rw-r--r--arch/arm/mach-ux500/board-mop500-regulators.h1
-rw-r--r--arch/arm/mach-ux500/board-mop500.c19
-rw-r--r--arch/arm/mach-ux500/cpu-db8500.c1
-rw-r--r--arch/arm/mach-ux500/cpu.c2
-rw-r--r--arch/arm/mm/cache-l2x0.c2
-rw-r--r--arch/arm/plat-samsung/devs.c2
-rw-r--r--arch/powerpc/platforms/83xx/suspend.c2
-rw-r--r--arch/powerpc/platforms/cell/celleb_pci.c2
-rw-r--r--arch/powerpc/sysdev/fsl_msi.c8
-rw-r--r--drivers/dma/tegra20-apb-dma.c8
-rw-r--r--drivers/gpio/gpio-mpc8xxx.c2
-rw-r--r--drivers/gpio/gpio-omap.c8
-rw-r--r--drivers/i2c/busses/i2c-mpc.c12
-rw-r--r--drivers/i2c/busses/i2c-omap.c3
-rw-r--r--drivers/macintosh/mediabay.c8
-rw-r--r--drivers/mfd/da9052-i2c.c4
-rw-r--r--drivers/mmc/host/omap_hsmmc.c2
-rw-r--r--drivers/net/can/mscan/mpc5xxx_can.c4
-rw-r--r--drivers/pcmcia/pxa2xx_base.c2
-rw-r--r--drivers/spi/spi-imx.c2
-rw-r--r--drivers/spi/spi-omap2-mcspi.c2
-rw-r--r--drivers/tty/serial/mpc52xx_uart.c2
-rw-r--r--drivers/watchdog/mpc8xxx_wdt.c2
-rw-r--r--include/linux/atmel_tc.h2
-rw-r--r--include/linux/mod_devicetable.h2
43 files changed, 154 insertions, 90 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index de325f4615bd..4c428dc999ea 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -2312,7 +2312,7 @@ menu "Power management options"
2312source "kernel/power/Kconfig" 2312source "kernel/power/Kconfig"
2313 2313
2314config ARCH_SUSPEND_POSSIBLE 2314config ARCH_SUSPEND_POSSIBLE
2315 depends on !ARCH_S5PC100 && !ARCH_TEGRA 2315 depends on !ARCH_S5PC100
2316 depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \ 2316 depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \
2317 CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE || CPU_MOHAWK 2317 CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE || CPU_MOHAWK
2318 def_bool y 2318 def_bool y
diff --git a/arch/arm/mach-ep93xx/adssphere.c b/arch/arm/mach-ep93xx/adssphere.c
index a472777e9eba..41383bf03d4b 100644
--- a/arch/arm/mach-ep93xx/adssphere.c
+++ b/arch/arm/mach-ep93xx/adssphere.c
@@ -13,6 +13,7 @@
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/platform_device.h> 15#include <linux/platform_device.h>
16#include <linux/sizes.h>
16 17
17#include <mach/hardware.h> 18#include <mach/hardware.h>
18 19
diff --git a/arch/arm/mach-ep93xx/gesbc9312.c b/arch/arm/mach-ep93xx/gesbc9312.c
index 437c34111155..7fd705b5efe4 100644
--- a/arch/arm/mach-ep93xx/gesbc9312.c
+++ b/arch/arm/mach-ep93xx/gesbc9312.c
@@ -13,6 +13,7 @@
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/platform_device.h> 15#include <linux/platform_device.h>
16#include <linux/sizes.h>
16 17
17#include <mach/hardware.h> 18#include <mach/hardware.h>
18 19
diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c
index 75cab2d7ec73..3c4c233391dc 100644
--- a/arch/arm/mach-ep93xx/ts72xx.c
+++ b/arch/arm/mach-ep93xx/ts72xx.c
@@ -21,7 +21,6 @@
21#include <linux/mtd/partitions.h> 21#include <linux/mtd/partitions.h>
22 22
23#include <mach/hardware.h> 23#include <mach/hardware.h>
24#include <mach/ts72xx.h>
25 24
26#include <asm/hardware/vic.h> 25#include <asm/hardware/vic.h>
27#include <asm/mach-types.h> 26#include <asm/mach-types.h>
@@ -29,30 +28,31 @@
29#include <asm/mach/arch.h> 28#include <asm/mach/arch.h>
30 29
31#include "soc.h" 30#include "soc.h"
31#include "ts72xx.h"
32 32
33static struct map_desc ts72xx_io_desc[] __initdata = { 33static struct map_desc ts72xx_io_desc[] __initdata = {
34 { 34 {
35 .virtual = TS72XX_MODEL_VIRT_BASE, 35 .virtual = (unsigned long)TS72XX_MODEL_VIRT_BASE,
36 .pfn = __phys_to_pfn(TS72XX_MODEL_PHYS_BASE), 36 .pfn = __phys_to_pfn(TS72XX_MODEL_PHYS_BASE),
37 .length = TS72XX_MODEL_SIZE, 37 .length = TS72XX_MODEL_SIZE,
38 .type = MT_DEVICE, 38 .type = MT_DEVICE,
39 }, { 39 }, {
40 .virtual = TS72XX_OPTIONS_VIRT_BASE, 40 .virtual = (unsigned long)TS72XX_OPTIONS_VIRT_BASE,
41 .pfn = __phys_to_pfn(TS72XX_OPTIONS_PHYS_BASE), 41 .pfn = __phys_to_pfn(TS72XX_OPTIONS_PHYS_BASE),
42 .length = TS72XX_OPTIONS_SIZE, 42 .length = TS72XX_OPTIONS_SIZE,
43 .type = MT_DEVICE, 43 .type = MT_DEVICE,
44 }, { 44 }, {
45 .virtual = TS72XX_OPTIONS2_VIRT_BASE, 45 .virtual = (unsigned long)TS72XX_OPTIONS2_VIRT_BASE,
46 .pfn = __phys_to_pfn(TS72XX_OPTIONS2_PHYS_BASE), 46 .pfn = __phys_to_pfn(TS72XX_OPTIONS2_PHYS_BASE),
47 .length = TS72XX_OPTIONS2_SIZE, 47 .length = TS72XX_OPTIONS2_SIZE,
48 .type = MT_DEVICE, 48 .type = MT_DEVICE,
49 }, { 49 }, {
50 .virtual = TS72XX_RTC_INDEX_VIRT_BASE, 50 .virtual = (unsigned long)TS72XX_RTC_INDEX_VIRT_BASE,
51 .pfn = __phys_to_pfn(TS72XX_RTC_INDEX_PHYS_BASE), 51 .pfn = __phys_to_pfn(TS72XX_RTC_INDEX_PHYS_BASE),
52 .length = TS72XX_RTC_INDEX_SIZE, 52 .length = TS72XX_RTC_INDEX_SIZE,
53 .type = MT_DEVICE, 53 .type = MT_DEVICE,
54 }, { 54 }, {
55 .virtual = TS72XX_RTC_DATA_VIRT_BASE, 55 .virtual = (unsigned long)TS72XX_RTC_DATA_VIRT_BASE,
56 .pfn = __phys_to_pfn(TS72XX_RTC_DATA_PHYS_BASE), 56 .pfn = __phys_to_pfn(TS72XX_RTC_DATA_PHYS_BASE),
57 .length = TS72XX_RTC_DATA_SIZE, 57 .length = TS72XX_RTC_DATA_SIZE,
58 .type = MT_DEVICE, 58 .type = MT_DEVICE,
diff --git a/arch/arm/mach-ep93xx/include/mach/ts72xx.h b/arch/arm/mach-ep93xx/ts72xx.h
index f1397a13e76b..071feaa30adc 100644
--- a/arch/arm/mach-ep93xx/include/mach/ts72xx.h
+++ b/arch/arm/mach-ep93xx/ts72xx.h
@@ -14,7 +14,7 @@
14 */ 14 */
15 15
16#define TS72XX_MODEL_PHYS_BASE 0x22000000 16#define TS72XX_MODEL_PHYS_BASE 0x22000000
17#define TS72XX_MODEL_VIRT_BASE 0xfebff000 17#define TS72XX_MODEL_VIRT_BASE IOMEM(0xfebff000)
18#define TS72XX_MODEL_SIZE 0x00001000 18#define TS72XX_MODEL_SIZE 0x00001000
19 19
20#define TS72XX_MODEL_TS7200 0x00 20#define TS72XX_MODEL_TS7200 0x00
@@ -26,7 +26,7 @@
26 26
27 27
28#define TS72XX_OPTIONS_PHYS_BASE 0x22400000 28#define TS72XX_OPTIONS_PHYS_BASE 0x22400000
29#define TS72XX_OPTIONS_VIRT_BASE 0xfebfe000 29#define TS72XX_OPTIONS_VIRT_BASE IOMEM(0xfebfe000)
30#define TS72XX_OPTIONS_SIZE 0x00001000 30#define TS72XX_OPTIONS_SIZE 0x00001000
31 31
32#define TS72XX_OPTIONS_COM2_RS485 0x02 32#define TS72XX_OPTIONS_COM2_RS485 0x02
@@ -34,18 +34,18 @@
34 34
35 35
36#define TS72XX_OPTIONS2_PHYS_BASE 0x22800000 36#define TS72XX_OPTIONS2_PHYS_BASE 0x22800000
37#define TS72XX_OPTIONS2_VIRT_BASE 0xfebfd000 37#define TS72XX_OPTIONS2_VIRT_BASE IOMEM(0xfebfd000)
38#define TS72XX_OPTIONS2_SIZE 0x00001000 38#define TS72XX_OPTIONS2_SIZE 0x00001000
39 39
40#define TS72XX_OPTIONS2_TS9420 0x04 40#define TS72XX_OPTIONS2_TS9420 0x04
41#define TS72XX_OPTIONS2_TS9420_BOOT 0x02 41#define TS72XX_OPTIONS2_TS9420_BOOT 0x02
42 42
43 43
44#define TS72XX_RTC_INDEX_VIRT_BASE 0xfebf9000 44#define TS72XX_RTC_INDEX_VIRT_BASE IOMEM(0xfebf9000)
45#define TS72XX_RTC_INDEX_PHYS_BASE 0x10800000 45#define TS72XX_RTC_INDEX_PHYS_BASE 0x10800000
46#define TS72XX_RTC_INDEX_SIZE 0x00001000 46#define TS72XX_RTC_INDEX_SIZE 0x00001000
47 47
48#define TS72XX_RTC_DATA_VIRT_BASE 0xfebf8000 48#define TS72XX_RTC_DATA_VIRT_BASE IOMEM(0xfebf8000)
49#define TS72XX_RTC_DATA_PHYS_BASE 0x11700000 49#define TS72XX_RTC_DATA_PHYS_BASE 0x11700000
50#define TS72XX_RTC_DATA_SIZE 0x00001000 50#define TS72XX_RTC_DATA_SIZE 0x00001000
51 51
diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h
index c72b675b3e4b..c941053dd5a1 100644
--- a/arch/arm/mach-exynos/include/mach/map.h
+++ b/arch/arm/mach-exynos/include/mach/map.h
@@ -89,7 +89,7 @@
89#define EXYNOS4_PA_L2CC 0x10502000 89#define EXYNOS4_PA_L2CC 0x10502000
90 90
91#define EXYNOS4_PA_MDMA0 0x10810000 91#define EXYNOS4_PA_MDMA0 0x10810000
92#define EXYNOS4_PA_MDMA1 0x12840000 92#define EXYNOS4_PA_MDMA1 0x12850000
93#define EXYNOS4_PA_PDMA0 0x12680000 93#define EXYNOS4_PA_PDMA0 0x12680000
94#define EXYNOS4_PA_PDMA1 0x12690000 94#define EXYNOS4_PA_PDMA1 0x12690000
95#define EXYNOS5_PA_MDMA0 0x10800000 95#define EXYNOS5_PA_MDMA0 0x10800000
diff --git a/arch/arm/mach-exynos/include/mach/sysmmu.h b/arch/arm/mach-exynos/include/mach/sysmmu.h
index 998daf2add92..88a4543b0001 100644
--- a/arch/arm/mach-exynos/include/mach/sysmmu.h
+++ b/arch/arm/mach-exynos/include/mach/sysmmu.h
@@ -58,7 +58,7 @@ static inline void platform_set_sysmmu(
58#endif 58#endif
59 59
60#else /* !CONFIG_EXYNOS_DEV_SYSMMU */ 60#else /* !CONFIG_EXYNOS_DEV_SYSMMU */
61#define platform_set_sysmmu(dev, sysmmu) do { } while (0) 61#define platform_set_sysmmu(sysmmu, dev) do { } while (0)
62#endif 62#endif
63 63
64#define SYSMMU_CLOCK_DEVNAME(ipname, id) (SYSMMU_DEVNAME_BASE "." #id) 64#define SYSMMU_CLOCK_DEVNAME(ipname, id) (SYSMMU_DEVNAME_BASE "." #id)
diff --git a/arch/arm/mach-msm/board-msm8x60.c b/arch/arm/mach-msm/board-msm8x60.c
index e37a724cd1eb..06003b4ccb10 100644
--- a/arch/arm/mach-msm/board-msm8x60.c
+++ b/arch/arm/mach-msm/board-msm8x60.c
@@ -93,11 +93,6 @@ static struct of_dev_auxdata msm_auxdata_lookup[] __initdata = {
93 93
94static void __init msm8x60_dt_init(void) 94static void __init msm8x60_dt_init(void)
95{ 95{
96 if (of_machine_is_compatible("qcom,msm8660-surf")) {
97 printk(KERN_INFO "Init surf UART registers\n");
98 msm8x60_init_uart12dm();
99 }
100
101 of_platform_populate(NULL, of_default_bus_match_table, 96 of_platform_populate(NULL, of_default_bus_match_table,
102 msm_auxdata_lookup, NULL); 97 msm_auxdata_lookup, NULL);
103} 98}
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8960.h b/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
index a1752c0284fc..facf434d09be 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-8960.h
@@ -46,7 +46,7 @@
46#define MSM8960_TMR0_SIZE SZ_4K 46#define MSM8960_TMR0_SIZE SZ_4K
47 47
48#ifdef CONFIG_DEBUG_MSM8960_UART 48#ifdef CONFIG_DEBUG_MSM8960_UART
49#define MSM_DEBUG_UART_BASE 0xE1040000 49#define MSM_DEBUG_UART_BASE 0xF0040000
50#define MSM_DEBUG_UART_PHYS 0x16440000 50#define MSM_DEBUG_UART_PHYS 0x16440000
51#endif 51#endif
52 52
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h b/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
index 5aed57dc808c..21a2a8859a9a 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-8x60.h
@@ -63,7 +63,7 @@
63#define MSM8X60_TMR0_SIZE SZ_4K 63#define MSM8X60_TMR0_SIZE SZ_4K
64 64
65#ifdef CONFIG_DEBUG_MSM8660_UART 65#ifdef CONFIG_DEBUG_MSM8660_UART
66#define MSM_DEBUG_UART_BASE 0xE1040000 66#define MSM_DEBUG_UART_BASE 0xF0040000
67#define MSM_DEBUG_UART_PHYS 0x19C40000 67#define MSM_DEBUG_UART_PHYS 0x19C40000
68#endif 68#endif
69 69
diff --git a/arch/arm/mach-msm/io.c b/arch/arm/mach-msm/io.c
index a1e7b1168850..af43f6acd7fc 100644
--- a/arch/arm/mach-msm/io.c
+++ b/arch/arm/mach-msm/io.c
@@ -29,30 +29,31 @@
29 29
30#include <mach/board.h> 30#include <mach/board.h>
31 31
32#define MSM_CHIP_DEVICE(name, chip) { \ 32#define MSM_CHIP_DEVICE_TYPE(name, chip, mem_type) { \
33 .virtual = (unsigned long) MSM_##name##_BASE, \ 33 .virtual = (unsigned long) MSM_##name##_BASE, \
34 .pfn = __phys_to_pfn(chip##_##name##_PHYS), \ 34 .pfn = __phys_to_pfn(chip##_##name##_PHYS), \
35 .length = chip##_##name##_SIZE, \ 35 .length = chip##_##name##_SIZE, \
36 .type = MT_DEVICE_NONSHARED, \ 36 .type = mem_type, \
37 } 37 }
38 38
39#define MSM_DEVICE_TYPE(name, mem_type) \
40 MSM_CHIP_DEVICE_TYPE(name, MSM, mem_type)
41#define MSM_CHIP_DEVICE(name, chip) \
42 MSM_CHIP_DEVICE_TYPE(name, chip, MT_DEVICE)
39#define MSM_DEVICE(name) MSM_CHIP_DEVICE(name, MSM) 43#define MSM_DEVICE(name) MSM_CHIP_DEVICE(name, MSM)
40 44
41#if defined(CONFIG_ARCH_MSM7X00A) || defined(CONFIG_ARCH_MSM7X27) \ 45#if defined(CONFIG_ARCH_MSM7X00A) || defined(CONFIG_ARCH_MSM7X27) \
42 || defined(CONFIG_ARCH_MSM7X25) 46 || defined(CONFIG_ARCH_MSM7X25)
43static struct map_desc msm_io_desc[] __initdata = { 47static struct map_desc msm_io_desc[] __initdata = {
44 MSM_DEVICE(VIC), 48 MSM_DEVICE_TYPE(VIC, MT_DEVICE_NONSHARED),
45 MSM_CHIP_DEVICE(CSR, MSM7X00), 49 MSM_CHIP_DEVICE_TYPE(CSR, MSM7X00, MT_DEVICE_NONSHARED),
46 MSM_DEVICE(DMOV), 50 MSM_DEVICE_TYPE(DMOV, MT_DEVICE_NONSHARED),
47 MSM_CHIP_DEVICE(GPIO1, MSM7X00), 51 MSM_CHIP_DEVICE_TYPE(GPIO1, MSM7X00, MT_DEVICE_NONSHARED),
48 MSM_CHIP_DEVICE(GPIO2, MSM7X00), 52 MSM_CHIP_DEVICE_TYPE(GPIO2, MSM7X00, MT_DEVICE_NONSHARED),
49 MSM_DEVICE(CLK_CTL), 53 MSM_DEVICE_TYPE(CLK_CTL, MT_DEVICE_NONSHARED),
50#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \ 54#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
51 defined(CONFIG_DEBUG_MSM_UART3) 55 defined(CONFIG_DEBUG_MSM_UART3)
52 MSM_DEVICE(DEBUG_UART), 56 MSM_DEVICE_TYPE(DEBUG_UART, MT_DEVICE_NONSHARED),
53#endif
54#ifdef CONFIG_ARCH_MSM7X30
55 MSM_DEVICE(GCC),
56#endif 57#endif
57 { 58 {
58 .virtual = (unsigned long) MSM_SHARED_RAM_BASE, 59 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
diff --git a/arch/arm/mach-nomadik/board-nhk8815.c b/arch/arm/mach-nomadik/board-nhk8815.c
index f4535a7dadf5..c3841a9a8fa8 100644
--- a/arch/arm/mach-nomadik/board-nhk8815.c
+++ b/arch/arm/mach-nomadik/board-nhk8815.c
@@ -112,8 +112,7 @@ static struct mtd_partition nhk8815_partitions[] = {
112static struct nomadik_nand_platform_data nhk8815_nand_data = { 112static struct nomadik_nand_platform_data nhk8815_nand_data = {
113 .parts = nhk8815_partitions, 113 .parts = nhk8815_partitions,
114 .nparts = ARRAY_SIZE(nhk8815_partitions), 114 .nparts = ARRAY_SIZE(nhk8815_partitions),
115 .options = NAND_COPYBACK | NAND_CACHEPRG | NAND_NO_PADDING \ 115 .options = NAND_COPYBACK | NAND_CACHEPRG | NAND_NO_PADDING,
116 | NAND_NO_READRDY,
117 .init = nhk8815_nand_init, 116 .init = nhk8815_nand_init,
118}; 117};
119 118
diff --git a/arch/arm/mach-omap2/gpio.c b/arch/arm/mach-omap2/gpio.c
index 9ad7d489b0de..fe626e903dea 100644
--- a/arch/arm/mach-omap2/gpio.c
+++ b/arch/arm/mach-omap2/gpio.c
@@ -60,6 +60,7 @@ static int __init omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)
60 pdata->regs = kzalloc(sizeof(struct omap_gpio_reg_offs), GFP_KERNEL); 60 pdata->regs = kzalloc(sizeof(struct omap_gpio_reg_offs), GFP_KERNEL);
61 if (!pdata->regs) { 61 if (!pdata->regs) {
62 pr_err("gpio%d: Memory allocation failed\n", id); 62 pr_err("gpio%d: Memory allocation failed\n", id);
63 kfree(pdata);
63 return -ENOMEM; 64 return -ENOMEM;
64 } 65 }
65 66
@@ -121,6 +122,7 @@ static int __init omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)
121 break; 122 break;
122 default: 123 default:
123 WARN(1, "Invalid gpio bank_type\n"); 124 WARN(1, "Invalid gpio bank_type\n");
125 kfree(pdata->regs);
124 kfree(pdata); 126 kfree(pdata);
125 return -EINVAL; 127 return -EINVAL;
126 } 128 }
diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c
index 330d4c6e746b..c4bee21f4210 100644
--- a/arch/arm/mach-omap2/omap-wakeupgen.c
+++ b/arch/arm/mach-omap2/omap-wakeupgen.c
@@ -229,13 +229,7 @@ static inline void omap4_irq_save_context(void)
229 /* Save AuxBoot* registers */ 229 /* Save AuxBoot* registers */
230 val = __raw_readl(wakeupgen_base + OMAP_AUX_CORE_BOOT_0); 230 val = __raw_readl(wakeupgen_base + OMAP_AUX_CORE_BOOT_0);
231 __raw_writel(val, sar_base + AUXCOREBOOT0_OFFSET); 231 __raw_writel(val, sar_base + AUXCOREBOOT0_OFFSET);
232 val = __raw_readl(wakeupgen_base + OMAP_AUX_CORE_BOOT_0); 232 val = __raw_readl(wakeupgen_base + OMAP_AUX_CORE_BOOT_1);
233 __raw_writel(val, sar_base + AUXCOREBOOT1_OFFSET);
234
235 /* Save SyncReq generation logic */
236 val = __raw_readl(wakeupgen_base + OMAP_AUX_CORE_BOOT_0);
237 __raw_writel(val, sar_base + AUXCOREBOOT0_OFFSET);
238 val = __raw_readl(wakeupgen_base + OMAP_AUX_CORE_BOOT_0);
239 __raw_writel(val, sar_base + AUXCOREBOOT1_OFFSET); 233 __raw_writel(val, sar_base + AUXCOREBOOT1_OFFSET);
240 234
241 /* Save SyncReq generation logic */ 235 /* Save SyncReq generation logic */
diff --git a/arch/arm/mach-s3c24xx/mach-h1940.c b/arch/arm/mach-s3c24xx/mach-h1940.c
index bb8d008d5a5c..7e15cc430688 100644
--- a/arch/arm/mach-s3c24xx/mach-h1940.c
+++ b/arch/arm/mach-s3c24xx/mach-h1940.c
@@ -380,7 +380,7 @@ int h1940_led_blink_set(unsigned gpio, int state,
380 default: 380 default:
381 blink_gpio = S3C2410_GPA(3); 381 blink_gpio = S3C2410_GPA(3);
382 check_gpio1 = S3C2410_GPA(1); 382 check_gpio1 = S3C2410_GPA(1);
383 check_gpio1 = S3C2410_GPA(7); 383 check_gpio2 = S3C2410_GPA(7);
384 break; 384 break;
385 } 385 }
386 386
@@ -460,7 +460,7 @@ static void h1940_set_mmc_power(unsigned char power_mode, unsigned short vdd)
460 break; 460 break;
461 default: 461 default:
462 break; 462 break;
463 }; 463 }
464} 464}
465 465
466static struct s3c24xx_mci_pdata h1940_mmc_cfg __initdata = { 466static struct s3c24xx_mci_pdata h1940_mmc_cfg __initdata = {
diff --git a/arch/arm/mach-tegra/powergate.c b/arch/arm/mach-tegra/powergate.c
index 15d506501ccc..de0662de28a0 100644
--- a/arch/arm/mach-tegra/powergate.c
+++ b/arch/arm/mach-tegra/powergate.c
@@ -199,7 +199,9 @@ int __init tegra_powergate_init(void)
199 199
200#ifdef CONFIG_DEBUG_FS 200#ifdef CONFIG_DEBUG_FS
201 201
202static const char * const powergate_name[] = { 202static const char * const *powergate_name;
203
204static const char * const powergate_name_t20[] = {
203 [TEGRA_POWERGATE_CPU] = "cpu", 205 [TEGRA_POWERGATE_CPU] = "cpu",
204 [TEGRA_POWERGATE_3D] = "3d", 206 [TEGRA_POWERGATE_3D] = "3d",
205 [TEGRA_POWERGATE_VENC] = "venc", 207 [TEGRA_POWERGATE_VENC] = "venc",
@@ -209,6 +211,23 @@ static const char * const powergate_name[] = {
209 [TEGRA_POWERGATE_MPE] = "mpe", 211 [TEGRA_POWERGATE_MPE] = "mpe",
210}; 212};
211 213
214static const char * const powergate_name_t30[] = {
215 [TEGRA_POWERGATE_CPU] = "cpu0",
216 [TEGRA_POWERGATE_3D] = "3d0",
217 [TEGRA_POWERGATE_VENC] = "venc",
218 [TEGRA_POWERGATE_VDEC] = "vdec",
219 [TEGRA_POWERGATE_PCIE] = "pcie",
220 [TEGRA_POWERGATE_L2] = "l2",
221 [TEGRA_POWERGATE_MPE] = "mpe",
222 [TEGRA_POWERGATE_HEG] = "heg",
223 [TEGRA_POWERGATE_SATA] = "sata",
224 [TEGRA_POWERGATE_CPU1] = "cpu1",
225 [TEGRA_POWERGATE_CPU2] = "cpu2",
226 [TEGRA_POWERGATE_CPU3] = "cpu3",
227 [TEGRA_POWERGATE_CELP] = "celp",
228 [TEGRA_POWERGATE_3D1] = "3d1",
229};
230
212static int powergate_show(struct seq_file *s, void *data) 231static int powergate_show(struct seq_file *s, void *data)
213{ 232{
214 int i; 233 int i;
@@ -237,14 +256,24 @@ static const struct file_operations powergate_fops = {
237int __init tegra_powergate_debugfs_init(void) 256int __init tegra_powergate_debugfs_init(void)
238{ 257{
239 struct dentry *d; 258 struct dentry *d;
240 int err = -ENOMEM;
241 259
242 d = debugfs_create_file("powergate", S_IRUGO, NULL, NULL, 260 switch (tegra_chip_id) {
243 &powergate_fops); 261 case TEGRA20:
244 if (!d) 262 powergate_name = powergate_name_t20;
245 return -ENOMEM; 263 break;
264 case TEGRA30:
265 powergate_name = powergate_name_t30;
266 break;
267 }
268
269 if (powergate_name) {
270 d = debugfs_create_file("powergate", S_IRUGO, NULL, NULL,
271 &powergate_fops);
272 if (!d)
273 return -ENOMEM;
274 }
246 275
247 return err; 276 return 0;
248} 277}
249 278
250#endif 279#endif
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig
index a258996d954b..c77c86c47369 100644
--- a/arch/arm/mach-ux500/Kconfig
+++ b/arch/arm/mach-ux500/Kconfig
@@ -29,6 +29,7 @@ config MACH_MOP500
29 select I2C 29 select I2C
30 select I2C_NOMADIK 30 select I2C_NOMADIK
31 select SOC_BUS 31 select SOC_BUS
32 select REGULATOR_FIXED_VOLTAGE
32 help 33 help
33 Include support for the MOP500 development platform. 34 Include support for the MOP500 development platform.
34 35
diff --git a/arch/arm/mach-ux500/board-mop500-regulators.c b/arch/arm/mach-ux500/board-mop500-regulators.c
index 52426a425787..2a17bc506cff 100644
--- a/arch/arm/mach-ux500/board-mop500-regulators.c
+++ b/arch/arm/mach-ux500/board-mop500-regulators.c
@@ -13,6 +13,21 @@
13#include <linux/regulator/ab8500.h> 13#include <linux/regulator/ab8500.h>
14#include "board-mop500-regulators.h" 14#include "board-mop500-regulators.h"
15 15
16static struct regulator_consumer_supply gpio_en_3v3_consumers[] = {
17 REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
18};
19
20struct regulator_init_data gpio_en_3v3_regulator = {
21 .constraints = {
22 .name = "EN-3V3",
23 .min_uV = 3300000,
24 .max_uV = 3300000,
25 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
26 },
27 .num_consumer_supplies = ARRAY_SIZE(gpio_en_3v3_consumers),
28 .consumer_supplies = gpio_en_3v3_consumers,
29};
30
16/* 31/*
17 * TPS61052 regulator 32 * TPS61052 regulator
18 */ 33 */
diff --git a/arch/arm/mach-ux500/board-mop500-regulators.h b/arch/arm/mach-ux500/board-mop500-regulators.h
index 94992158d962..78a0642a2206 100644
--- a/arch/arm/mach-ux500/board-mop500-regulators.h
+++ b/arch/arm/mach-ux500/board-mop500-regulators.h
@@ -18,5 +18,6 @@ extern struct ab8500_regulator_reg_init
18ab8500_regulator_reg_init[AB8500_NUM_REGULATOR_REGISTERS]; 18ab8500_regulator_reg_init[AB8500_NUM_REGULATOR_REGISTERS];
19extern struct regulator_init_data ab8500_regulators[AB8500_NUM_REGULATORS]; 19extern struct regulator_init_data ab8500_regulators[AB8500_NUM_REGULATORS];
20extern struct regulator_init_data tps61052_regulator; 20extern struct regulator_init_data tps61052_regulator;
21extern struct regulator_init_data gpio_en_3v3_regulator;
21 22
22#endif 23#endif
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index 1d2e3c6f8b59..c8922bca68a4 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -23,6 +23,7 @@
23#include <linux/spi/spi.h> 23#include <linux/spi/spi.h>
24#include <linux/mfd/abx500/ab8500.h> 24#include <linux/mfd/abx500/ab8500.h>
25#include <linux/regulator/ab8500.h> 25#include <linux/regulator/ab8500.h>
26#include <linux/regulator/fixed.h>
26#include <linux/mfd/tc3589x.h> 27#include <linux/mfd/tc3589x.h>
27#include <linux/mfd/tps6105x.h> 28#include <linux/mfd/tps6105x.h>
28#include <linux/mfd/abx500/ab8500-gpio.h> 29#include <linux/mfd/abx500/ab8500-gpio.h>
@@ -76,6 +77,23 @@ static struct platform_device snowball_led_dev = {
76 }, 77 },
77}; 78};
78 79
80static struct fixed_voltage_config snowball_gpio_en_3v3_data = {
81 .supply_name = "EN-3V3",
82 .gpio = SNOWBALL_EN_3V3_ETH_GPIO,
83 .microvolts = 3300000,
84 .enable_high = 1,
85 .init_data = &gpio_en_3v3_regulator,
86 .startup_delay = 5000, /* 1200us */
87};
88
89static struct platform_device snowball_gpio_en_3v3_regulator_dev = {
90 .name = "reg-fixed-voltage",
91 .id = 1,
92 .dev = {
93 .platform_data = &snowball_gpio_en_3v3_data,
94 },
95};
96
79static struct ab8500_gpio_platform_data ab8500_gpio_pdata = { 97static struct ab8500_gpio_platform_data ab8500_gpio_pdata = {
80 .gpio_base = MOP500_AB8500_PIN_GPIO(1), 98 .gpio_base = MOP500_AB8500_PIN_GPIO(1),
81 .irq_base = MOP500_AB8500_VIR_GPIO_IRQ_BASE, 99 .irq_base = MOP500_AB8500_VIR_GPIO_IRQ_BASE,
@@ -565,6 +583,7 @@ static struct platform_device *snowball_platform_devs[] __initdata = {
565 &snowball_led_dev, 583 &snowball_led_dev,
566 &snowball_key_dev, 584 &snowball_key_dev,
567 &snowball_sbnet_dev, 585 &snowball_sbnet_dev,
586 &snowball_gpio_en_3v3_regulator_dev,
568}; 587};
569 588
570static void __init mop500_init_machine(void) 589static void __init mop500_init_machine(void)
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index db3c52d56ca4..4e59746bcff4 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -18,6 +18,7 @@
18#include <linux/io.h> 18#include <linux/io.h>
19#include <linux/mfd/abx500/ab8500.h> 19#include <linux/mfd/abx500/ab8500.h>
20 20
21#include <asm/pmu.h>
21#include <asm/mach/map.h> 22#include <asm/mach/map.h>
22#include <asm/pmu.h> 23#include <asm/pmu.h>
23#include <plat/gpio-nomadik.h> 24#include <plat/gpio-nomadik.h>
diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c
index 17a78ec516ff..8e755638aa76 100644
--- a/arch/arm/mach-ux500/cpu.c
+++ b/arch/arm/mach-ux500/cpu.c
@@ -49,6 +49,8 @@ void __init ux500_init_irq(void)
49 void __iomem *dist_base; 49 void __iomem *dist_base;
50 void __iomem *cpu_base; 50 void __iomem *cpu_base;
51 51
52 gic_arch_extn.flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND;
53
52 if (cpu_is_u8500_family()) { 54 if (cpu_is_u8500_family()) {
53 dist_base = __io_address(U8500_GIC_DIST_BASE); 55 dist_base = __io_address(U8500_GIC_DIST_BASE);
54 cpu_base = __io_address(U8500_GIC_CPU_BASE); 56 cpu_base = __io_address(U8500_GIC_CPU_BASE);
diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
index 2a8e380501e8..577baf7d0a8d 100644
--- a/arch/arm/mm/cache-l2x0.c
+++ b/arch/arm/mm/cache-l2x0.c
@@ -554,7 +554,7 @@ static const struct of_device_id l2x0_ids[] __initconst = {
554int __init l2x0_of_init(u32 aux_val, u32 aux_mask) 554int __init l2x0_of_init(u32 aux_val, u32 aux_mask)
555{ 555{
556 struct device_node *np; 556 struct device_node *np;
557 struct l2x0_of_data *data; 557 const struct l2x0_of_data *data;
558 struct resource res; 558 struct resource res;
559 559
560 np = of_find_matching_node(NULL, l2x0_ids); 560 np = of_find_matching_node(NULL, l2x0_ids);
diff --git a/arch/arm/plat-samsung/devs.c b/arch/arm/plat-samsung/devs.c
index fc49f3dabd76..2195209aa543 100644
--- a/arch/arm/plat-samsung/devs.c
+++ b/arch/arm/plat-samsung/devs.c
@@ -1591,6 +1591,8 @@ struct platform_device s3c64xx_device_spi1 = {
1591void __init s3c64xx_spi1_set_platdata(int (*cfg_gpio)(void), int src_clk_nr, 1591void __init s3c64xx_spi1_set_platdata(int (*cfg_gpio)(void), int src_clk_nr,
1592 int num_cs) 1592 int num_cs)
1593{ 1593{
1594 struct s3c64xx_spi_info pd;
1595
1594 /* Reject invalid configuration */ 1596 /* Reject invalid configuration */
1595 if (!num_cs || src_clk_nr < 0) { 1597 if (!num_cs || src_clk_nr < 0) {
1596 pr_err("%s: Invalid SPI configuration\n", __func__); 1598 pr_err("%s: Invalid SPI configuration\n", __func__);
diff --git a/arch/powerpc/platforms/83xx/suspend.c b/arch/powerpc/platforms/83xx/suspend.c
index 1a046715e461..1d769a29249f 100644
--- a/arch/powerpc/platforms/83xx/suspend.c
+++ b/arch/powerpc/platforms/83xx/suspend.c
@@ -326,7 +326,7 @@ static int pmc_probe(struct platform_device *ofdev)
326 const struct of_device_id *match; 326 const struct of_device_id *match;
327 struct device_node *np = ofdev->dev.of_node; 327 struct device_node *np = ofdev->dev.of_node;
328 struct resource res; 328 struct resource res;
329 struct pmc_type *type; 329 const struct pmc_type *type;
330 int ret = 0; 330 int ret = 0;
331 331
332 match = of_match_device(pmc_match, &ofdev->dev); 332 match = of_match_device(pmc_match, &ofdev->dev);
diff --git a/arch/powerpc/platforms/cell/celleb_pci.c b/arch/powerpc/platforms/cell/celleb_pci.c
index 5822141aa63f..abc8af43ea7c 100644
--- a/arch/powerpc/platforms/cell/celleb_pci.c
+++ b/arch/powerpc/platforms/cell/celleb_pci.c
@@ -472,7 +472,7 @@ int __init celleb_setup_phb(struct pci_controller *phb)
472{ 472{
473 struct device_node *dev = phb->dn; 473 struct device_node *dev = phb->dn;
474 const struct of_device_id *match; 474 const struct of_device_id *match;
475 struct celleb_phb_spec *phb_spec; 475 const struct celleb_phb_spec *phb_spec;
476 int rc; 476 int rc;
477 477
478 match = of_match_node(celleb_phb_match, dev); 478 match = of_match_node(celleb_phb_match, dev);
diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c
index 6e097de00e09..51ffafae561e 100644
--- a/arch/powerpc/sysdev/fsl_msi.c
+++ b/arch/powerpc/sysdev/fsl_msi.c
@@ -368,7 +368,7 @@ static int __devinit fsl_of_msi_probe(struct platform_device *dev)
368 int err, i, j, irq_index, count; 368 int err, i, j, irq_index, count;
369 int rc; 369 int rc;
370 const u32 *p; 370 const u32 *p;
371 struct fsl_msi_feature *features; 371 const struct fsl_msi_feature *features;
372 int len; 372 int len;
373 u32 offset; 373 u32 offset;
374 static const u32 all_avail[] = { 0, NR_MSI_IRQS }; 374 static const u32 all_avail[] = { 0, NR_MSI_IRQS };
@@ -502,15 +502,15 @@ static const struct fsl_msi_feature vmpic_msi_feature = {
502static const struct of_device_id fsl_of_msi_ids[] = { 502static const struct of_device_id fsl_of_msi_ids[] = {
503 { 503 {
504 .compatible = "fsl,mpic-msi", 504 .compatible = "fsl,mpic-msi",
505 .data = (void *)&mpic_msi_feature, 505 .data = &mpic_msi_feature,
506 }, 506 },
507 { 507 {
508 .compatible = "fsl,ipic-msi", 508 .compatible = "fsl,ipic-msi",
509 .data = (void *)&ipic_msi_feature, 509 .data = &ipic_msi_feature,
510 }, 510 },
511 { 511 {
512 .compatible = "fsl,vmpic-msi", 512 .compatible = "fsl,vmpic-msi",
513 .data = (void *)&vmpic_msi_feature, 513 .data = &vmpic_msi_feature,
514 }, 514 },
515 {} 515 {}
516}; 516};
diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c
index 24acd711e032..4708467e4d83 100644
--- a/drivers/dma/tegra20-apb-dma.c
+++ b/drivers/dma/tegra20-apb-dma.c
@@ -201,7 +201,7 @@ struct tegra_dma {
201 struct clk *dma_clk; 201 struct clk *dma_clk;
202 spinlock_t global_lock; 202 spinlock_t global_lock;
203 void __iomem *base_addr; 203 void __iomem *base_addr;
204 struct tegra_dma_chip_data *chip_data; 204 const struct tegra_dma_chip_data *chip_data;
205 205
206 /* Some register need to be cache before suspend */ 206 /* Some register need to be cache before suspend */
207 u32 reg_gen; 207 u32 reg_gen;
@@ -1173,14 +1173,14 @@ static void tegra_dma_free_chan_resources(struct dma_chan *dc)
1173} 1173}
1174 1174
1175/* Tegra20 specific DMA controller information */ 1175/* Tegra20 specific DMA controller information */
1176static struct tegra_dma_chip_data tegra20_dma_chip_data = { 1176static const struct tegra_dma_chip_data tegra20_dma_chip_data = {
1177 .nr_channels = 16, 1177 .nr_channels = 16,
1178 .max_dma_count = 1024UL * 64, 1178 .max_dma_count = 1024UL * 64,
1179}; 1179};
1180 1180
1181#if defined(CONFIG_OF) 1181#if defined(CONFIG_OF)
1182/* Tegra30 specific DMA controller information */ 1182/* Tegra30 specific DMA controller information */
1183static struct tegra_dma_chip_data tegra30_dma_chip_data = { 1183static const struct tegra_dma_chip_data tegra30_dma_chip_data = {
1184 .nr_channels = 32, 1184 .nr_channels = 32,
1185 .max_dma_count = 1024UL * 64, 1185 .max_dma_count = 1024UL * 64,
1186}; 1186};
@@ -1204,7 +1204,7 @@ static int __devinit tegra_dma_probe(struct platform_device *pdev)
1204 struct tegra_dma *tdma; 1204 struct tegra_dma *tdma;
1205 int ret; 1205 int ret;
1206 int i; 1206 int i;
1207 struct tegra_dma_chip_data *cdata = NULL; 1207 const struct tegra_dma_chip_data *cdata = NULL;
1208 1208
1209 if (pdev->dev.of_node) { 1209 if (pdev->dev.of_node) {
1210 const struct of_device_id *match; 1210 const struct of_device_id *match;
diff --git a/drivers/gpio/gpio-mpc8xxx.c b/drivers/gpio/gpio-mpc8xxx.c
index 5a1817eedd1b..9ae29cc0d17f 100644
--- a/drivers/gpio/gpio-mpc8xxx.c
+++ b/drivers/gpio/gpio-mpc8xxx.c
@@ -38,7 +38,7 @@ struct mpc8xxx_gpio_chip {
38 */ 38 */
39 u32 data; 39 u32 data;
40 struct irq_domain *irq; 40 struct irq_domain *irq;
41 void *of_dev_id_data; 41 const void *of_dev_id_data;
42}; 42};
43 43
44static inline u32 mpc8xxx_gpio2mask(unsigned int gpio) 44static inline u32 mpc8xxx_gpio2mask(unsigned int gpio)
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
index e6efd77668f0..0725d181581f 100644
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -1058,7 +1058,7 @@ static int __devinit omap_gpio_probe(struct platform_device *pdev)
1058 struct device *dev = &pdev->dev; 1058 struct device *dev = &pdev->dev;
1059 struct device_node *node = dev->of_node; 1059 struct device_node *node = dev->of_node;
1060 const struct of_device_id *match; 1060 const struct of_device_id *match;
1061 struct omap_gpio_platform_data *pdata; 1061 const struct omap_gpio_platform_data *pdata;
1062 struct resource *res; 1062 struct resource *res;
1063 struct gpio_bank *bank; 1063 struct gpio_bank *bank;
1064 int ret = 0; 1064 int ret = 0;
@@ -1440,19 +1440,19 @@ static struct omap_gpio_reg_offs omap4_gpio_regs = {
1440 .fallingdetect = OMAP4_GPIO_FALLINGDETECT, 1440 .fallingdetect = OMAP4_GPIO_FALLINGDETECT,
1441}; 1441};
1442 1442
1443static struct omap_gpio_platform_data omap2_pdata = { 1443const static struct omap_gpio_platform_data omap2_pdata = {
1444 .regs = &omap2_gpio_regs, 1444 .regs = &omap2_gpio_regs,
1445 .bank_width = 32, 1445 .bank_width = 32,
1446 .dbck_flag = false, 1446 .dbck_flag = false,
1447}; 1447};
1448 1448
1449static struct omap_gpio_platform_data omap3_pdata = { 1449const static struct omap_gpio_platform_data omap3_pdata = {
1450 .regs = &omap2_gpio_regs, 1450 .regs = &omap2_gpio_regs,
1451 .bank_width = 32, 1451 .bank_width = 32,
1452 .dbck_flag = true, 1452 .dbck_flag = true,
1453}; 1453};
1454 1454
1455static struct omap_gpio_platform_data omap4_pdata = { 1455const static struct omap_gpio_platform_data omap4_pdata = {
1456 .regs = &omap4_gpio_regs, 1456 .regs = &omap4_gpio_regs,
1457 .bank_width = 32, 1457 .bank_width = 32,
1458 .dbck_flag = true, 1458 .dbck_flag = true,
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index b76731edbf10..57f7703ce2e8 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -647,7 +647,7 @@ static int __devinit fsl_i2c_probe(struct platform_device *op)
647 } 647 }
648 648
649 if (match->data) { 649 if (match->data) {
650 struct mpc_i2c_data *data = match->data; 650 const struct mpc_i2c_data *data = match->data;
651 data->setup(op->dev.of_node, i2c, clock, data->prescaler); 651 data->setup(op->dev.of_node, i2c, clock, data->prescaler);
652 } else { 652 } else {
653 /* Backwards compatibility */ 653 /* Backwards compatibility */
@@ -730,24 +730,24 @@ static int mpc_i2c_resume(struct device *dev)
730SIMPLE_DEV_PM_OPS(mpc_i2c_pm_ops, mpc_i2c_suspend, mpc_i2c_resume); 730SIMPLE_DEV_PM_OPS(mpc_i2c_pm_ops, mpc_i2c_suspend, mpc_i2c_resume);
731#endif 731#endif
732 732
733static struct mpc_i2c_data mpc_i2c_data_512x __devinitdata = { 733static const struct mpc_i2c_data mpc_i2c_data_512x __devinitdata = {
734 .setup = mpc_i2c_setup_512x, 734 .setup = mpc_i2c_setup_512x,
735}; 735};
736 736
737static struct mpc_i2c_data mpc_i2c_data_52xx __devinitdata = { 737static const struct mpc_i2c_data mpc_i2c_data_52xx __devinitdata = {
738 .setup = mpc_i2c_setup_52xx, 738 .setup = mpc_i2c_setup_52xx,
739}; 739};
740 740
741static struct mpc_i2c_data mpc_i2c_data_8313 __devinitdata = { 741static const struct mpc_i2c_data mpc_i2c_data_8313 __devinitdata = {
742 .setup = mpc_i2c_setup_8xxx, 742 .setup = mpc_i2c_setup_8xxx,
743}; 743};
744 744
745static struct mpc_i2c_data mpc_i2c_data_8543 __devinitdata = { 745static const struct mpc_i2c_data mpc_i2c_data_8543 __devinitdata = {
746 .setup = mpc_i2c_setup_8xxx, 746 .setup = mpc_i2c_setup_8xxx,
747 .prescaler = 2, 747 .prescaler = 2,
748}; 748};
749 749
750static struct mpc_i2c_data mpc_i2c_data_8544 __devinitdata = { 750static const struct mpc_i2c_data mpc_i2c_data_8544 __devinitdata = {
751 .setup = mpc_i2c_setup_8xxx, 751 .setup = mpc_i2c_setup_8xxx,
752 .prescaler = 3, 752 .prescaler = 3,
753}; 753};
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 5d19a49803c1..a0e49f6aaf96 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -944,7 +944,8 @@ omap_i2c_probe(struct platform_device *pdev)
944 struct omap_i2c_dev *dev; 944 struct omap_i2c_dev *dev;
945 struct i2c_adapter *adap; 945 struct i2c_adapter *adap;
946 struct resource *mem, *irq, *ioarea; 946 struct resource *mem, *irq, *ioarea;
947 struct omap_i2c_bus_platform_data *pdata = pdev->dev.platform_data; 947 const struct omap_i2c_bus_platform_data *pdata =
948 pdev->dev.platform_data;
948 struct device_node *node = pdev->dev.of_node; 949 struct device_node *node = pdev->dev.of_node;
949 const struct of_device_id *match; 950 const struct of_device_id *match;
950 irq_handler_t isr; 951 irq_handler_t isr;
diff --git a/drivers/macintosh/mediabay.c b/drivers/macintosh/mediabay.c
index 831d7517c759..3f8d032f180f 100644
--- a/drivers/macintosh/mediabay.c
+++ b/drivers/macintosh/mediabay.c
@@ -63,7 +63,7 @@ struct media_bay_info {
63 int value_count; 63 int value_count;
64 int timer; 64 int timer;
65 struct macio_dev *mdev; 65 struct macio_dev *mdev;
66 struct mb_ops* ops; 66 const struct mb_ops* ops;
67 int index; 67 int index;
68 int cached_gpio; 68 int cached_gpio;
69 int sleeping; 69 int sleeping;
@@ -669,7 +669,7 @@ static int media_bay_resume(struct macio_dev *mdev)
669 669
670/* Definitions of "ops" structures. 670/* Definitions of "ops" structures.
671 */ 671 */
672static struct mb_ops ohare_mb_ops = { 672static const struct mb_ops ohare_mb_ops = {
673 .name = "Ohare", 673 .name = "Ohare",
674 .content = ohare_mb_content, 674 .content = ohare_mb_content,
675 .power = ohare_mb_power, 675 .power = ohare_mb_power,
@@ -678,7 +678,7 @@ static struct mb_ops ohare_mb_ops = {
678 .un_reset_ide = ohare_mb_un_reset_ide, 678 .un_reset_ide = ohare_mb_un_reset_ide,
679}; 679};
680 680
681static struct mb_ops heathrow_mb_ops = { 681static const struct mb_ops heathrow_mb_ops = {
682 .name = "Heathrow", 682 .name = "Heathrow",
683 .content = heathrow_mb_content, 683 .content = heathrow_mb_content,
684 .power = heathrow_mb_power, 684 .power = heathrow_mb_power,
@@ -687,7 +687,7 @@ static struct mb_ops heathrow_mb_ops = {
687 .un_reset_ide = heathrow_mb_un_reset_ide, 687 .un_reset_ide = heathrow_mb_un_reset_ide,
688}; 688};
689 689
690static struct mb_ops keylargo_mb_ops = { 690static const struct mb_ops keylargo_mb_ops = {
691 .name = "KeyLargo", 691 .name = "KeyLargo",
692 .init = keylargo_mb_init, 692 .init = keylargo_mb_init,
693 .content = keylargo_mb_content, 693 .content = keylargo_mb_content,
diff --git a/drivers/mfd/da9052-i2c.c b/drivers/mfd/da9052-i2c.c
index 82c9d6450286..352c58b5a90d 100644
--- a/drivers/mfd/da9052-i2c.c
+++ b/drivers/mfd/da9052-i2c.c
@@ -46,7 +46,7 @@ static int da9052_i2c_enable_multiwrite(struct da9052 *da9052)
46 return 0; 46 return 0;
47} 47}
48 48
49static struct i2c_device_id da9052_i2c_id[] = { 49static const struct i2c_device_id da9052_i2c_id[] = {
50 {"da9052", DA9052}, 50 {"da9052", DA9052},
51 {"da9053-aa", DA9053_AA}, 51 {"da9053-aa", DA9053_AA},
52 {"da9053-ba", DA9053_BA}, 52 {"da9053-ba", DA9053_BA},
@@ -104,7 +104,7 @@ static int __devinit da9052_i2c_probe(struct i2c_client *client,
104 const struct of_device_id *deviceid; 104 const struct of_device_id *deviceid;
105 105
106 deviceid = of_match_node(dialog_dt_ids, np); 106 deviceid = of_match_node(dialog_dt_ids, np);
107 id = (const struct i2c_device_id *)deviceid->data; 107 id = deviceid->data;
108 } 108 }
109#endif 109#endif
110 110
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 686e256764c8..8e2d81f1ee4b 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1782,7 +1782,7 @@ static int __devinit omap_hsmmc_probe(struct platform_device *pdev)
1782 if (match) { 1782 if (match) {
1783 pdata = of_get_hsmmc_pdata(&pdev->dev); 1783 pdata = of_get_hsmmc_pdata(&pdev->dev);
1784 if (match->data) { 1784 if (match->data) {
1785 u16 *offsetp = match->data; 1785 const u16 *offsetp = match->data;
1786 pdata->reg_offset = *offsetp; 1786 pdata->reg_offset = *offsetp;
1787 } 1787 }
1788 } 1788 }
diff --git a/drivers/net/can/mscan/mpc5xxx_can.c b/drivers/net/can/mscan/mpc5xxx_can.c
index 06adf881ea24..8a8df82988d1 100644
--- a/drivers/net/can/mscan/mpc5xxx_can.c
+++ b/drivers/net/can/mscan/mpc5xxx_can.c
@@ -380,12 +380,12 @@ static int mpc5xxx_can_resume(struct platform_device *ofdev)
380} 380}
381#endif 381#endif
382 382
383static struct mpc5xxx_can_data __devinitdata mpc5200_can_data = { 383static const struct mpc5xxx_can_data __devinitdata mpc5200_can_data = {
384 .type = MSCAN_TYPE_MPC5200, 384 .type = MSCAN_TYPE_MPC5200,
385 .get_clock = mpc52xx_can_get_clock, 385 .get_clock = mpc52xx_can_get_clock,
386}; 386};
387 387
388static struct mpc5xxx_can_data __devinitdata mpc5121_can_data = { 388static const struct mpc5xxx_can_data __devinitdata mpc5121_can_data = {
389 .type = MSCAN_TYPE_MPC5121, 389 .type = MSCAN_TYPE_MPC5121,
390 .get_clock = mpc512x_can_get_clock, 390 .get_clock = mpc512x_can_get_clock,
391}; 391};
diff --git a/drivers/pcmcia/pxa2xx_base.c b/drivers/pcmcia/pxa2xx_base.c
index 490bb82b5bdb..cfec9dd18ff5 100644
--- a/drivers/pcmcia/pxa2xx_base.c
+++ b/drivers/pcmcia/pxa2xx_base.c
@@ -297,7 +297,7 @@ static int pxa2xx_drv_pcmcia_probe(struct platform_device *dev)
297 } 297 }
298 298
299 clk = clk_get(&dev->dev, NULL); 299 clk = clk_get(&dev->dev, NULL);
300 if (!clk) 300 if (IS_ERR(clk))
301 return -ENODEV; 301 return -ENODEV;
302 302
303 pxa2xx_drv_pcmcia_ops(ops); 303 pxa2xx_drv_pcmcia_ops(ops);
diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c
index e834ff8c0188..3bd9c691b796 100644
--- a/drivers/spi/spi-imx.c
+++ b/drivers/spi/spi-imx.c
@@ -97,7 +97,7 @@ struct spi_imx_data {
97 const void *tx_buf; 97 const void *tx_buf;
98 unsigned int txfifo; /* number of words pushed in tx FIFO */ 98 unsigned int txfifo; /* number of words pushed in tx FIFO */
99 99
100 struct spi_imx_devtype_data *devtype_data; 100 const struct spi_imx_devtype_data *devtype_data;
101 int chipselect[0]; 101 int chipselect[0];
102}; 102};
103 103
diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
index b2fb141da375..569714ebffe0 100644
--- a/drivers/spi/spi-omap2-mcspi.c
+++ b/drivers/spi/spi-omap2-mcspi.c
@@ -1116,7 +1116,7 @@ MODULE_DEVICE_TABLE(of, omap_mcspi_of_match);
1116static int __devinit omap2_mcspi_probe(struct platform_device *pdev) 1116static int __devinit omap2_mcspi_probe(struct platform_device *pdev)
1117{ 1117{
1118 struct spi_master *master; 1118 struct spi_master *master;
1119 struct omap2_mcspi_platform_config *pdata; 1119 const struct omap2_mcspi_platform_config *pdata;
1120 struct omap2_mcspi *mcspi; 1120 struct omap2_mcspi *mcspi;
1121 struct resource *r; 1121 struct resource *r;
1122 int status = 0, i; 1122 int status = 0, i;
diff --git a/drivers/tty/serial/mpc52xx_uart.c b/drivers/tty/serial/mpc52xx_uart.c
index f19d04ed8586..8cf577008ad7 100644
--- a/drivers/tty/serial/mpc52xx_uart.c
+++ b/drivers/tty/serial/mpc52xx_uart.c
@@ -598,7 +598,7 @@ static struct psc_ops mpc512x_psc_ops = {
598}; 598};
599#endif 599#endif
600 600
601static struct psc_ops *psc_ops; 601static const struct psc_ops *psc_ops;
602 602
603/* ======================================================================== */ 603/* ======================================================================== */
604/* UART operations */ 604/* UART operations */
diff --git a/drivers/watchdog/mpc8xxx_wdt.c b/drivers/watchdog/mpc8xxx_wdt.c
index 40f7bf1f8654..e6a038ae8dc2 100644
--- a/drivers/watchdog/mpc8xxx_wdt.c
+++ b/drivers/watchdog/mpc8xxx_wdt.c
@@ -193,7 +193,7 @@ static int __devinit mpc8xxx_wdt_probe(struct platform_device *ofdev)
193 int ret; 193 int ret;
194 const struct of_device_id *match; 194 const struct of_device_id *match;
195 struct device_node *np = ofdev->dev.of_node; 195 struct device_node *np = ofdev->dev.of_node;
196 struct mpc8xxx_wdt_type *wdt_type; 196 const struct mpc8xxx_wdt_type *wdt_type;
197 u32 freq = fsl_get_sys_freq(); 197 u32 freq = fsl_get_sys_freq();
198 bool enabled; 198 bool enabled;
199 199
diff --git a/include/linux/atmel_tc.h b/include/linux/atmel_tc.h
index 1d14b1dc1aee..89a931babecf 100644
--- a/include/linux/atmel_tc.h
+++ b/include/linux/atmel_tc.h
@@ -63,7 +63,7 @@ struct atmel_tc {
63 struct platform_device *pdev; 63 struct platform_device *pdev;
64 struct resource *iomem; 64 struct resource *iomem;
65 void __iomem *regs; 65 void __iomem *regs;
66 struct atmel_tcb_config *tcb_config; 66 const struct atmel_tcb_config *tcb_config;
67 int irq[3]; 67 int irq[3];
68 struct clk *clk[3]; 68 struct clk *clk[3];
69 struct list_head node; 69 struct list_head node;
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
index 70c6a359b2f4..fed3def62818 100644
--- a/include/linux/mod_devicetable.h
+++ b/include/linux/mod_devicetable.h
@@ -232,7 +232,7 @@ struct of_device_id
232 char type[32]; 232 char type[32];
233 char compatible[128]; 233 char compatible[128];
234#ifdef __KERNEL__ 234#ifdef __KERNEL__
235 void *data; 235 const void *data;
236#else 236#else
237 kernel_ulong_t data; 237 kernel_ulong_t data;
238#endif 238#endif