blob: 0828e7325271c16333f2b7aee68e9b32ff093c29 (
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
|
/*
* (C) Copyright 2006
* Texas Instruments, <www.ti.com>
*
* See file CREDITS for list of people who contributed to this
* project.
*
* 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.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*/
#ifndef _OMAP34XX_CPU_H
#define _OMAP34XX_CPU_H
#include <asm/arch/omap3430.h>
/* Register offsets of common modules */
/* Control */
#define CONTROL_STATUS (OMAP34XX_CTRL_BASE + 0x2F0)
#define OMAP34XX_MCR (OMAP34XX_CTRL_BASE + 0x8C)
#define CONTROL_SCALABLE_OMAP_STATUS (OMAP34XX_CTRL_BASE + 0x44C)
#define CONTROL_SCALABLE_OMAP_OCP (OMAP34XX_CTRL_BASE + 0x534)
/* Tap Information */
#define TAP_IDCODE_REG (OMAP34XX_TAP_BASE+0x204)
#define PRODUCTION_ID (OMAP34XX_TAP_BASE+0x208)
/* device type */
#define DEVICE_MASK (BIT8|BIT9|BIT10)
#define TST_DEVICE 0x0
#define EMU_DEVICE 0x1
#define HS_DEVICE 0x2
#define GP_DEVICE 0x3
/* We are not concerned with BIT5 as it only determines
* the prirotiy between memory or perpheral booting
*/
#define SYSBOOT_MASK (BIT0|BIT1|BIT2|BIT3|BIT4)
/* GPMC CS3/cs4/cs6 not avaliable */
#define GPMC_BASE (OMAP34XX_GPMC_BASE)
#define GPMC_SYSCONFIG (OMAP34XX_GPMC_BASE+0x10)
#define GPMC_IRQSTATUS (OMAP34XX_GPMC_BASE+0x18)
#define GPMC_IRQENABLE (OMAP34XX_GPMC_BASE+0x1C)
#define GPMC_TIMEOUT_CONTROL (OMAP34XX_GPMC_BASE+0x40)
#define GPMC_CONFIG (OMAP34XX_GPMC_BASE+0x50)
#define GPMC_STATUS (OMAP34XX_GPMC_BASE+0x54)
#define GPMC_CONFIG_CS0 (OMAP34XX_GPMC_BASE+0x60)
#define GPMC_CONFIG_WIDTH (0x30)
#define GPMC_CONFIG1 (0x00)
#define GPMC_CONFIG2 (0x04)
#define GPMC_CONFIG3 (0x08)
#define GPMC_CONFIG4 (0x0C)
#define GPMC_CONFIG5 (0x10)
#define GPMC_CONFIG6 (0x14)
#define GPMC_CONFIG7 (0x18)
#define GPMC_NAND_CMD (0x1C)
#define GPMC_NAND_ADR (0x20)
#define GPMC_NAND_DAT (0x24)
#define GPMC_ECC_CONFIG (0x1F4)
#define GPMC_ECC_CONTROL (0x1F8)
#define GPMC_ECC_SIZE_CONFIG (0x1FC)
#define GPMC_ECC1_RESULT (0x200)
#define GPMC_ECC2_RESULT (0x204)
#define GPMC_ECC3_RESULT (0x208)
#define GPMC_ECC4_RESULT (0x20C)
#define GPMC_ECC5_RESULT (0x210)
#define GPMC_ECC6_RESULT (0x214)
#define GPMC_ECC7_RESULT (0x218)
#define GPMC_ECC8_RESULT (0x21C)
#define GPMC_ECC9_RESULT (0x220)
/* GPMC Mapping */
# define FLASH_BASE 0x10000000 /* NOR flash (aligned to 256 Meg) */
# define FLASH_BASE_SDPV1 0x04000000 /* NOR flash (aligned to 64 Meg) */
# define FLASH_BASE_SDPV2 0x10000000 /* NOR flash (aligned to 256 Meg) */
# define DEBUG_BASE 0x08000000 /* debug board */
# define NAND_BASE 0x30000000 /* NAND addr (actual size small port)*/
# define PISMO2_BASE 0x18000000 /* PISMO2 CS1/2 */
# define ONENAND_MAP 0x20000000 /* OneNand addr (actual size small port */
/* SMS */
#define SMS_SYSCONFIG (OMAP34XX_SMS_BASE+0x10)
#define SMS_RG_ATT0 (OMAP34XX_SMS_BASE+0x48)
#define SMS_CLASS_ARB0 (OMAP34XX_SMS_BASE+0xD0)
#define BURSTCOMPLETE_GROUP7 BIT31
/* SDRC */
#define SDRC_SYSCONFIG (OMAP34XX_SDRC_BASE+0x10)
#define SDRC_STATUS (OMAP34XX_SDRC_BASE+0x14)
#define SDRC_CS_CFG (OMAP34XX_SDRC_BASE+0x40)
#define SDRC_SHARING (OMAP34XX_SDRC_BASE+0x44)
#define SDRC_DLLA_CTRL (OMAP34XX_SDRC_BASE+0x60)
#define SDRC_DLLA_STATUS (OMAP34XX_SDRC_BASE+0x64)
#define SDRC_DLLB_CTRL (OMAP34XX_SDRC_BASE+0x68)
#define SDRC_DLLB_STATUS (OMAP34XX_SDRC_BASE+0x6C)
#define DLLPHASE BIT1
#define LOADDLL BIT2
#define DLL_DELAY_MASK 0xFF00
#define DLL_NO_FILTER_MASK (BIT8|BIT9)
#define SDRC_POWER (OMAP34XX_SDRC_BASE+0x70)
#define WAKEUPPROC BIT26
#define SDRC_MCFG_0 (OMAP34XX_SDRC_BASE+0x80)
#define SDRC_MCFG_1 (OMAP34XX_SDRC_BASE+0xB0)
#define SDRC_MR_0 (OMAP34XX_SDRC_BASE+0x84)
#define SDRC_MR_1 (OMAP34XX_SDRC_BASE+0xB4)
#define SDRC_ACTIM_CTRLA_0 (OMAP34XX_SDRC_BASE+0x9C)
#define SDRC_ACTIM_CTRLB_0 (OMAP34XX_SDRC_BASE+0xA0)
#define SDRC_ACTIM_CTRLA_1 (OMAP34XX_SDRC_BASE+0xC4)
#define SDRC_ACTIM_CTRLB_1 (OMAP34XX_SDRC_BASE+0xC8)
#define SDRC_RFR_CTRL_0 (OMAP34XX_SDRC_BASE+0xA4)
#define SDRC_RFR_CTRL_1 (OMAP34XX_SDRC_BASE+0xD4)
#define SDRC_MANUAL_0 (OMAP34XX_SDRC_BASE+0xA8)
#define SDRC_MANUAL_1 (OMAP34XX_SDRC_BASE+0xD8)
#define OMAP34XX_SDRC_CS0 0x80000000
#define OMAP34XX_SDRC_CS1 0xA0000000
#define CMD_NOP 0x0
#define CMD_PRECHARGE 0x1
#define CMD_AUTOREFRESH 0x2
#define CMD_ENTR_PWRDOWN 0x3
#define CMD_EXIT_PWRDOWN 0x4
#define CMD_ENTR_SRFRSH 0x5
#define CMD_CKE_HIGH 0x6
#define CMD_CKE_LOW 0x7
#define SOFTRESET BIT1
#define SMART_IDLE (0x2 << 3)
#define REF_ON_IDLE (0x1 << 6)
/* timer regs offsets (32 bit regs) */
#define TIDR 0x0 /* r */
#define TIOCP_CFG 0x10 /* rw */
#define TISTAT 0x14 /* r */
#define TISR 0x18 /* rw */
#define TIER 0x1C /* rw */
#define TWER 0x20 /* rw */
#define TCLR 0x24 /* rw */
#define TCRR 0x28 /* rw */
#define TLDR 0x2C /* rw */
#define TTGR 0x30 /* rw */
#define TWPS 0x34 /* r */
#define TMAR 0x38 /* rw */
#define TCAR1 0x3c /* r */
#define TSICR 0x40 /* rw */
#define TCAR2 0x44 /* r */
#define GPT_EN ((0<<2)|BIT1|BIT0) /* enable sys_clk NO-prescale /1 */
/* Watchdog */
#define WWPS 0x34 /* r */
#define WSPR 0x48 /* rw */
#define WD_UNLOCK1 0xAAAA
#define WD_UNLOCK2 0x5555
/* PRCM */
#define CM_FCLKEN_IVA2 0x48004000
#define CM_CLKEN_PLL_IVA2 0x48004004
#define CM_IDLEST_PLL_IVA2 0x48004024
#define CM_CLKSEL1_PLL_IVA2 0x48004040
#define CM_CLKSEL2_PLL_IVA2 0x48004044
#define CM_CLKEN_PLL_MPU 0x48004904
#define CM_IDLEST_PLL_MPU 0x48004924
#define CM_CLKSEL1_PLL_MPU 0x48004940
#define CM_CLKSEL2_PLL_MPU 0x48004944
#define CM_FCLKEN1_CORE 0x48004a00
#define CM_ICLKEN1_CORE 0x48004a10
#define CM_ICLKEN2_CORE 0x48004a14
#define CM_CLKSEL_CORE 0x48004a40
#define CM_FCLKEN_GFX 0x48004b00
#define CM_ICLKEN_GFX 0x48004b10
#define CM_CLKSEL_GFX 0x48004b40
#define CM_FCLKEN_WKUP 0x48004c00
#define CM_ICLKEN_WKUP 0x48004c10
#define CM_CLKSEL_WKUP 0x48004c40
#define CM_IDLEST_WKUP 0x48004c20
#define CM_CLKEN_PLL 0x48004d00
#define CM_IDLEST_CKGEN 0x48004d20
#define CM_CLKSEL1_PLL 0x48004d40
#define CM_CLKSEL2_PLL 0x48004d44
#define CM_CLKSEL3_PLL 0x48004d48
#define CM_FCLKEN_DSS 0x48004e00
#define CM_ICLKEN_DSS 0x48004e10
#define CM_CLKSEL_DSS 0x48004e40
#define CM_FCLKEN_CAM 0x48004f00
#define CM_ICLKEN_CAM 0x48004f10
#define CM_CLKSEL_CAM 0x48004F40
#define CM_FCLKEN_PER 0x48005000
#define CM_ICLKEN_PER 0x48005010
#define CM_CLKSEL_PER 0x48005040
#define CM_CLKSEL1_EMU 0x48005140
#define PRM_CLKSEL 0x48306d40
#define PRM_RSTCTRL 0x48307250
#define PRM_CLKSRC_CTRL 0x48307270
#define SYSCLKDIV_2 (0x1 << 7)
/* SMX-APE */
#define PM_RT_APE_BASE_ADDR_ARM (SMX_APE_BASE + 0x10000)
#define PM_GPMC_BASE_ADDR_ARM (SMX_APE_BASE + 0x12400)
#define PM_OCM_RAM_BASE_ADDR_ARM (SMX_APE_BASE + 0x12800)
#define PM_OCM_ROM_BASE_ADDR_ARM (SMX_APE_BASE + 0x12C00)
#define PM_IVA2_BASE_ADDR_ARM (SMX_APE_BASE + 0x14000)
#define RT_REQ_INFO_PERMISSION_1 (PM_RT_APE_BASE_ADDR_ARM + 0x68)
#define RT_READ_PERMISSION_0 (PM_RT_APE_BASE_ADDR_ARM + 0x50)
#define RT_WRITE_PERMISSION_0 (PM_RT_APE_BASE_ADDR_ARM + 0x58)
#define RT_ADDR_MATCH_1 (PM_RT_APE_BASE_ADDR_ARM + 0x60)
#define GPMC_REQ_INFO_PERMISSION_0 (PM_GPMC_BASE_ADDR_ARM + 0x48)
#define GPMC_READ_PERMISSION_0 (PM_GPMC_BASE_ADDR_ARM + 0x50)
#define GPMC_WRITE_PERMISSION_0 (PM_GPMC_BASE_ADDR_ARM + 0x58)
#define OCM_REQ_INFO_PERMISSION_0 (PM_OCM_RAM_BASE_ADDR_ARM + 0x48)
#define OCM_READ_PERMISSION_0 (PM_OCM_RAM_BASE_ADDR_ARM + 0x50)
#define OCM_WRITE_PERMISSION_0 (PM_OCM_RAM_BASE_ADDR_ARM + 0x58)
#define OCM_ADDR_MATCH_2 (PM_OCM_RAM_BASE_ADDR_ARM + 0x80)
#define IVA2_REQ_INFO_PERMISSION_0 (PM_IVA2_BASE_ADDR_ARM + 0x48)
#define IVA2_READ_PERMISSION_0 (PM_IVA2_BASE_ADDR_ARM + 0x50)
#define IVA2_WRITE_PERMISSION_0 (PM_IVA2_BASE_ADDR_ARM + 0x58)
#define IVA2_REQ_INFO_PERMISSION_1 (PM_IVA2_BASE_ADDR_ARM + 0x68)
#define IVA2_READ_PERMISSION_1 (PM_IVA2_BASE_ADDR_ARM + 0x70)
#define IVA2_WRITE_PERMISSION_1 (PM_IVA2_BASE_ADDR_ARM + 0x78)
#define IVA2_REQ_INFO_PERMISSION_2 (PM_IVA2_BASE_ADDR_ARM + 0x88)
#define IVA2_READ_PERMISSION_2 (PM_IVA2_BASE_ADDR_ARM + 0x90)
#define IVA2_WRITE_PERMISSION_2 (PM_IVA2_BASE_ADDR_ARM + 0x98)
#define IVA2_REQ_INFO_PERMISSION_3 (PM_IVA2_BASE_ADDR_ARM + 0xA8)
#define IVA2_READ_PERMISSION_3 (PM_IVA2_BASE_ADDR_ARM + 0xB0)
#define IVA2_WRITE_PERMISSION_3 (PM_IVA2_BASE_ADDR_ARM + 0xB8)
/* I2C base */
#define I2C_BASE1 (OMAP34XX_CORE_L4_IO_BASE + 0x70000)
#define I2C_BASE2 (OMAP34XX_CORE_L4_IO_BASE + 0x72000)
#define I2C_BASE3 (OMAP34XX_CORE_L4_IO_BASE + 0x60000)
#endif
|