diff options
author | Arnd Bergmann <arnd@arndb.de> | 2012-09-14 16:19:40 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-09-19 09:19:13 -0400 |
commit | 13ec32f47cb42cecc9cd262c307ef9377c601007 (patch) | |
tree | bcb822eb8b6b2f446a6dddc621dbca1306ada432 /arch/arm/mach-ixp4xx | |
parent | 3c65c6bac723dc0f418d50de9b2ba8b52ff79f2d (diff) |
ARM: ixp4xx: use __iomem pointers for MMIO
ARM is moving to stricter checks on readl/write functions,
so we need to use the correct types everywhere.
At the moment, this patch conflicts with other patches in linux-next,
need to sort this out.
Cc: Imre Kaloz <kaloz@openwrt.org>
Cc: Krzysztof Halasa <khc@pm.waw.pl>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/mach-ixp4xx')
-rw-r--r-- | arch/arm/mach-ixp4xx/common.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-ixp4xx/include/mach/cpu.h | 5 | ||||
-rw-r--r-- | arch/arm/mach-ixp4xx/include/mach/ixp4xx-regs.h | 10 |
3 files changed, 12 insertions, 11 deletions
diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c index a9f80943d01..fdf91a16088 100644 --- a/arch/arm/mach-ixp4xx/common.c +++ b/arch/arm/mach-ixp4xx/common.c | |||
@@ -53,24 +53,24 @@ static struct clock_event_device clockevent_ixp4xx; | |||
53 | *************************************************************************/ | 53 | *************************************************************************/ |
54 | static struct map_desc ixp4xx_io_desc[] __initdata = { | 54 | static struct map_desc ixp4xx_io_desc[] __initdata = { |
55 | { /* UART, Interrupt ctrl, GPIO, timers, NPEs, MACs, USB .... */ | 55 | { /* UART, Interrupt ctrl, GPIO, timers, NPEs, MACs, USB .... */ |
56 | .virtual = IXP4XX_PERIPHERAL_BASE_VIRT, | 56 | .virtual = (unsigned long)IXP4XX_PERIPHERAL_BASE_VIRT, |
57 | .pfn = __phys_to_pfn(IXP4XX_PERIPHERAL_BASE_PHYS), | 57 | .pfn = __phys_to_pfn(IXP4XX_PERIPHERAL_BASE_PHYS), |
58 | .length = IXP4XX_PERIPHERAL_REGION_SIZE, | 58 | .length = IXP4XX_PERIPHERAL_REGION_SIZE, |
59 | .type = MT_DEVICE | 59 | .type = MT_DEVICE |
60 | }, { /* Expansion Bus Config Registers */ | 60 | }, { /* Expansion Bus Config Registers */ |
61 | .virtual = IXP4XX_EXP_CFG_BASE_VIRT, | 61 | .virtual = (unsigned long)IXP4XX_EXP_CFG_BASE_VIRT, |
62 | .pfn = __phys_to_pfn(IXP4XX_EXP_CFG_BASE_PHYS), | 62 | .pfn = __phys_to_pfn(IXP4XX_EXP_CFG_BASE_PHYS), |
63 | .length = IXP4XX_EXP_CFG_REGION_SIZE, | 63 | .length = IXP4XX_EXP_CFG_REGION_SIZE, |
64 | .type = MT_DEVICE | 64 | .type = MT_DEVICE |
65 | }, { /* PCI Registers */ | 65 | }, { /* PCI Registers */ |
66 | .virtual = IXP4XX_PCI_CFG_BASE_VIRT, | 66 | .virtual = (unsigned long)IXP4XX_PCI_CFG_BASE_VIRT, |
67 | .pfn = __phys_to_pfn(IXP4XX_PCI_CFG_BASE_PHYS), | 67 | .pfn = __phys_to_pfn(IXP4XX_PCI_CFG_BASE_PHYS), |
68 | .length = IXP4XX_PCI_CFG_REGION_SIZE, | 68 | .length = IXP4XX_PCI_CFG_REGION_SIZE, |
69 | .type = MT_DEVICE | 69 | .type = MT_DEVICE |
70 | }, | 70 | }, |
71 | #ifdef CONFIG_DEBUG_LL | 71 | #ifdef CONFIG_DEBUG_LL |
72 | { /* Debug UART mapping */ | 72 | { /* Debug UART mapping */ |
73 | .virtual = IXP4XX_DEBUG_UART_BASE_VIRT, | 73 | .virtual = (unsigned long)IXP4XX_DEBUG_UART_BASE_VIRT, |
74 | .pfn = __phys_to_pfn(IXP4XX_DEBUG_UART_BASE_PHYS), | 74 | .pfn = __phys_to_pfn(IXP4XX_DEBUG_UART_BASE_PHYS), |
75 | .length = IXP4XX_DEBUG_UART_REGION_SIZE, | 75 | .length = IXP4XX_DEBUG_UART_REGION_SIZE, |
76 | .type = MT_DEVICE | 76 | .type = MT_DEVICE |
diff --git a/arch/arm/mach-ixp4xx/include/mach/cpu.h b/arch/arm/mach-ixp4xx/include/mach/cpu.h index b2ef65db0e9..ebc0ba31ce8 100644 --- a/arch/arm/mach-ixp4xx/include/mach/cpu.h +++ b/arch/arm/mach-ixp4xx/include/mach/cpu.h | |||
@@ -14,6 +14,7 @@ | |||
14 | #ifndef __ASM_ARCH_CPU_H__ | 14 | #ifndef __ASM_ARCH_CPU_H__ |
15 | #define __ASM_ARCH_CPU_H__ | 15 | #define __ASM_ARCH_CPU_H__ |
16 | 16 | ||
17 | #include <linux/io.h> | ||
17 | #include <asm/cputype.h> | 18 | #include <asm/cputype.h> |
18 | 19 | ||
19 | /* Processor id value in CP15 Register 0 */ | 20 | /* Processor id value in CP15 Register 0 */ |
@@ -37,7 +38,7 @@ | |||
37 | 38 | ||
38 | static inline u32 ixp4xx_read_feature_bits(void) | 39 | static inline u32 ixp4xx_read_feature_bits(void) |
39 | { | 40 | { |
40 | u32 val = ~*IXP4XX_EXP_CFG2; | 41 | u32 val = ~__raw_readl(IXP4XX_EXP_CFG2); |
41 | 42 | ||
42 | if (cpu_is_ixp42x_rev_a0()) | 43 | if (cpu_is_ixp42x_rev_a0()) |
43 | return IXP42X_FEATURE_MASK & ~(IXP4XX_FEATURE_RCOMP | | 44 | return IXP42X_FEATURE_MASK & ~(IXP4XX_FEATURE_RCOMP | |
@@ -51,7 +52,7 @@ static inline u32 ixp4xx_read_feature_bits(void) | |||
51 | 52 | ||
52 | static inline void ixp4xx_write_feature_bits(u32 value) | 53 | static inline void ixp4xx_write_feature_bits(u32 value) |
53 | { | 54 | { |
54 | *IXP4XX_EXP_CFG2 = ~value; | 55 | __raw_writel(~value, IXP4XX_EXP_CFG2); |
55 | } | 56 | } |
56 | 57 | ||
57 | #endif /* _ASM_ARCH_CPU_H */ | 58 | #endif /* _ASM_ARCH_CPU_H */ |
diff --git a/arch/arm/mach-ixp4xx/include/mach/ixp4xx-regs.h b/arch/arm/mach-ixp4xx/include/mach/ixp4xx-regs.h index 97c530f66e7..eb68b61ce97 100644 --- a/arch/arm/mach-ixp4xx/include/mach/ixp4xx-regs.h +++ b/arch/arm/mach-ixp4xx/include/mach/ixp4xx-regs.h | |||
@@ -49,21 +49,21 @@ | |||
49 | * Expansion BUS Configuration registers | 49 | * Expansion BUS Configuration registers |
50 | */ | 50 | */ |
51 | #define IXP4XX_EXP_CFG_BASE_PHYS (0xC4000000) | 51 | #define IXP4XX_EXP_CFG_BASE_PHYS (0xC4000000) |
52 | #define IXP4XX_EXP_CFG_BASE_VIRT (0xFFBFE000) | 52 | #define IXP4XX_EXP_CFG_BASE_VIRT IOMEM(0xFFBFE000) |
53 | #define IXP4XX_EXP_CFG_REGION_SIZE (0x00001000) | 53 | #define IXP4XX_EXP_CFG_REGION_SIZE (0x00001000) |
54 | 54 | ||
55 | /* | 55 | /* |
56 | * PCI Config registers | 56 | * PCI Config registers |
57 | */ | 57 | */ |
58 | #define IXP4XX_PCI_CFG_BASE_PHYS (0xC0000000) | 58 | #define IXP4XX_PCI_CFG_BASE_PHYS (0xC0000000) |
59 | #define IXP4XX_PCI_CFG_BASE_VIRT (0xFFBFF000) | 59 | #define IXP4XX_PCI_CFG_BASE_VIRT IOMEM(0xFFBFF000) |
60 | #define IXP4XX_PCI_CFG_REGION_SIZE (0x00001000) | 60 | #define IXP4XX_PCI_CFG_REGION_SIZE (0x00001000) |
61 | 61 | ||
62 | /* | 62 | /* |
63 | * Peripheral space | 63 | * Peripheral space |
64 | */ | 64 | */ |
65 | #define IXP4XX_PERIPHERAL_BASE_PHYS (0xC8000000) | 65 | #define IXP4XX_PERIPHERAL_BASE_PHYS (0xC8000000) |
66 | #define IXP4XX_PERIPHERAL_BASE_VIRT (0xFFBEB000) | 66 | #define IXP4XX_PERIPHERAL_BASE_VIRT IOMEM(0xFFBEB000) |
67 | #define IXP4XX_PERIPHERAL_REGION_SIZE (0x00013000) | 67 | #define IXP4XX_PERIPHERAL_REGION_SIZE (0x00013000) |
68 | 68 | ||
69 | /* | 69 | /* |
@@ -73,7 +73,7 @@ | |||
73 | * aligned so that it * can be used with the low-level debug code. | 73 | * aligned so that it * can be used with the low-level debug code. |
74 | */ | 74 | */ |
75 | #define IXP4XX_DEBUG_UART_BASE_PHYS (0xC8000000) | 75 | #define IXP4XX_DEBUG_UART_BASE_PHYS (0xC8000000) |
76 | #define IXP4XX_DEBUG_UART_BASE_VIRT (0xffb00000) | 76 | #define IXP4XX_DEBUG_UART_BASE_VIRT IOMEM(0xffb00000) |
77 | #define IXP4XX_DEBUG_UART_REGION_SIZE (0x00001000) | 77 | #define IXP4XX_DEBUG_UART_REGION_SIZE (0x00001000) |
78 | 78 | ||
79 | #define IXP4XX_EXP_CS0_OFFSET 0x00 | 79 | #define IXP4XX_EXP_CS0_OFFSET 0x00 |
@@ -92,7 +92,7 @@ | |||
92 | /* | 92 | /* |
93 | * Expansion Bus Controller registers. | 93 | * Expansion Bus Controller registers. |
94 | */ | 94 | */ |
95 | #define IXP4XX_EXP_REG(x) ((volatile u32 *)(IXP4XX_EXP_CFG_BASE_VIRT+(x))) | 95 | #define IXP4XX_EXP_REG(x) ((volatile u32 __iomem *)(IXP4XX_EXP_CFG_BASE_VIRT+(x))) |
96 | 96 | ||
97 | #define IXP4XX_EXP_CS0 IXP4XX_EXP_REG(IXP4XX_EXP_CS0_OFFSET) | 97 | #define IXP4XX_EXP_CS0 IXP4XX_EXP_REG(IXP4XX_EXP_CS0_OFFSET) |
98 | #define IXP4XX_EXP_CS1 IXP4XX_EXP_REG(IXP4XX_EXP_CS1_OFFSET) | 98 | #define IXP4XX_EXP_CS1 IXP4XX_EXP_REG(IXP4XX_EXP_CS1_OFFSET) |