blob: b86364f679b5aa1229f8f92de7482bd9138019f8 [file] [log] [blame]
Gregory Bean1963a2a2010-08-28 10:05:44 -07001/*
2 * Copyright (C) 2007 Google, Inc.
Duy Truong790f06d2013-02-13 16:38:12 -08003 * Copyright (c) 2008-2012, The Linux Foundation. All rights reserved.
Gregory Bean1963a2a2010-08-28 10:05:44 -07004 * Author: Brian Swetland <swetland@google.com>
5 *
6 * This software is licensed under the terms of the GNU General Public
7 * License version 2, as published by the Free Software Foundation, and
8 * may be copied, distributed, and modified under those terms.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 *
16 * The MSM peripherals are spread all over across 768MB of physical
17 * space, which makes just having a simple IO_ADDRESS macro to slide
18 * them into the right virtual location rough. Instead, we will
19 * provide a master phys->virt mapping for peripherals here.
20 *
21 */
22
23#ifndef __ASM_ARCH_MSM_IOMAP_8X60_H
24#define __ASM_ARCH_MSM_IOMAP_8X60_H
25
26/* Physical base address and size of peripherals.
27 * Ordered by the virtual base addresses they will be mapped at.
28 *
29 * MSM_VIC_BASE must be an value that can be loaded via a "mov"
30 * instruction, otherwise entry-macro.S will not compile.
31 *
32 * If you add or remove entries here, you'll want to edit the
33 * msm_io_desc array in arch/arm/mach-msm/io.c to reflect your
34 * changes.
35 *
36 */
37
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070038#define MSM_QGIC_DIST_BASE IOMEM(0xFA000000)
39#define MSM_QGIC_DIST_PHYS 0x02080000
40#define MSM_QGIC_DIST_SIZE SZ_4K
Steve Muckle6cf6dfe2010-01-06 14:55:24 -080041
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070042#define MSM_QGIC_CPU_BASE IOMEM(0xFA001000)
43#define MSM_QGIC_CPU_PHYS 0x02081000
44#define MSM_QGIC_CPU_SIZE SZ_4K
Steve Muckle6cf6dfe2010-01-06 14:55:24 -080045
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070046#define MSM_ACC_BASE IOMEM(0xFA002000)
Steve Muckle6cf6dfe2010-01-06 14:55:24 -080047#define MSM_ACC_PHYS 0x02001000
48#define MSM_ACC_SIZE SZ_4K
49
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070050#define MSM_GCC_BASE IOMEM(0xFA003000)
Steve Muckle6cf6dfe2010-01-06 14:55:24 -080051#define MSM_GCC_PHYS 0x02082000
52#define MSM_GCC_SIZE SZ_4K
53
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070054#define MSM_TLMM_BASE IOMEM(0xFA004000)
Gregory Bean1963a2a2010-08-28 10:05:44 -070055#define MSM_TLMM_PHYS 0x00800000
56#define MSM_TLMM_SIZE SZ_16K
57
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070058#define MSM_RPM_BASE IOMEM(0xFA008000)
59#define MSM_RPM_PHYS 0x00104000
60#define MSM_RPM_SIZE SZ_4K
61
62#define MSM_CLK_CTL_BASE IOMEM(0xFA010000)
63#define MSM_CLK_CTL_PHYS 0x00900000
64#define MSM_CLK_CTL_SIZE SZ_16K
65
66#define MSM_MMSS_CLK_CTL_BASE IOMEM(0xFA014000)
67#define MSM_MMSS_CLK_CTL_PHYS 0x04000000
68#define MSM_MMSS_CLK_CTL_SIZE SZ_4K
69
70#define MSM_LPASS_CLK_CTL_BASE IOMEM(0xFA015000)
71#define MSM_LPASS_CLK_CTL_PHYS 0x28000000
72#define MSM_LPASS_CLK_CTL_SIZE SZ_4K
73
74#define MSM_TMR_BASE IOMEM(0xFA016000)
75#define MSM_TMR_PHYS 0x02000000
76#define MSM_TMR_SIZE SZ_4K
77
78#define MSM_TMR0_BASE IOMEM(0xFA017000)
79#define MSM_TMR0_PHYS 0x02040000
80#define MSM_TMR0_SIZE SZ_4K
81
82#define MSM_SCPLL_BASE IOMEM(0xFA018000)
83#define MSM_SCPLL_PHYS 0x00903000
84#define MSM_SCPLL_SIZE SZ_1K
85
86#define MSM_SHARED_RAM_BASE IOMEM(0xFA200000)
Steve Muckle6cf6dfe2010-01-06 14:55:24 -080087#define MSM_SHARED_RAM_SIZE SZ_1M
88
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070089#define MSM_ACC0_BASE IOMEM(0xFA300000)
90#define MSM_ACC0_PHYS 0x02041000
91#define MSM_ACC0_SIZE SZ_4K
Jeff Ohlstein94790ec2010-12-02 12:05:12 -080092
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070093#define MSM_ACC1_BASE IOMEM(0xFA301000)
94#define MSM_ACC1_PHYS 0x02051000
95#define MSM_ACC1_SIZE SZ_4K
Jeff Ohlstein672039f2010-10-05 15:23:57 -070096
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070097#define MSM_RPM_MPM_BASE IOMEM(0xFA302000)
98#define MSM_RPM_MPM_PHYS 0x00200000
99#define MSM_RPM_MPM_SIZE SZ_4K
100
101#define MSM_SAW0_BASE IOMEM(0xFA303000)
102#define MSM_SAW0_PHYS 0x02042000
103#define MSM_SAW0_SIZE SZ_4K
104
105#define MSM_SAW1_BASE IOMEM(0xFA304000)
106#define MSM_SAW1_PHYS 0x02052000
107#define MSM_SAW1_SIZE SZ_4K
108
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700109#define MSM_SIC_NON_SECURE_BASE IOMEM(0xFA600000)
110#define MSM_SIC_NON_SECURE_PHYS 0x12100000
111#define MSM_SIC_NON_SECURE_SIZE SZ_64K
112
113#define MSM_QFPROM_BASE IOMEM(0xFA700000)
114#define MSM_QFPROM_PHYS 0x00700000
115#define MSM_QFPROM_SIZE SZ_4K
116
117#define MSM_TCSR_BASE IOMEM(0xFA701000)
118#define MSM_TCSR_PHYS 0x16B00000
119#define MSM_TCSR_SIZE SZ_4K
120
121#define MSM_IMEM_BASE IOMEM(0xFA702000)
122#define MSM_IMEM_PHYS 0x2A05F000
123#define MSM_IMEM_SIZE SZ_4K
124
125#define MSM_HDMI_BASE IOMEM(0xFA800000)
126#define MSM_HDMI_PHYS 0x04A00000
127#define MSM_HDMI_SIZE SZ_4K
Gregory Bean1963a2a2010-08-28 10:05:44 -0700128
Stepan Moskovchenkoda7ce9c2012-08-14 21:02:21 -0700129/* Needed to keep the unified iomap happy */
Syed Rameez Mustafa9b845eb2012-12-10 12:14:26 -0800130#define MSM_APCS_GCC_BASE IOMEM(0xFA006000) /* 4K */
Stepan Moskovchenkoda7ce9c2012-08-14 21:02:21 -0700131#define MSM_MPM2_PSHOLD_BASE MSM_TLMM_BASE
132
Stephen Boyda3d3ef92011-11-08 10:33:04 -0800133#ifdef CONFIG_DEBUG_MSM8660_UART
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -0700134#define MSM_DEBUG_UART_BASE 0xFBC40000
Stephen Boyda3d3ef92011-11-08 10:33:04 -0800135#define MSM_DEBUG_UART_PHYS 0x19C40000
136#endif
137
Rob Herring68a7f1f2012-02-10 20:30:41 -0600138#ifndef __ASSEMBLY__
139extern void msm_map_msm8x60_io(void);
140#endif
141
Gregory Bean1963a2a2010-08-28 10:05:44 -0700142#endif