diff options
Diffstat (limited to 'arch/arm/plat-omap/io.c')
-rw-r--r-- | arch/arm/plat-omap/io.c | 62 |
1 files changed, 33 insertions, 29 deletions
diff --git a/arch/arm/plat-omap/io.c b/arch/arm/plat-omap/io.c index b6defa23e77e..b0078cf96281 100644 --- a/arch/arm/plat-omap/io.c +++ b/arch/arm/plat-omap/io.c | |||
@@ -13,12 +13,12 @@ | |||
13 | #include <linux/io.h> | 13 | #include <linux/io.h> |
14 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
15 | 15 | ||
16 | #include <mach/omap730.h> | 16 | #include <plat/omap7xx.h> |
17 | #include <mach/omap1510.h> | 17 | #include <plat/omap1510.h> |
18 | #include <mach/omap16xx.h> | 18 | #include <plat/omap16xx.h> |
19 | #include <mach/omap24xx.h> | 19 | #include <plat/omap24xx.h> |
20 | #include <mach/omap34xx.h> | 20 | #include <plat/omap34xx.h> |
21 | #include <mach/omap44xx.h> | 21 | #include <plat/omap44xx.h> |
22 | 22 | ||
23 | #define BETWEEN(p,st,sz) ((p) >= (st) && (p) < ((st) + (sz))) | 23 | #define BETWEEN(p,st,sz) ((p) >= (st) && (p) < ((st) + (sz))) |
24 | #define XLATE(p,pst,vst) ((void __iomem *)((p) - (pst) + (vst))) | 24 | #define XLATE(p,pst,vst) ((void __iomem *)((p) - (pst) + (vst))) |
@@ -33,13 +33,13 @@ void __iomem *omap_ioremap(unsigned long p, size_t size, unsigned int type) | |||
33 | if (BETWEEN(p, OMAP1_IO_PHYS, OMAP1_IO_SIZE)) | 33 | if (BETWEEN(p, OMAP1_IO_PHYS, OMAP1_IO_SIZE)) |
34 | return XLATE(p, OMAP1_IO_PHYS, OMAP1_IO_VIRT); | 34 | return XLATE(p, OMAP1_IO_PHYS, OMAP1_IO_VIRT); |
35 | } | 35 | } |
36 | if (cpu_is_omap730()) { | 36 | if (cpu_is_omap7xx()) { |
37 | if (BETWEEN(p, OMAP730_DSP_BASE, OMAP730_DSP_SIZE)) | 37 | if (BETWEEN(p, OMAP7XX_DSP_BASE, OMAP7XX_DSP_SIZE)) |
38 | return XLATE(p, OMAP730_DSP_BASE, OMAP730_DSP_START); | 38 | return XLATE(p, OMAP7XX_DSP_BASE, OMAP7XX_DSP_START); |
39 | 39 | ||
40 | if (BETWEEN(p, OMAP730_DSPREG_BASE, OMAP730_DSPREG_SIZE)) | 40 | if (BETWEEN(p, OMAP7XX_DSPREG_BASE, OMAP7XX_DSPREG_SIZE)) |
41 | return XLATE(p, OMAP730_DSPREG_BASE, | 41 | return XLATE(p, OMAP7XX_DSPREG_BASE, |
42 | OMAP730_DSPREG_START); | 42 | OMAP7XX_DSPREG_START); |
43 | } | 43 | } |
44 | if (cpu_is_omap15xx()) { | 44 | if (cpu_is_omap15xx()) { |
45 | if (BETWEEN(p, OMAP1510_DSP_BASE, OMAP1510_DSP_SIZE)) | 45 | if (BETWEEN(p, OMAP1510_DSP_BASE, OMAP1510_DSP_SIZE)) |
@@ -66,12 +66,12 @@ void __iomem *omap_ioremap(unsigned long p, size_t size, unsigned int type) | |||
66 | return XLATE(p, L4_24XX_PHYS, L4_24XX_VIRT); | 66 | return XLATE(p, L4_24XX_PHYS, L4_24XX_VIRT); |
67 | } | 67 | } |
68 | if (cpu_is_omap2420()) { | 68 | if (cpu_is_omap2420()) { |
69 | if (BETWEEN(p, DSP_MEM_24XX_PHYS, DSP_MEM_24XX_SIZE)) | 69 | if (BETWEEN(p, DSP_MEM_2420_PHYS, DSP_MEM_2420_SIZE)) |
70 | return XLATE(p, DSP_MEM_24XX_PHYS, DSP_MEM_24XX_VIRT); | 70 | return XLATE(p, DSP_MEM_2420_PHYS, DSP_MEM_2420_VIRT); |
71 | if (BETWEEN(p, DSP_IPI_24XX_PHYS, DSP_IPI_24XX_SIZE)) | 71 | if (BETWEEN(p, DSP_IPI_2420_PHYS, DSP_IPI_2420_SIZE)) |
72 | return XLATE(p, DSP_IPI_24XX_PHYS, DSP_IPI_24XX_SIZE); | 72 | return XLATE(p, DSP_IPI_2420_PHYS, DSP_IPI_2420_SIZE); |
73 | if (BETWEEN(p, DSP_MMU_24XX_PHYS, DSP_MMU_24XX_SIZE)) | 73 | if (BETWEEN(p, DSP_MMU_2420_PHYS, DSP_MMU_2420_SIZE)) |
74 | return XLATE(p, DSP_MMU_24XX_PHYS, DSP_MMU_24XX_VIRT); | 74 | return XLATE(p, DSP_MMU_2420_PHYS, DSP_MMU_2420_VIRT); |
75 | } | 75 | } |
76 | if (cpu_is_omap2430()) { | 76 | if (cpu_is_omap2430()) { |
77 | if (BETWEEN(p, L4_WK_243X_PHYS, L4_WK_243X_SIZE)) | 77 | if (BETWEEN(p, L4_WK_243X_PHYS, L4_WK_243X_SIZE)) |
@@ -90,8 +90,6 @@ void __iomem *omap_ioremap(unsigned long p, size_t size, unsigned int type) | |||
90 | return XLATE(p, L3_34XX_PHYS, L3_34XX_VIRT); | 90 | return XLATE(p, L3_34XX_PHYS, L3_34XX_VIRT); |
91 | if (BETWEEN(p, L4_34XX_PHYS, L4_34XX_SIZE)) | 91 | if (BETWEEN(p, L4_34XX_PHYS, L4_34XX_SIZE)) |
92 | return XLATE(p, L4_34XX_PHYS, L4_34XX_VIRT); | 92 | return XLATE(p, L4_34XX_PHYS, L4_34XX_VIRT); |
93 | if (BETWEEN(p, L4_WK_34XX_PHYS, L4_WK_34XX_SIZE)) | ||
94 | return XLATE(p, L4_WK_34XX_PHYS, L4_WK_34XX_VIRT); | ||
95 | if (BETWEEN(p, OMAP34XX_GPMC_PHYS, OMAP34XX_GPMC_SIZE)) | 93 | if (BETWEEN(p, OMAP34XX_GPMC_PHYS, OMAP34XX_GPMC_SIZE)) |
96 | return XLATE(p, OMAP34XX_GPMC_PHYS, OMAP34XX_GPMC_VIRT); | 94 | return XLATE(p, OMAP34XX_GPMC_PHYS, OMAP34XX_GPMC_VIRT); |
97 | if (BETWEEN(p, OMAP343X_SMS_PHYS, OMAP343X_SMS_SIZE)) | 95 | if (BETWEEN(p, OMAP343X_SMS_PHYS, OMAP343X_SMS_SIZE)) |
@@ -110,17 +108,23 @@ void __iomem *omap_ioremap(unsigned long p, size_t size, unsigned int type) | |||
110 | return XLATE(p, L3_44XX_PHYS, L3_44XX_VIRT); | 108 | return XLATE(p, L3_44XX_PHYS, L3_44XX_VIRT); |
111 | if (BETWEEN(p, L4_44XX_PHYS, L4_44XX_SIZE)) | 109 | if (BETWEEN(p, L4_44XX_PHYS, L4_44XX_SIZE)) |
112 | return XLATE(p, L4_44XX_PHYS, L4_44XX_VIRT); | 110 | return XLATE(p, L4_44XX_PHYS, L4_44XX_VIRT); |
113 | if (BETWEEN(p, L4_WK_44XX_PHYS, L4_WK_44XX_SIZE)) | ||
114 | return XLATE(p, L4_WK_44XX_PHYS, L4_WK_44XX_VIRT); | ||
115 | if (BETWEEN(p, OMAP44XX_GPMC_PHYS, OMAP44XX_GPMC_SIZE)) | 111 | if (BETWEEN(p, OMAP44XX_GPMC_PHYS, OMAP44XX_GPMC_SIZE)) |
116 | return XLATE(p, OMAP44XX_GPMC_PHYS, OMAP44XX_GPMC_VIRT); | 112 | return XLATE(p, OMAP44XX_GPMC_PHYS, OMAP44XX_GPMC_VIRT); |
113 | if (BETWEEN(p, OMAP44XX_EMIF1_PHYS, OMAP44XX_EMIF1_SIZE)) | ||
114 | return XLATE(p, OMAP44XX_EMIF1_PHYS, \ | ||
115 | OMAP44XX_EMIF1_VIRT); | ||
116 | if (BETWEEN(p, OMAP44XX_EMIF2_PHYS, OMAP44XX_EMIF2_SIZE)) | ||
117 | return XLATE(p, OMAP44XX_EMIF2_PHYS, \ | ||
118 | OMAP44XX_EMIF2_VIRT); | ||
119 | if (BETWEEN(p, OMAP44XX_DMM_PHYS, OMAP44XX_DMM_SIZE)) | ||
120 | return XLATE(p, OMAP44XX_DMM_PHYS, OMAP44XX_DMM_VIRT); | ||
117 | if (BETWEEN(p, L4_PER_44XX_PHYS, L4_PER_44XX_SIZE)) | 121 | if (BETWEEN(p, L4_PER_44XX_PHYS, L4_PER_44XX_SIZE)) |
118 | return XLATE(p, L4_PER_44XX_PHYS, L4_PER_44XX_VIRT); | 122 | return XLATE(p, L4_PER_44XX_PHYS, L4_PER_44XX_VIRT); |
119 | if (BETWEEN(p, L4_EMU_44XX_PHYS, L4_EMU_44XX_SIZE)) | 123 | if (BETWEEN(p, L4_EMU_44XX_PHYS, L4_EMU_44XX_SIZE)) |
120 | return XLATE(p, L4_EMU_44XX_PHYS, L4_EMU_44XX_VIRT); | 124 | return XLATE(p, L4_EMU_44XX_PHYS, L4_EMU_44XX_VIRT); |
121 | } | 125 | } |
122 | #endif | 126 | #endif |
123 | return __arm_ioremap(p, size, type); | 127 | return __arm_ioremap_caller(p, size, type, __builtin_return_address(0)); |
124 | } | 128 | } |
125 | EXPORT_SYMBOL(omap_ioremap); | 129 | EXPORT_SYMBOL(omap_ioremap); |
126 | 130 | ||
@@ -142,7 +146,7 @@ u8 omap_readb(u32 pa) | |||
142 | if (cpu_class_is_omap1()) | 146 | if (cpu_class_is_omap1()) |
143 | return __raw_readb(OMAP1_IO_ADDRESS(pa)); | 147 | return __raw_readb(OMAP1_IO_ADDRESS(pa)); |
144 | else | 148 | else |
145 | return __raw_readb(OMAP2_IO_ADDRESS(pa)); | 149 | return __raw_readb(OMAP2_L4_IO_ADDRESS(pa)); |
146 | } | 150 | } |
147 | EXPORT_SYMBOL(omap_readb); | 151 | EXPORT_SYMBOL(omap_readb); |
148 | 152 | ||
@@ -151,7 +155,7 @@ u16 omap_readw(u32 pa) | |||
151 | if (cpu_class_is_omap1()) | 155 | if (cpu_class_is_omap1()) |
152 | return __raw_readw(OMAP1_IO_ADDRESS(pa)); | 156 | return __raw_readw(OMAP1_IO_ADDRESS(pa)); |
153 | else | 157 | else |
154 | return __raw_readw(OMAP2_IO_ADDRESS(pa)); | 158 | return __raw_readw(OMAP2_L4_IO_ADDRESS(pa)); |
155 | } | 159 | } |
156 | EXPORT_SYMBOL(omap_readw); | 160 | EXPORT_SYMBOL(omap_readw); |
157 | 161 | ||
@@ -160,7 +164,7 @@ u32 omap_readl(u32 pa) | |||
160 | if (cpu_class_is_omap1()) | 164 | if (cpu_class_is_omap1()) |
161 | return __raw_readl(OMAP1_IO_ADDRESS(pa)); | 165 | return __raw_readl(OMAP1_IO_ADDRESS(pa)); |
162 | else | 166 | else |
163 | return __raw_readl(OMAP2_IO_ADDRESS(pa)); | 167 | return __raw_readl(OMAP2_L4_IO_ADDRESS(pa)); |
164 | } | 168 | } |
165 | EXPORT_SYMBOL(omap_readl); | 169 | EXPORT_SYMBOL(omap_readl); |
166 | 170 | ||
@@ -169,7 +173,7 @@ void omap_writeb(u8 v, u32 pa) | |||
169 | if (cpu_class_is_omap1()) | 173 | if (cpu_class_is_omap1()) |
170 | __raw_writeb(v, OMAP1_IO_ADDRESS(pa)); | 174 | __raw_writeb(v, OMAP1_IO_ADDRESS(pa)); |
171 | else | 175 | else |
172 | __raw_writeb(v, OMAP2_IO_ADDRESS(pa)); | 176 | __raw_writeb(v, OMAP2_L4_IO_ADDRESS(pa)); |
173 | } | 177 | } |
174 | EXPORT_SYMBOL(omap_writeb); | 178 | EXPORT_SYMBOL(omap_writeb); |
175 | 179 | ||
@@ -178,7 +182,7 @@ void omap_writew(u16 v, u32 pa) | |||
178 | if (cpu_class_is_omap1()) | 182 | if (cpu_class_is_omap1()) |
179 | __raw_writew(v, OMAP1_IO_ADDRESS(pa)); | 183 | __raw_writew(v, OMAP1_IO_ADDRESS(pa)); |
180 | else | 184 | else |
181 | __raw_writew(v, OMAP2_IO_ADDRESS(pa)); | 185 | __raw_writew(v, OMAP2_L4_IO_ADDRESS(pa)); |
182 | } | 186 | } |
183 | EXPORT_SYMBOL(omap_writew); | 187 | EXPORT_SYMBOL(omap_writew); |
184 | 188 | ||
@@ -187,6 +191,6 @@ void omap_writel(u32 v, u32 pa) | |||
187 | if (cpu_class_is_omap1()) | 191 | if (cpu_class_is_omap1()) |
188 | __raw_writel(v, OMAP1_IO_ADDRESS(pa)); | 192 | __raw_writel(v, OMAP1_IO_ADDRESS(pa)); |
189 | else | 193 | else |
190 | __raw_writel(v, OMAP2_IO_ADDRESS(pa)); | 194 | __raw_writel(v, OMAP2_L4_IO_ADDRESS(pa)); |
191 | } | 195 | } |
192 | EXPORT_SYMBOL(omap_writel); | 196 | EXPORT_SYMBOL(omap_writel); |