diff options
author | Stepan Moskovchenko <stepanm@codeaurora.org> | 2010-12-01 22:05:49 -0500 |
---|---|---|
committer | David Brown <davidb@codeaurora.org> | 2011-01-21 18:27:51 -0500 |
commit | 5d0afd74b7f5202cad2d26b5bcd1fc1bdf44858f (patch) | |
tree | 1182389adea21d71fc4f4d01e0407b5e3841af5b | |
parent | 8bb06444804c58dffcb5d048381c6378d2b007f7 (diff) |
msm: io: I/O register definitions for MSM8960
Add the register address definitions for the basic hardware
blocks on the Qualcomm MSM8960 chip.
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
-rw-r--r-- | arch/arm/mach-msm/include/mach/io.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-msm/include/mach/msm_iomap-8960.h | 48 | ||||
-rw-r--r-- | arch/arm/mach-msm/include/mach/msm_iomap.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-msm/io.c | 14 |
4 files changed, 65 insertions, 0 deletions
diff --git a/arch/arm/mach-msm/include/mach/io.h b/arch/arm/mach-msm/include/mach/io.h index 7386e732baad..dc1b928745e9 100644 --- a/arch/arm/mach-msm/include/mach/io.h +++ b/arch/arm/mach-msm/include/mach/io.h | |||
@@ -29,6 +29,7 @@ void __iomem *__msm_ioremap(unsigned long phys_addr, size_t size, unsigned int m | |||
29 | void msm_map_qsd8x50_io(void); | 29 | void msm_map_qsd8x50_io(void); |
30 | void msm_map_msm7x30_io(void); | 30 | void msm_map_msm7x30_io(void); |
31 | void msm_map_msm8x60_io(void); | 31 | void msm_map_msm8x60_io(void); |
32 | void msm_map_msm8960_io(void); | ||
32 | 33 | ||
33 | extern unsigned int msm_shared_ram_phys; | 34 | extern unsigned int msm_shared_ram_phys; |
34 | 35 | ||
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-8960.h b/arch/arm/mach-msm/include/mach/msm_iomap-8960.h new file mode 100644 index 000000000000..3c9d9602a318 --- /dev/null +++ b/arch/arm/mach-msm/include/mach/msm_iomap-8960.h | |||
@@ -0,0 +1,48 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2007 Google, Inc. | ||
3 | * Copyright (c) 2008-2011, Code Aurora Forum. All rights reserved. | ||
4 | * 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_8960_H | ||
24 | #define __ASM_ARCH_MSM_IOMAP_8960_H | ||
25 | |||
26 | /* Physical base address and size of peripherals. | ||
27 | * Ordered by the virtual base addresses they will be mapped at. | ||
28 | * | ||
29 | * If you add or remove entries here, you'll want to edit the | ||
30 | * msm_io_desc array in arch/arm/mach-msm/io.c to reflect your | ||
31 | * changes. | ||
32 | * | ||
33 | */ | ||
34 | |||
35 | |||
36 | #define MSM8960_QGIC_DIST_PHYS 0x02000000 | ||
37 | #define MSM8960_QGIC_DIST_SIZE SZ_4K | ||
38 | |||
39 | #define MSM8960_QGIC_CPU_PHYS 0x02002000 | ||
40 | #define MSM8960_QGIC_CPU_SIZE SZ_4K | ||
41 | |||
42 | #define MSM8960_TMR_PHYS 0x0200A000 | ||
43 | #define MSM8960_TMR_SIZE SZ_4K | ||
44 | |||
45 | #define MSM8960_TMR0_PHYS 0x0208A000 | ||
46 | #define MSM8960_TMR0_SIZE SZ_4K | ||
47 | |||
48 | #endif | ||
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap.h b/arch/arm/mach-msm/include/mach/msm_iomap.h index bb42de31886c..c98c7591f3b8 100644 --- a/arch/arm/mach-msm/include/mach/msm_iomap.h +++ b/arch/arm/mach-msm/include/mach/msm_iomap.h | |||
@@ -53,6 +53,8 @@ | |||
53 | #include "msm_iomap-7x00.h" | 53 | #include "msm_iomap-7x00.h" |
54 | #endif | 54 | #endif |
55 | 55 | ||
56 | #include "msm_iomap-8960.h" | ||
57 | |||
56 | /* Virtual addressses shared across all MSM targets. */ | 58 | /* Virtual addressses shared across all MSM targets. */ |
57 | #define MSM_CSR_BASE IOMEM(0xE0001000) | 59 | #define MSM_CSR_BASE IOMEM(0xE0001000) |
58 | #define MSM_QGIC_DIST_BASE IOMEM(0xF0000000) | 60 | #define MSM_QGIC_DIST_BASE IOMEM(0xF0000000) |
diff --git a/arch/arm/mach-msm/io.c b/arch/arm/mach-msm/io.c index 49692bb375a2..d8d9be5d821b 100644 --- a/arch/arm/mach-msm/io.c +++ b/arch/arm/mach-msm/io.c | |||
@@ -117,6 +117,20 @@ void __init msm_map_msm8x60_io(void) | |||
117 | } | 117 | } |
118 | #endif /* CONFIG_ARCH_MSM8X60 */ | 118 | #endif /* CONFIG_ARCH_MSM8X60 */ |
119 | 119 | ||
120 | #ifdef CONFIG_ARCH_MSM8960 | ||
121 | static struct map_desc msm8960_io_desc[] __initdata = { | ||
122 | MSM_CHIP_DEVICE(QGIC_DIST, MSM8960), | ||
123 | MSM_CHIP_DEVICE(QGIC_CPU, MSM8960), | ||
124 | MSM_CHIP_DEVICE(TMR, MSM8960), | ||
125 | MSM_CHIP_DEVICE(TMR0, MSM8960), | ||
126 | }; | ||
127 | |||
128 | void __init msm_map_msm8960_io(void) | ||
129 | { | ||
130 | iotable_init(msm8960_io_desc, ARRAY_SIZE(msm8960_io_desc)); | ||
131 | } | ||
132 | #endif /* CONFIG_ARCH_MSM8960 */ | ||
133 | |||
120 | #ifdef CONFIG_ARCH_MSM7X30 | 134 | #ifdef CONFIG_ARCH_MSM7X30 |
121 | static struct map_desc msm7x30_io_desc[] __initdata = { | 135 | static struct map_desc msm7x30_io_desc[] __initdata = { |
122 | MSM_DEVICE(VIC), | 136 | MSM_DEVICE(VIC), |