blob: 00afdfb8c38fe24eacc2d0c87709fe448b06eed0 [file] [log] [blame]
Gregory Beand2e753b2010-04-30 21:33:38 -07001/*
Russell Kinga09e64f2008-08-05 16:14:15 +01002 * Copyright (C) 2007 Google, Inc.
David Brown8c27e6f2011-01-07 10:20:49 -08003 * Copyright (c) 2008-2011, Code Aurora Forum. All rights reserved.
Russell Kinga09e64f2008-08-05 16:14:15 +01004 * 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_H
24#define __ASM_ARCH_MSM_IOMAP_H
25
26#include <asm/sizes.h>
27
28/* Physical base address and size of peripherals.
29 * Ordered by the virtual base addresses they will be mapped at.
30 *
31 * MSM_VIC_BASE must be an value that can be loaded via a "mov"
32 * instruction, otherwise entry-macro.S will not compile.
33 *
34 * If you add or remove entries here, you'll want to edit the
35 * msm_io_desc array in arch/arm/mach-msm/io.c to reflect your
36 * changes.
37 *
38 */
39
Daniel Walker184d2522010-05-05 07:08:13 -070040#if defined(CONFIG_ARCH_MSM7X30)
41#include "msm_iomap-7x30.h"
42#elif defined(CONFIG_ARCH_QSD8X50)
Daniel Walkereb61bf82010-05-05 07:03:55 -070043#include "msm_iomap-8x50.h"
Gregory Bean1963a2a2010-08-28 10:05:44 -070044#elif defined(CONFIG_ARCH_MSM8X60)
45#include "msm_iomap-8x60.h"
Daniel Walkereb61bf82010-05-05 07:03:55 -070046#else
Gregory Beand2e753b2010-04-30 21:33:38 -070047#include "msm_iomap-7x00.h"
Daniel Walkereb61bf82010-05-05 07:03:55 -070048#endif
Dima Zavinb42dc442010-01-29 11:43:42 -080049
Stepan Moskovchenko5d0afd72010-12-01 19:05:49 -080050#include "msm_iomap-8960.h"
51
Stephen Boyd650e3f02011-11-08 10:33:03 -080052#define MSM_DEBUG_UART_SIZE SZ_4K
53#if defined(CONFIG_DEBUG_MSM_UART1)
54#define MSM_DEBUG_UART_BASE 0xE1000000
55#define MSM_DEBUG_UART_PHYS MSM_UART1_PHYS
56#elif defined(CONFIG_DEBUG_MSM_UART2)
57#define MSM_DEBUG_UART_BASE 0xE1000000
58#define MSM_DEBUG_UART_PHYS MSM_UART2_PHYS
59#elif defined(CONFIG_DEBUG_MSM_UART3)
60#define MSM_DEBUG_UART_BASE 0xE1000000
61#define MSM_DEBUG_UART_PHYS MSM_UART3_PHYS
62#endif
63
Justin P. Mattock70f23fd2011-05-10 10:16:21 +020064/* Virtual addresses shared across all MSM targets. */
David Brown8c27e6f2011-01-07 10:20:49 -080065#define MSM_CSR_BASE IOMEM(0xE0001000)
David Brown8bb06442011-01-04 11:02:59 -080066#define MSM_QGIC_DIST_BASE IOMEM(0xF0000000)
67#define MSM_QGIC_CPU_BASE IOMEM(0xF0001000)
David Brown8c27e6f2011-01-07 10:20:49 -080068#define MSM_TMR_BASE IOMEM(0xF0200000)
69#define MSM_TMR0_BASE IOMEM(0xF0201000)
David Brown03db0722011-05-12 00:54:36 -070070#define MSM_GPIO1_BASE IOMEM(0xE0003000)
71#define MSM_GPIO2_BASE IOMEM(0xE0004000)
Steve Muckle6cf6dfe2010-01-06 14:55:24 -080072
Russell Kinga09e64f2008-08-05 16:14:15 +010073#endif