blob: e0fec659a91d5142e6e5d2bfaa7dff6f7d26295c [file] [log] [blame]
Brian Swetland30421022007-11-26 04:11:43 -08001/* arch/arm/mach-msm/io.c
2 *
Daniel Walkercf62ffa2010-05-04 15:12:27 -07003 * MSM7K, QSD io support
Brian Swetland30421022007-11-26 04:11:43 -08004 *
5 * Copyright (C) 2007 Google, Inc.
Taniya Das43bcdd62011-12-02 17:33:27 +05306 * Copyright (c) 2008-2012, Code Aurora Forum. All rights reserved.
Brian Swetland30421022007-11-26 04:11:43 -08007 * Author: Brian Swetland <swetland@google.com>
8 *
9 * This software is licensed under the terms of the GNU General Public
10 * License version 2, as published by the Free Software Foundation, and
11 * may be copied, distributed, and modified under those terms.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 */
19
20#include <linux/kernel.h>
21#include <linux/init.h>
Russell Kingfced80c2008-09-06 12:10:45 +010022#include <linux/io.h>
Paul Gortmakerdc280942011-07-31 16:17:29 -040023#include <linux/export.h>
Brian Swetland30421022007-11-26 04:11:43 -080024
Russell Kinga09e64f2008-08-05 16:14:15 +010025#include <mach/hardware.h>
Brian Swetland30421022007-11-26 04:11:43 -080026#include <asm/page.h>
Russell Kinga09e64f2008-08-05 16:14:15 +010027#include <mach/msm_iomap.h>
Brian Swetland30421022007-11-26 04:11:43 -080028#include <asm/mach/map.h>
Steve Mucklef132c6c2012-06-06 18:30:57 -070029#include <linux/dma-mapping.h>
Brian Swetland30421022007-11-26 04:11:43 -080030
Russell Kinga09e64f2008-08-05 16:14:15 +010031#include <mach/board.h>
Brian Swetland30421022007-11-26 04:11:43 -080032
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070033#define MSM_CHIP_DEVICE(name, chip) { \
Brian Swetlandbcc0f6a2008-09-10 14:00:53 -070034 .virtual = (unsigned long) MSM_##name##_BASE, \
David Brown8c27e6f2011-01-07 10:20:49 -080035 .pfn = __phys_to_pfn(chip##_##name##_PHYS), \
36 .length = chip##_##name##_SIZE, \
Rohit Vaswanidba530e2012-06-12 20:04:28 -070037 .type = MT_DEVICE, \
Brian Swetland30421022007-11-26 04:11:43 -080038 }
39
David Brown8c27e6f2011-01-07 10:20:49 -080040#define MSM_DEVICE(name) MSM_CHIP_DEVICE(name, MSM)
41
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070042/* msm_shared_ram_phys default value of 0x00100000 is the most common value
43 * and should work as-is for any target without stacked memory.
44 */
45unsigned int msm_shared_ram_phys = 0x00100000;
46
Stephen Boyd552e4292012-02-21 01:27:20 -080047static void __init msm_map_io(struct map_desc *io_desc, int size)
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070048{
49 int i;
50
51 BUG_ON(!size);
52 for (i = 0; i < size; i++)
53 if (io_desc[i].virtual == (unsigned long)MSM_SHARED_RAM_BASE)
54 io_desc[i].pfn = __phys_to_pfn(msm_shared_ram_phys);
55
56 iotable_init(io_desc, size);
57}
58
59#if defined(CONFIG_ARCH_MSM7X01A) || defined(CONFIG_ARCH_MSM7X27) \
Daniel Walkercf62ffa2010-05-04 15:12:27 -070060 || defined(CONFIG_ARCH_MSM7X25)
Brian Swetland30421022007-11-26 04:11:43 -080061static struct map_desc msm_io_desc[] __initdata = {
Taniya Das13b811a2011-12-09 18:33:45 +053062 MSM_CHIP_DEVICE(VIC, MSM7XXX),
63 MSM_CHIP_DEVICE(CSR, MSM7XXX),
64 MSM_CHIP_DEVICE(TMR, MSM7XXX),
65 MSM_CHIP_DEVICE(GPIO1, MSM7XXX),
66 MSM_CHIP_DEVICE(GPIO2, MSM7XXX),
67 MSM_CHIP_DEVICE(CLK_CTL, MSM7XXX),
68 MSM_CHIP_DEVICE(AD5, MSM7XXX),
69 MSM_CHIP_DEVICE(MDC, MSM7XXX),
Stephen Boyd650e3f02011-11-08 10:33:03 -080070#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
71 defined(CONFIG_DEBUG_MSM_UART3)
Pavel Machek6339f662009-11-02 11:48:29 +010072 MSM_DEVICE(DEBUG_UART),
73#endif
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070074#ifdef CONFIG_CACHE_L2X0
75 {
76 .virtual = (unsigned long) MSM_L2CC_BASE,
Taniya Das13b811a2011-12-09 18:33:45 +053077 .pfn = __phys_to_pfn(MSM7XXX_L2CC_PHYS),
78 .length = MSM7XXX_L2CC_SIZE,
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070079 .type = MT_DEVICE,
80 },
Dima Zavinb42dc442010-01-29 11:43:42 -080081#endif
Brian Swetland30421022007-11-26 04:11:43 -080082 {
Brian Swetlandbcc0f6a2008-09-10 14:00:53 -070083 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
Brian Swetland30421022007-11-26 04:11:43 -080084 .length = MSM_SHARED_RAM_SIZE,
85 .type = MT_DEVICE,
86 },
87};
88
89void __init msm_map_common_io(void)
90{
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070091 /*Peripheral port memory remap, nothing looks to be there for
92 * cortex a5.
93 */
94#ifndef CONFIG_ARCH_MSM_CORTEX_A5
Brian Swetland30421022007-11-26 04:11:43 -080095 /* Make sure the peripheral register window is closed, since
96 * we will use PTE flags (TEX[1]=1,B=0,C=1) to determine which
97 * pages are peripheral interface or not.
98 */
99 asm("mcr p15, 0, %0, c15, c2, 4" : : "r" (0));
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700100#endif
101 msm_map_io(msm_io_desc, ARRAY_SIZE(msm_io_desc));
Brian Swetland30421022007-11-26 04:11:43 -0800102}
Daniel Walkercf62ffa2010-05-04 15:12:27 -0700103#endif
104
105#ifdef CONFIG_ARCH_QSD8X50
106static struct map_desc qsd8x50_io_desc[] __initdata = {
107 MSM_DEVICE(VIC),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700108 MSM_DEVICE(CSR),
109 MSM_DEVICE(TMR),
Daniel Walkercf62ffa2010-05-04 15:12:27 -0700110 MSM_DEVICE(GPIO1),
111 MSM_DEVICE(GPIO2),
112 MSM_DEVICE(CLK_CTL),
113 MSM_DEVICE(SIRC),
114 MSM_DEVICE(SCPLL),
115 MSM_DEVICE(AD5),
116 MSM_DEVICE(MDC),
Daniel Walkerc83b2bf2010-05-04 15:26:13 -0700117 MSM_DEVICE(TCSR),
Stephen Boyd650e3f02011-11-08 10:33:03 -0800118#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
119 defined(CONFIG_DEBUG_MSM_UART3)
Daniel Walkerc83b2bf2010-05-04 15:26:13 -0700120 MSM_DEVICE(DEBUG_UART),
121#endif
122 {
123 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
Daniel Walkercf62ffa2010-05-04 15:12:27 -0700124 .length = MSM_SHARED_RAM_SIZE,
125 .type = MT_DEVICE,
126 },
127};
128
129void __init msm_map_qsd8x50_io(void)
130{
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700131 msm_map_io(qsd8x50_io_desc, ARRAY_SIZE(qsd8x50_io_desc));
Daniel Walkercf62ffa2010-05-04 15:12:27 -0700132}
Brian Swetland30421022007-11-26 04:11:43 -0800133#endif /* CONFIG_ARCH_QSD8X50 */
Daniel Walkerc83b2bf2010-05-04 15:26:13 -0700134
135#ifdef CONFIG_ARCH_MSM8X60
136static struct map_desc msm8x60_io_desc[] __initdata = {
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700137 MSM_DEVICE(QGIC_DIST),
138 MSM_DEVICE(QGIC_CPU),
139 MSM_DEVICE(TMR),
140 MSM_DEVICE(TMR0),
141 MSM_DEVICE(RPM_MPM),
Daniel Walkerc83b2bf2010-05-04 15:26:13 -0700142 MSM_DEVICE(ACC),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700143 MSM_DEVICE(ACC0),
144 MSM_DEVICE(ACC1),
145 MSM_DEVICE(SAW0),
146 MSM_DEVICE(SAW1),
Daniel Walkerc83b2bf2010-05-04 15:26:13 -0700147 MSM_DEVICE(GCC),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700148 MSM_DEVICE(TLMM),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700149 MSM_DEVICE(SCPLL),
150 MSM_DEVICE(RPM),
151 MSM_DEVICE(CLK_CTL),
152 MSM_DEVICE(MMSS_CLK_CTL),
153 MSM_DEVICE(LPASS_CLK_CTL),
154 MSM_DEVICE(TCSR),
155 MSM_DEVICE(IMEM),
156 MSM_DEVICE(HDMI),
Sathish Ambleybb87d5f2011-11-08 15:14:01 -0800157#ifdef CONFIG_DEBUG_MSM8660_UART
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700158 MSM_DEVICE(DEBUG_UART),
159#endif
160 MSM_DEVICE(SIC_NON_SECURE),
161 {
162 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
163 .length = MSM_SHARED_RAM_SIZE,
164 .type = MT_DEVICE,
165 },
166 MSM_DEVICE(QFPROM),
Daniel Walkerc83b2bf2010-05-04 15:26:13 -0700167};
168
169void __init msm_map_msm8x60_io(void)
170{
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700171 msm_map_io(msm8x60_io_desc, ARRAY_SIZE(msm8x60_io_desc));
Steve Mucklef132c6c2012-06-06 18:30:57 -0700172 init_consistent_dma_size(14*SZ_1M);
Daniel Walkerc83b2bf2010-05-04 15:26:13 -0700173}
174#endif /* CONFIG_ARCH_MSM8X60 */
175
176#ifdef CONFIG_ARCH_MSM8960
177static struct map_desc msm8960_io_desc[] __initdata = {
178 MSM_CHIP_DEVICE(QGIC_DIST, MSM8960),
179 MSM_CHIP_DEVICE(QGIC_CPU, MSM8960),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700180 MSM_CHIP_DEVICE(ACC0, MSM8960),
181 MSM_CHIP_DEVICE(ACC1, MSM8960),
Daniel Walkerc83b2bf2010-05-04 15:26:13 -0700182 MSM_CHIP_DEVICE(TMR, MSM8960),
183 MSM_CHIP_DEVICE(TMR0, MSM8960),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700184 MSM_CHIP_DEVICE(RPM_MPM, MSM8960),
185 MSM_CHIP_DEVICE(CLK_CTL, MSM8960),
186 MSM_CHIP_DEVICE(MMSS_CLK_CTL, MSM8960),
187 MSM_CHIP_DEVICE(LPASS_CLK_CTL, MSM8960),
188 MSM_CHIP_DEVICE(RPM, MSM8960),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700189 MSM_CHIP_DEVICE(TLMM, MSM8960),
190 MSM_CHIP_DEVICE(HFPLL, MSM8960),
191 MSM_CHIP_DEVICE(SAW0, MSM8960),
192 MSM_CHIP_DEVICE(SAW1, MSM8960),
193 MSM_CHIP_DEVICE(SAW_L2, MSM8960),
194 MSM_CHIP_DEVICE(SIC_NON_SECURE, MSM8960),
195 MSM_CHIP_DEVICE(APCS_GCC, MSM8960),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700196 MSM_CHIP_DEVICE(IMEM, MSM8960),
197 MSM_CHIP_DEVICE(HDMI, MSM8960),
198 {
199 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
200 .length = MSM_SHARED_RAM_SIZE,
201 .type = MT_DEVICE,
202 },
Sathish Ambleybb87d5f2011-11-08 15:14:01 -0800203#ifdef CONFIG_DEBUG_MSM8960_UART
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700204 MSM_DEVICE(DEBUG_UART),
205#endif
Siddartha Mohanadossce1315a2011-04-21 15:25:55 -0700206 MSM_CHIP_DEVICE(QFPROM, MSM8960),
Daniel Walkerc83b2bf2010-05-04 15:26:13 -0700207};
208
209void __init msm_map_msm8960_io(void)
210{
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700211 msm_map_io(msm8960_io_desc, ARRAY_SIZE(msm8960_io_desc));
Daniel Walkerc83b2bf2010-05-04 15:26:13 -0700212}
213#endif /* CONFIG_ARCH_MSM8960 */
214
Stepan Moskovchenko2b992ad2011-10-18 17:24:18 -0700215#ifdef CONFIG_ARCH_MSM8930
216static struct map_desc msm8930_io_desc[] __initdata = {
217 MSM_CHIP_DEVICE(QGIC_DIST, MSM8930),
218 MSM_CHIP_DEVICE(QGIC_CPU, MSM8930),
219 MSM_CHIP_DEVICE(ACC0, MSM8930),
220 MSM_CHIP_DEVICE(ACC1, MSM8930),
221 MSM_CHIP_DEVICE(TMR, MSM8930),
222 MSM_CHIP_DEVICE(TMR0, MSM8930),
223 MSM_CHIP_DEVICE(RPM_MPM, MSM8930),
224 MSM_CHIP_DEVICE(CLK_CTL, MSM8930),
225 MSM_CHIP_DEVICE(MMSS_CLK_CTL, MSM8930),
226 MSM_CHIP_DEVICE(LPASS_CLK_CTL, MSM8930),
227 MSM_CHIP_DEVICE(RPM, MSM8930),
228 MSM_CHIP_DEVICE(TLMM, MSM8930),
229 MSM_CHIP_DEVICE(HFPLL, MSM8930),
230 MSM_CHIP_DEVICE(SAW0, MSM8930),
231 MSM_CHIP_DEVICE(SAW1, MSM8930),
232 MSM_CHIP_DEVICE(SAW_L2, MSM8930),
233 MSM_CHIP_DEVICE(SIC_NON_SECURE, MSM8930),
234 MSM_CHIP_DEVICE(APCS_GCC, MSM8930),
235 MSM_CHIP_DEVICE(IMEM, MSM8930),
236 MSM_CHIP_DEVICE(HDMI, MSM8930),
237 {
238 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
239 .length = MSM_SHARED_RAM_SIZE,
240 .type = MT_DEVICE,
241 },
Sathish Ambleybb87d5f2011-11-08 15:14:01 -0800242#ifdef CONFIG_DEBUG_MSM8930_UART
Stepan Moskovchenko2b992ad2011-10-18 17:24:18 -0700243 MSM_DEVICE(DEBUG_UART),
244#endif
245 MSM_CHIP_DEVICE(QFPROM, MSM8930),
246};
247
248void __init msm_map_msm8930_io(void)
249{
250 msm_map_io(msm8930_io_desc, ARRAY_SIZE(msm8930_io_desc));
251}
252#endif /* CONFIG_ARCH_MSM8930 */
253
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700254#ifdef CONFIG_ARCH_APQ8064
255static struct map_desc apq8064_io_desc[] __initdata = {
256 MSM_CHIP_DEVICE(QGIC_DIST, APQ8064),
257 MSM_CHIP_DEVICE(QGIC_CPU, APQ8064),
258 MSM_CHIP_DEVICE(TMR, APQ8064),
259 MSM_CHIP_DEVICE(TMR0, APQ8064),
Joel King4ebccc62011-07-22 09:43:22 -0700260 MSM_CHIP_DEVICE(TLMM, APQ8064),
Vikram Mulukutlabb408eb2011-08-04 09:28:56 -0700261 MSM_CHIP_DEVICE(ACC0, APQ8064),
262 MSM_CHIP_DEVICE(ACC1, APQ8064),
263 MSM_CHIP_DEVICE(ACC2, APQ8064),
264 MSM_CHIP_DEVICE(ACC3, APQ8064),
265 MSM_CHIP_DEVICE(HFPLL, APQ8064),
Tianyi Gou33430412011-09-07 21:50:42 -0700266 MSM_CHIP_DEVICE(CLK_CTL, APQ8064),
267 MSM_CHIP_DEVICE(MMSS_CLK_CTL, APQ8064),
268 MSM_CHIP_DEVICE(LPASS_CLK_CTL, APQ8064),
Vikram Mulukutlabb408eb2011-08-04 09:28:56 -0700269 MSM_CHIP_DEVICE(APCS_GCC, APQ8064),
Praveen Chidambaramd9a41732011-10-17 09:41:05 -0600270 MSM_CHIP_DEVICE(RPM, APQ8064),
271 MSM_CHIP_DEVICE(RPM_MPM, APQ8064),
272 MSM_CHIP_DEVICE(SAW0, APQ8064),
273 MSM_CHIP_DEVICE(SAW1, APQ8064),
274 MSM_CHIP_DEVICE(SAW2, APQ8064),
275 MSM_CHIP_DEVICE(SAW3, APQ8064),
276 MSM_CHIP_DEVICE(SAW_L2, APQ8064),
Stepan Moskovchenko3e444e52011-08-05 17:59:48 -0700277 MSM_CHIP_DEVICE(IMEM, APQ8064),
Aravind Venkateswaran7eb05da2012-02-16 14:23:03 -0800278 MSM_CHIP_DEVICE(HDMI, APQ8064),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700279 {
280 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
281 .length = MSM_SHARED_RAM_SIZE,
282 .type = MT_DEVICE,
283 },
Vijayakumar Muthuvel Manickamf35fd732012-01-13 16:17:52 -0800284 MSM_CHIP_DEVICE(QFPROM, APQ8064),
Jeff Hugo85bfed42012-01-31 10:10:14 -0700285 MSM_CHIP_DEVICE(SIC_NON_SECURE, APQ8064),
Stepan Moskovchenko824db172012-05-29 18:05:09 -0700286#ifdef CONFIG_DEBUG_APQ8064_UART
287 MSM_DEVICE(DEBUG_UART),
288#endif
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700289};
290
291void __init msm_map_apq8064_io(void)
292{
293 msm_map_io(apq8064_io_desc, ARRAY_SIZE(apq8064_io_desc));
294}
295#endif /* CONFIG_ARCH_APQ8064 */
296
Abhimanyu Kapur90ced6e2012-06-26 17:41:25 -0700297#ifdef CONFIG_ARCH_MSM8974
298static struct map_desc msm_8974_io_desc[] __initdata = {
299 MSM_CHIP_DEVICE(QGIC_DIST, MSM8974),
300 MSM_CHIP_DEVICE(QGIC_CPU, MSM8974),
301 MSM_CHIP_DEVICE(APCS_GCC, MSM8974),
302 MSM_CHIP_DEVICE(TLMM, MSM8974),
Stepan Moskovchenkoda7ce9c2012-08-14 21:02:21 -0700303 MSM_CHIP_DEVICE(MPM2_PSHOLD, MSM8974),
Hanumant Singh3d7d8422012-08-22 21:13:18 -0700304 MSM_CHIP_DEVICE(IMEM, MSM8974),
Jeff Hugo70946092012-02-10 11:30:43 -0700305 {
306 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
307 .length = MSM_SHARED_RAM_SIZE,
308 .type = MT_DEVICE,
309 },
Abhimanyu Kapur90ced6e2012-06-26 17:41:25 -0700310#ifdef CONFIG_DEBUG_MSM8974_UART
Sathish Ambleyf5bebd62011-11-03 23:36:36 -0700311 MSM_DEVICE(DEBUG_UART),
312#endif
Hanumant Singh5e289fc2012-08-27 17:38:40 -0700313 MSM_CHIP_DEVICE(DBG_IMEM, MSM8974),
Sathish Ambley6829db12011-10-08 22:41:23 -0700314};
315
Abhimanyu Kapur90ced6e2012-06-26 17:41:25 -0700316void __init msm_map_8974_io(void)
Sathish Ambley6829db12011-10-08 22:41:23 -0700317{
Abhimanyu Kapur90ced6e2012-06-26 17:41:25 -0700318 msm_shared_ram_phys = MSM8974_MSM_SHARED_RAM_PHYS;
319 msm_map_io(msm_8974_io_desc, ARRAY_SIZE(msm_8974_io_desc));
Sathish Ambley6829db12011-10-08 22:41:23 -0700320}
Abhimanyu Kapur90ced6e2012-06-26 17:41:25 -0700321#endif /* CONFIG_ARCH_MSM8974 */
Sathish Ambley6829db12011-10-08 22:41:23 -0700322
Daniel Walkerc83b2bf2010-05-04 15:26:13 -0700323#ifdef CONFIG_ARCH_MSM7X30
324static struct map_desc msm7x30_io_desc[] __initdata = {
Taniya Das298de8c2012-02-16 11:45:31 +0530325 MSM_CHIP_DEVICE(VIC, MSM7X30),
326 MSM_CHIP_DEVICE(CSR, MSM7X30),
327 MSM_CHIP_DEVICE(TMR, MSM7X30),
328 MSM_CHIP_DEVICE(GPIO1, MSM7X30),
329 MSM_CHIP_DEVICE(GPIO2, MSM7X30),
330 MSM_CHIP_DEVICE(CLK_CTL, MSM7X30),
331 MSM_CHIP_DEVICE(CLK_CTL_SH2, MSM7X30),
332 MSM_CHIP_DEVICE(AD5, MSM7X30),
333 MSM_CHIP_DEVICE(MDC, MSM7X30),
334 MSM_CHIP_DEVICE(ACC0, MSM7X30),
335 MSM_CHIP_DEVICE(SAW0, MSM7X30),
336 MSM_CHIP_DEVICE(APCS_GCC, MSM7X30),
337 MSM_CHIP_DEVICE(TCSR, MSM7X30),
Sathish Ambleybb87d5f2011-11-08 15:14:01 -0800338#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
339 defined(CONFIG_DEBUG_MSM_UART3)
Daniel Walkerc83b2bf2010-05-04 15:26:13 -0700340 MSM_DEVICE(DEBUG_UART),
341#endif
342 {
343 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
Daniel Walkerc83b2bf2010-05-04 15:26:13 -0700344 .length = MSM_SHARED_RAM_SIZE,
345 .type = MT_DEVICE,
346 },
347};
348
349void __init msm_map_msm7x30_io(void)
350{
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700351 msm_map_io(msm7x30_io_desc, ARRAY_SIZE(msm7x30_io_desc));
Daniel Walkerc83b2bf2010-05-04 15:26:13 -0700352}
353#endif /* CONFIG_ARCH_MSM7X30 */
354
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700355#ifdef CONFIG_ARCH_FSM9XXX
356static struct map_desc fsm9xxx_io_desc[] __initdata = {
357 MSM_DEVICE(VIC),
358 MSM_DEVICE(SIRC),
359 MSM_DEVICE(CSR),
360 MSM_DEVICE(TLMM),
361 MSM_DEVICE(TCSR),
362 MSM_DEVICE(CLK_CTL),
363 MSM_DEVICE(ACC),
364 MSM_DEVICE(SAW),
365 MSM_DEVICE(GCC),
366 MSM_DEVICE(GRFC),
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700367 MSM_DEVICE(QFP_FUSE),
368 MSM_DEVICE(HH),
Sathish Ambleybb87d5f2011-11-08 15:14:01 -0800369#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
370 defined(CONFIG_DEBUG_MSM_UART3)
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700371 MSM_DEVICE(DEBUG_UART),
372#endif
373 {
374 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
375 .length = MSM_SHARED_RAM_SIZE,
376 .type = MT_DEVICE,
377 },
378};
Brian Swetland30421022007-11-26 04:11:43 -0800379
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700380void __init msm_map_fsm9xxx_io(void)
381{
382 msm_map_io(fsm9xxx_io_desc, ARRAY_SIZE(fsm9xxx_io_desc));
Brian Swetland30421022007-11-26 04:11:43 -0800383}
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700384#endif /* CONFIG_ARCH_FSM9XXX */
385
Rohit Vaswani99fb6f22011-08-15 13:37:32 -0700386#ifdef CONFIG_ARCH_MSM9615
387static struct map_desc msm9615_io_desc[] __initdata = {
388 MSM_CHIP_DEVICE(QGIC_DIST, MSM9615),
389 MSM_CHIP_DEVICE(QGIC_CPU, MSM9615),
390 MSM_CHIP_DEVICE(ACC0, MSM9615),
391 MSM_CHIP_DEVICE(TMR, MSM9615),
Rohit Vaswani99fb6f22011-08-15 13:37:32 -0700392 MSM_CHIP_DEVICE(TLMM, MSM9615),
393 MSM_CHIP_DEVICE(SAW0, MSM9615),
394 MSM_CHIP_DEVICE(APCS_GCC, MSM9615),
395 MSM_CHIP_DEVICE(TCSR, MSM9615),
Vikram Mulukutla489e39e2011-08-31 18:04:05 -0700396 MSM_CHIP_DEVICE(L2CC, MSM9615),
397 MSM_CHIP_DEVICE(CLK_CTL, MSM9615),
398 MSM_CHIP_DEVICE(LPASS_CLK_CTL, MSM9615),
Rohit Vaswani71c86b72011-09-09 16:51:46 -0700399 MSM_CHIP_DEVICE(RPM, MSM9615),
400 MSM_CHIP_DEVICE(RPM_MPM, MSM9615),
401 MSM_CHIP_DEVICE(APCS_GLB, MSM9615),
Rohit Vaswani4f96570c2011-10-13 18:14:37 -0700402 MSM_CHIP_DEVICE(IMEM, MSM9615),
Rohit Vaswani99fb6f22011-08-15 13:37:32 -0700403 {
404 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
405 .length = MSM_SHARED_RAM_SIZE,
406 .type = MT_DEVICE,
407 },
Siddartha Mohanadoss5d49cec2011-09-21 10:26:15 -0700408 MSM_CHIP_DEVICE(QFPROM, MSM9615),
Rohit Vaswani99fb6f22011-08-15 13:37:32 -0700409};
410
411void __init msm_map_msm9615_io(void)
412{
413 msm_map_io(msm9615_io_desc, ARRAY_SIZE(msm9615_io_desc));
414}
415#endif /* CONFIG_ARCH_MSM9615 */
416
Taniya Das43bcdd62011-12-02 17:33:27 +0530417#ifdef CONFIG_ARCH_MSM8625
418static struct map_desc msm8625_io_desc[] __initdata = {
Taniya Das13b811a2011-12-09 18:33:45 +0530419 MSM_CHIP_DEVICE(CSR, MSM7XXX),
420 MSM_CHIP_DEVICE(GPIO1, MSM7XXX),
421 MSM_CHIP_DEVICE(GPIO2, MSM7XXX),
422 MSM_CHIP_DEVICE(QGIC_DIST, MSM8625),
423 MSM_CHIP_DEVICE(QGIC_CPU, MSM8625),
424 MSM_CHIP_DEVICE(TMR, MSM8625),
425 MSM_CHIP_DEVICE(TMR0, MSM8625),
426 MSM_CHIP_DEVICE(SCU, MSM8625),
427 MSM_CHIP_DEVICE(CFG_CTL, MSM8625),
428 MSM_CHIP_DEVICE(CLK_CTL, MSM8625),
Taniya Das12df7bf2012-02-15 11:36:19 +0530429 MSM_CHIP_DEVICE(SAW0, MSM8625),
430 MSM_CHIP_DEVICE(SAW1, MSM8625),
Manish Dewangan504430a2012-02-29 17:34:38 +0530431 MSM_CHIP_DEVICE(AD5, MSM7XXX),
Taniya Dase3027e22012-02-27 16:32:27 +0530432 MSM_CHIP_DEVICE(MDC, MSM7XXX),
Taniya Das43bcdd62011-12-02 17:33:27 +0530433#if defined(CONFIG_DEBUG_MSM_UART1) || defined(CONFIG_DEBUG_MSM_UART2) || \
434 defined(CONFIG_DEBUG_MSM_UART3)
Taniya Dasfa4ee7f2012-02-21 15:04:51 +0530435 MSM_DEVICE(DEBUG_UART),
Taniya Das43bcdd62011-12-02 17:33:27 +0530436#endif
437#ifdef CONFIG_CACHE_L2X0
438 {
439 .virtual = (unsigned long) MSM_L2CC_BASE,
Taniya Das13b811a2011-12-09 18:33:45 +0530440 .pfn = __phys_to_pfn(MSM7XXX_L2CC_PHYS),
441 .length = MSM7XXX_L2CC_SIZE,
Taniya Das43bcdd62011-12-02 17:33:27 +0530442 .type = MT_DEVICE,
443 },
444#endif
445 {
446 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
447 .length = MSM_SHARED_RAM_SIZE,
448 .type = MT_DEVICE,
449 },
450};
451
452void __init msm_map_msm8625_io(void)
453{
454 msm_map_io(msm8625_io_desc, ARRAY_SIZE(msm8625_io_desc));
455}
456#else
457void __init msm_map_msm8625_io(void) { return; }
458#endif /* CONFIG_ARCH_MSM8625 */
459
Rohit Vaswani58fc0c62012-04-23 18:50:26 -0700460#ifdef CONFIG_ARCH_MSM9625
461static struct map_desc msm9625_io_desc[] __initdata = {
462 MSM_CHIP_DEVICE(APCS_GCC, MSM9625),
463 MSM_CHIP_DEVICE(TLMM, MSM9625),
464 MSM_CHIP_DEVICE(TMR, MSM9625),
465 {
466 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
467 .length = MSM_SHARED_RAM_SIZE,
468 .type = MT_DEVICE,
469 },
470#ifdef CONFIG_DEBUG_MSM9625_UART
471 MSM_DEVICE(DEBUG_UART),
472#endif
473};
474
475void __init msm_map_msm9625_io(void)
476{
477 msm_shared_ram_phys = MSM9625_SHARED_RAM_PHYS;
478 msm_map_io(msm9625_io_desc, ARRAY_SIZE(msm9625_io_desc));
479}
480#endif /* CONFIG_ARCH_MSM9625 */
Ravi Kumar V8834dad2012-08-31 22:49:55 +0530481
482#ifdef CONFIG_ARCH_MPQ8092
483static struct map_desc mpq8092_io_desc[] __initdata = {
484 MSM_CHIP_DEVICE(QGIC_DIST, MPQ8092),
485 MSM_CHIP_DEVICE(QGIC_CPU, MPQ8092),
486 MSM_CHIP_DEVICE(APCS_GCC, MPQ8092),
487 MSM_CHIP_DEVICE(TLMM, MPQ8092),
488 {
489 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
490 .length = MSM_SHARED_RAM_SIZE,
491 .type = MT_DEVICE,
492 },
493#ifdef CONFIG_DEBUG_MPQ8092_UART
494 MSM_DEVICE(DEBUG_UART),
495#endif
496};
497
498void __init msm_map_mpq8092_io(void)
499{
Jeff Hugo3e355012012-09-17 16:07:18 -0600500 msm_shared_ram_phys = MSM8092_MSM_SHARED_RAM_PHYS;
Ravi Kumar V8834dad2012-08-31 22:49:55 +0530501 msm_map_io(mpq8092_io_desc, ARRAY_SIZE(mpq8092_io_desc));
502}
503#endif /* CONFIG_ARCH_MPQ8092 */
Syed Rameez Mustafa61c9a572012-08-23 16:10:07 -0700504
505#ifdef CONFIG_ARCH_MSM8226
506static struct map_desc msm_8226_io_desc[] __initdata = {
507 MSM_CHIP_DEVICE(QGIC_DIST, MSM8226),
508 MSM_CHIP_DEVICE(QGIC_CPU, MSM8226),
509 MSM_CHIP_DEVICE(APCS_GCC, MSM8226),
510 MSM_CHIP_DEVICE(TLMM, MSM8226),
511 MSM_CHIP_DEVICE(IMEM, MSM8226),
Syed Rameez Mustafa16b1bf32012-09-10 19:21:45 -0700512 MSM_CHIP_DEVICE(DBG_IMEM, MSM8226),
Syed Rameez Mustafa61c9a572012-08-23 16:10:07 -0700513 {
514 .virtual = (unsigned long) MSM_SHARED_RAM_BASE,
515 .length = MSM_SHARED_RAM_SIZE,
516 .type = MT_DEVICE,
517 },
Syed Rameez Mustafa16b1bf32012-09-10 19:21:45 -0700518#ifdef CONFIG_DEBUG_MSM8226_UART
Syed Rameez Mustafa61c9a572012-08-23 16:10:07 -0700519 MSM_DEVICE(DEBUG_UART),
520#endif
521};
522
523
524void __init msm_map_msm8226_io(void)
525{
526 msm_shared_ram_phys = MSM8226_MSM_SHARED_RAM_PHYS;
527 msm_map_io(msm_8226_io_desc, ARRAY_SIZE(msm_8226_io_desc));
528}
529#endif /* CONFIG_ARCH_MSM8226 */