summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap/include/mach/omap3-silicon.h
blob: e1a321aa86f96bedb38e357f1486ef33bfdb1cff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/**
 * @file
 * @brief This file contains the processor specific definitions of
 * the TI OMAP34XX. For more info on OMAP34XX,
 * See http://focus.ti.com/pdfs/wtbu/swpu114g.pdf
 *
 * FileName: include/asm-arm/arch-omap/omap3-silicon.h
 *
 * OMAP34XX base address defines go here.
 *
 * Originally from Linux kernel:
 * http://linux.omap.com/pub/kernel/3430zoom/linux-ldp-v1.0b.tar.gz
 * include/asm-arm/arch-omap/omap3-silicon.h
 */
/*
 * (C) Copyright 2008
 * Texas Instruments, <www.ti.com>
 * Nishanth Menon <x0nishan@ti.com>
 *
 * Copyright (C) 2007 Texas Instruments, <www.ti.com>
 * Copyright (C) 2007 Nokia Corporation.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 */

#ifndef __ASM_ARCH_OMAP3_H
#define __ASM_ARCH_OMAP3_H

/* PLEASE PLACE ONLY BASE DEFINES HERE */

/** OMAP Internal Bus Base addresses */
#define OMAP_L4_CORE_BASE	0x48000000
#define OMAP_INTC_BASE		0x48200000
#define OMAP_L4_WKUP_BASE	0x48300000
#define OMAP_L4_PER_BASE	0x49000000
#define OMAP_L4_EMU_BASE	0x54000000
#define OMAP_SGX_BASE		0x50000000
#define OMAP_IVA_BASE		0x5C000000
#define OMAP_SMX_APE_BASE	0x68000000
#define OMAP_SMS_BASE		0x6C000000
#define OMAP_SDRC_BASE		0x6D000000
#define OMAP_GPMC_BASE		0x6E000000

/** Peripheral Base Addresses */
#define OMAP_CTRL_BASE		(OMAP_L4_CORE_BASE + 0x02000)
#define OMAP_CM_BASE		(OMAP_L4_CORE_BASE + 0x04000)
#define OMAP_PRM_BASE		(OMAP_L4_WKUP_BASE + 0x06000)

#define OMAP_UART1_BASE		(OMAP_L4_CORE_BASE + 0x6A000)
#define OMAP_UART2_BASE		(OMAP_L4_CORE_BASE + 0x6C000)
#define OMAP_UART3_BASE		(OMAP_L4_PER_BASE + 0x20000)

#define OMAP_I2C1_BASE		(OMAP_L4_CORE_BASE + 0x70000)
#define OMAP_I2C2_BASE		(OMAP_L4_CORE_BASE + 0x72000)
#define OMAP_I2C3_BASE		(OMAP_L4_CORE_BASE + 0x60000)

#define OMAP_GPTIMER1_BASE	(OMAP_L4_WKUP_BASE + 0x18000)
#define OMAP_GPTIMER2_BASE	(OMAP_L4_PER_BASE + 0x32000)
#define OMAP_GPTIMER3_BASE	(OMAP_L4_PER_BASE + 0x34000)
#define OMAP_GPTIMER4_BASE	(OMAP_L4_PER_BASE + 0x36000)
#define OMAP_GPTIMER5_BASE	(OMAP_L4_PER_BASE + 0x38000)
#define OMAP_GPTIMER6_BASE	(OMAP_L4_PER_BASE + 0x3A000)
#define OMAP_GPTIMER7_BASE	(OMAP_L4_PER_BASE + 0x3C000)
#define OMAP_GPTIMER8_BASE	(OMAP_L4_PER_BASE + 0x3E000)
#define OMAP_GPTIMER9_BASE	(OMAP_L4_PER_BASE + 0x40000)
#define OMAP_GPTIMER10_BASE	(OMAP_L4_CORE_BASE + 0x86000)
#define OMAP_GPTIMER11_BASE	(OMAP_L4_CORE_BASE + 0x88000)

#define OMAP_WDTIMER2_BASE	(OMAP_L4_WKUP_BASE + 0x14000)
#define OMAP_WDTIMER3_BASE	(OMAP_L4_PER_BASE + 0x30000)

#define OMAP_32KTIMER_BASE	(OMAP_L4_WKUP_BASE + 0x20000)

#define OMAP_MMC1_BASE		(OMAP_L4_CORE_BASE + 0x9C000)
#define OMAP_MMC2_BASE		(OMAP_L4_CORE_BASE + 0xB4000)
#define OMAP_MMC3_BASE		(OMAP_L4_CORE_BASE + 0xAD000)

#define OMAP_MUSB0_BASE		(OMAP_L4_CORE_BASE + 0xAB000)

#define OMAP_GPIO1_BASE		(OMAP_L4_WKUP_BASE + 0x10000)
#define OMAP_GPIO2_BASE		(OMAP_L4_PER_BASE + 0x50000)
#define OMAP_GPIO3_BASE		(OMAP_L4_PER_BASE + 0x52000)
#define OMAP_GPIO4_BASE		(OMAP_L4_PER_BASE + 0x54000)
#define OMAP_GPIO5_BASE		(OMAP_L4_PER_BASE + 0x56000)
#define OMAP_GPIO6_BASE		(OMAP_L4_PER_BASE + 0x58000)

/** MPU WDT Definition */
#define OMAP_MPU_WDTIMER_BASE	OMAP_WDTIMER2_BASE

#define OMAP_HSUSB_OTG_BASE    (OMAP_L4_CORE_BASE + 0xAB000)
#define OMAP_USBTLL_BASE       (OMAP_L4_CORE_BASE + 0x62000)
#define OMAP_UHH_CONFIG_BASE   (OMAP_L4_CORE_BASE + 0x64000)
#define OMAP_OHCI_BASE         (OMAP_L4_CORE_BASE + 0x64400)
#define OMAP_EHCI_BASE         (OMAP_L4_CORE_BASE + 0x64800)

/** Interrupt Vector base address */
#define OMAP_SRAM_BASE		0x40200000
#define OMAP_SRAM_INTVECT	0x4020F800
#define OMAP_SRAM_INTVECT_COPYSIZE	0x64
/** Temporary stack for us to use C calls in low_level_init */
#define OMAP_SRAM_STACK		0x4020FFFC

/** Gives the silicon revision */
#define OMAP_TAP_BASE		(OMAP_L4_WKUP_BASE + 0xA000)
#define IDCODE_REG		(OMAP_TAP_BASE + 0x204)
#define DIE_ID_0		(OMAP_TAP_BASE + 0x218)
#define DIE_ID_1		(OMAP_TAP_BASE + 0x21c)
#define DIE_ID_2		(OMAP_TAP_BASE + 0x220)
#define DIE_ID_3		(OMAP_TAP_BASE + 0x224)

/** Masks to extract information from ID code register */
#define IDCODE_HAWKEYE_MASK	0x0FFFF000
#define IDCODE_VERSION_MASK	0xF0000000

 #define get_hawkeye(v)		(((v) & IDCODE_HAWKEYE_MASK) >> 12)
 #define get_version(v)		(((v) & IDCODE_VERSION_MASK) >> 28)

#define HAWKEYE_ES1		0x0B6D6000
#define HAWKEYE_ES2		0x0B7AE000
#define HAWKEYE_ES2_1		0x1B7AE000

#define DEVICE_MASK		((0x1 << 8)|(0x1 << 9)|(0x1 << 10))

#define OMAP_SDRC_CS0		0x80000000
#define OMAP_SDRC_CS1		0xA0000000

/* PRM */
#define PRM_RSTCTRL_RESET       0x04

#endif /* __ASM_ARCH_OMAP3_H */