aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-iop13xx
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-iop13xx')
-rw-r--r--arch/arm/mach-iop13xx/include/mach/io.h13
-rw-r--r--arch/arm/mach-iop13xx/include/mach/iop13xx.h1
-rw-r--r--arch/arm/mach-iop13xx/io.c20
-rw-r--r--arch/arm/mach-iop13xx/iq81340mc.c1
-rw-r--r--arch/arm/mach-iop13xx/iq81340sc.c1
-rw-r--r--arch/arm/mach-iop13xx/pci.h6
6 files changed, 21 insertions, 21 deletions
diff --git a/arch/arm/mach-iop13xx/include/mach/io.h b/arch/arm/mach-iop13xx/include/mach/io.h
index dffb234bb967..f13188518025 100644
--- a/arch/arm/mach-iop13xx/include/mach/io.h
+++ b/arch/arm/mach-iop13xx/include/mach/io.h
@@ -22,20 +22,7 @@
22#define IO_SPACE_LIMIT 0xffffffff 22#define IO_SPACE_LIMIT 0xffffffff
23 23
24#define __io(a) __iop13xx_io(a) 24#define __io(a) __iop13xx_io(a)
25#define __mem_pci(a) (a)
26#define __mem_isa(a) (a)
27 25
28extern void __iomem * __iop13xx_io(unsigned long io_addr); 26extern void __iomem * __iop13xx_io(unsigned long io_addr);
29extern void __iomem *__iop13xx_ioremap(unsigned long cookie, size_t size,
30 unsigned int mtype);
31extern void __iop13xx_iounmap(void __iomem *addr);
32
33extern u32 iop13xx_atue_mem_base;
34extern u32 iop13xx_atux_mem_base;
35extern size_t iop13xx_atue_mem_size;
36extern size_t iop13xx_atux_mem_size;
37
38#define __arch_ioremap __iop13xx_ioremap
39#define __arch_iounmap __iop13xx_iounmap
40 27
41#endif 28#endif
diff --git a/arch/arm/mach-iop13xx/include/mach/iop13xx.h b/arch/arm/mach-iop13xx/include/mach/iop13xx.h
index 07e9ff7adafb..e190dcd7d72d 100644
--- a/arch/arm/mach-iop13xx/include/mach/iop13xx.h
+++ b/arch/arm/mach-iop13xx/include/mach/iop13xx.h
@@ -5,6 +5,7 @@
5/* The ATU offsets can change based on the strapping */ 5/* The ATU offsets can change based on the strapping */
6extern u32 iop13xx_atux_pmmr_offset; 6extern u32 iop13xx_atux_pmmr_offset;
7extern u32 iop13xx_atue_pmmr_offset; 7extern u32 iop13xx_atue_pmmr_offset;
8void iop13xx_init_early(void);
8void iop13xx_init_irq(void); 9void iop13xx_init_irq(void);
9void iop13xx_map_io(void); 10void iop13xx_map_io(void);
10void iop13xx_platform_init(void); 11void iop13xx_platform_init(void);
diff --git a/arch/arm/mach-iop13xx/io.c b/arch/arm/mach-iop13xx/io.c
index 48642e66c566..3c364198db9c 100644
--- a/arch/arm/mach-iop13xx/io.c
+++ b/arch/arm/mach-iop13xx/io.c
@@ -21,6 +21,8 @@
21#include <linux/io.h> 21#include <linux/io.h>
22#include <mach/hardware.h> 22#include <mach/hardware.h>
23 23
24#include "pci.h"
25
24void * __iomem __iop13xx_io(unsigned long io_addr) 26void * __iomem __iop13xx_io(unsigned long io_addr)
25{ 27{
26 void __iomem * io_virt; 28 void __iomem * io_virt;
@@ -40,8 +42,8 @@ void * __iomem __iop13xx_io(unsigned long io_addr)
40} 42}
41EXPORT_SYMBOL(__iop13xx_io); 43EXPORT_SYMBOL(__iop13xx_io);
42 44
43void * __iomem __iop13xx_ioremap(unsigned long cookie, size_t size, 45static void __iomem *__iop13xx_ioremap_caller(unsigned long cookie,
44 unsigned int mtype) 46 size_t size, unsigned int mtype, void *caller)
45{ 47{
46 void __iomem * retval; 48 void __iomem * retval;
47 49
@@ -76,17 +78,14 @@ void * __iomem __iop13xx_ioremap(unsigned long cookie, size_t size,
76 break; 78 break;
77 default: 79 default:
78 retval = __arm_ioremap_caller(cookie, size, mtype, 80 retval = __arm_ioremap_caller(cookie, size, mtype,
79 __builtin_return_address(0)); 81 caller);
80 } 82 }
81 83
82 return retval; 84 return retval;
83} 85}
84EXPORT_SYMBOL(__iop13xx_ioremap);
85 86
86void __iop13xx_iounmap(void __iomem *addr) 87static void __iop13xx_iounmap(volatile void __iomem *addr)
87{ 88{
88 extern void __iounmap(volatile void __iomem *addr);
89
90 if (iop13xx_atue_mem_base) 89 if (iop13xx_atue_mem_base)
91 if (addr >= (void __iomem *) iop13xx_atue_mem_base && 90 if (addr >= (void __iomem *) iop13xx_atue_mem_base &&
92 addr < (void __iomem *) (iop13xx_atue_mem_base + 91 addr < (void __iomem *) (iop13xx_atue_mem_base +
@@ -110,4 +109,9 @@ void __iop13xx_iounmap(void __iomem *addr)
110skip: 109skip:
111 return; 110 return;
112} 111}
113EXPORT_SYMBOL(__iop13xx_iounmap); 112
113void __init iop13xx_init_early(void)
114{
115 arch_ioremap_caller = __iop13xx_ioremap_caller;
116 arch_iounmap = __iop13xx_iounmap;
117}
diff --git a/arch/arm/mach-iop13xx/iq81340mc.c b/arch/arm/mach-iop13xx/iq81340mc.c
index abaee8833588..5c96b73e6964 100644
--- a/arch/arm/mach-iop13xx/iq81340mc.c
+++ b/arch/arm/mach-iop13xx/iq81340mc.c
@@ -92,6 +92,7 @@ static struct sys_timer iq81340mc_timer = {
92MACHINE_START(IQ81340MC, "Intel IQ81340MC") 92MACHINE_START(IQ81340MC, "Intel IQ81340MC")
93 /* Maintainer: Dan Williams <dan.j.williams@intel.com> */ 93 /* Maintainer: Dan Williams <dan.j.williams@intel.com> */
94 .atag_offset = 0x100, 94 .atag_offset = 0x100,
95 .init_early = iop13xx_init_early,
95 .map_io = iop13xx_map_io, 96 .map_io = iop13xx_map_io,
96 .init_irq = iop13xx_init_irq, 97 .init_irq = iop13xx_init_irq,
97 .timer = &iq81340mc_timer, 98 .timer = &iq81340mc_timer,
diff --git a/arch/arm/mach-iop13xx/iq81340sc.c b/arch/arm/mach-iop13xx/iq81340sc.c
index 690916a09dc6..aa4dd750135a 100644
--- a/arch/arm/mach-iop13xx/iq81340sc.c
+++ b/arch/arm/mach-iop13xx/iq81340sc.c
@@ -94,6 +94,7 @@ static struct sys_timer iq81340sc_timer = {
94MACHINE_START(IQ81340SC, "Intel IQ81340SC") 94MACHINE_START(IQ81340SC, "Intel IQ81340SC")
95 /* Maintainer: Dan Williams <dan.j.williams@intel.com> */ 95 /* Maintainer: Dan Williams <dan.j.williams@intel.com> */
96 .atag_offset = 0x100, 96 .atag_offset = 0x100,
97 .init_early = iop13xx_init_early,
97 .map_io = iop13xx_map_io, 98 .map_io = iop13xx_map_io,
98 .init_irq = iop13xx_init_irq, 99 .init_irq = iop13xx_init_irq,
99 .timer = &iq81340sc_timer, 100 .timer = &iq81340sc_timer,
diff --git a/arch/arm/mach-iop13xx/pci.h b/arch/arm/mach-iop13xx/pci.h
new file mode 100644
index 000000000000..c70cf5b41e31
--- /dev/null
+++ b/arch/arm/mach-iop13xx/pci.h
@@ -0,0 +1,6 @@
1#include <linux/types.h>
2
3extern u32 iop13xx_atue_mem_base;
4extern u32 iop13xx_atux_mem_base;
5extern size_t iop13xx_atue_mem_size;
6extern size_t iop13xx_atux_mem_size;