aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/prcm-regs.h
blob: 5e1c4b53ee9de1af966f138f77758b132c46bd8d (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
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
/*
 * linux/arch/arm/mach-omap2/prcm-regs.h
 *
 * OMAP24XX Power Reset and Clock Management (PRCM) registers
 *
 * Copyright (C) 2005 Texas Instruments, Inc.
 *
 * 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 __ARCH_ARM_MACH_OMAP2_PRCM_H
#define __ARCH_ARM_MACH_OMAP2_PRCM_H

/* SET_PERFORMANCE_LEVEL PARAMETERS */
#define PRCM_HALF_SPEED 1
#define PRCM_FULL_SPEED 2

#ifndef __ASSEMBLER__

#define PRCM_REG32(offset)	__REG32(OMAP24XX_PRCM_BASE + (offset))

#define PRCM_REVISION		PRCM_REG32(0x000)
#define PRCM_SYSCONFIG		PRCM_REG32(0x010)
#define PRCM_IRQSTATUS_MPU	PRCM_REG32(0x018)
#define PRCM_IRQENABLE_MPU	PRCM_REG32(0x01C)
#define PRCM_VOLTCTRL		PRCM_REG32(0x050)
#define PRCM_VOLTST		PRCM_REG32(0x054)
#define PRCM_CLKSRC_CTRL	PRCM_REG32(0x060)
#define PRCM_CLKOUT_CTRL	PRCM_REG32(0x070)
#define PRCM_CLKEMUL_CTRL	PRCM_REG32(0x078)
#define PRCM_CLKCFG_CTRL	PRCM_REG32(0x080)
#define PRCM_CLKCFG_STATUS	PRCM_REG32(0x084)
#define PRCM_VOLTSETUP		PRCM_REG32(0x090)
#define PRCM_CLKSSETUP		PRCM_REG32(0x094)
#define PRCM_POLCTRL		PRCM_REG32(0x098)

/* GENERAL PURPOSE */
#define GENERAL_PURPOSE1	PRCM_REG32(0x0B0)
#define GENERAL_PURPOSE2	PRCM_REG32(0x0B4)
#define GENERAL_PURPOSE3	PRCM_REG32(0x0B8)
#define GENERAL_PURPOSE4	PRCM_REG32(0x0BC)
#define GENERAL_PURPOSE5	PRCM_REG32(0x0C0)
#define GENERAL_PURPOSE6	PRCM_REG32(0x0C4)
#define GENERAL_PURPOSE7	PRCM_REG32(0x0C8)
#define GENERAL_PURPOSE8	PRCM_REG32(0x0CC)
#define GENERAL_PURPOSE9	PRCM_REG32(0x0D0)
#define GENERAL_PURPOSE10	PRCM_REG32(0x0D4)
#define GENERAL_PURPOSE11	PRCM_REG32(0x0D8)
#define GENERAL_PURPOSE12	PRCM_REG32(0x0DC)
#define GENERAL_PURPOSE13	PRCM_REG32(0x0E0)
#define GENERAL_PURPOSE14	PRCM_REG32(0x0E4)
#define GENERAL_PURPOSE15	PRCM_REG32(0x0E8)
#define GENERAL_PURPOSE16	PRCM_REG32(0x0EC)
#define GENERAL_PURPOSE17	PRCM_REG32(0x0F0)
#define GENERAL_PURPOSE18	PRCM_REG32(0x0F4)
#define GENERAL_PURPOSE19	PRCM_REG32(0x0F8)
#define GENERAL_PURPOSE20	PRCM_REG32(0x0FC)

/* MPU */
#define CM_CLKSEL_MPU		PRCM_REG32(0x140)
#define CM_CLKSTCTRL_MPU	PRCM_REG32(0x148)
#define RM_RSTST_MPU		PRCM_REG32(0x158)
#define PM_WKDEP_MPU		PRCM_REG32(0x1C8)
#define PM_EVGENCTRL_MPU	PRCM_REG32(0x1D4)
#define PM_EVEGENONTIM_MPU	PRCM_REG32(0x1D8)
#define PM_EVEGENOFFTIM_MPU	PRCM_REG32(0x1DC)
#define PM_PWSTCTRL_MPU		PRCM_REG32(0x1E0)
#define PM_PWSTST_MPU		PRCM_REG32(0x1E4)

/* CORE */
#define CM_FCLKEN1_CORE		PRCM_REG32(0x200)
#define CM_FCLKEN2_CORE		PRCM_REG32(0x204)
#define CM_FCLKEN3_CORE		PRCM_REG32(0x208)
#define CM_ICLKEN1_CORE		PRCM_REG32(0x210)
#define CM_ICLKEN2_CORE		PRCM_REG32(0x214)
#define CM_ICLKEN3_CORE		PRCM_REG32(0x218)
#define CM_ICLKEN4_CORE		PRCM_REG32(0x21C)
#define CM_IDLEST1_CORE		PRCM_REG32(0x220)
#define CM_IDLEST2_CORE		PRCM_REG32(0x224)
#define CM_IDLEST3_CORE		PRCM_REG32(0x228)
#define CM_IDLEST4_CORE		PRCM_REG32(0x22C)
#define CM_AUTOIDLE1_CORE	PRCM_REG32(0x230)
#define CM_AUTOIDLE2_CORE	PRCM_REG32(0x234)
#define CM_AUTOIDLE3_CORE	PRCM_REG32(0x238)
#define CM_AUTOIDLE4_CORE	PRCM_REG32(0x23C)
#define CM_CLKSEL1_CORE		PRCM_REG32(0x240)
#define CM_CLKSEL2_CORE		PRCM_REG32(0x244)
#define CM_CLKSTCTRL_CORE	PRCM_REG32(0x248)
#define PM_WKEN1_CORE		PRCM_REG32(0x2A0)
#define PM_WKEN2_CORE		PRCM_REG32(0x2A4)
#define PM_WKST1_CORE		PRCM_REG32(0x2B0)
#define PM_WKST2_CORE		PRCM_REG32(0x2B4)
#define PM_WKDEP_CORE		PRCM_REG32(0x2C8)
#define PM_PWSTCTRL_CORE	PRCM_REG32(0x2E0)
#define PM_PWSTST_CORE		PRCM_REG32(0x2E4)

/* GFX */
#define CM_FCLKEN_GFX		PRCM_REG32(0x300)
#define CM_ICLKEN_GFX		PRCM_REG32(0x310)
#define CM_IDLEST_GFX		PRCM_REG32(0x320)
#define CM_CLKSEL_GFX		PRCM_REG32(0x340)
#define CM_CLKSTCTRL_GFX	PRCM_REG32(0x348)
#define RM_RSTCTRL_GFX		PRCM_REG32(0x350)
#define RM_RSTST_GFX		PRCM_REG32(0x358)
#define PM_WKDEP_GFX		PRCM_REG32(0x3C8)
#define PM_PWSTCTRL_GFX		PRCM_REG32(0x3E0)
#define PM_PWSTST_GFX		PRCM_REG32(0x3E4)

/* WAKE-UP */
#define CM_FCLKEN_WKUP		PRCM_REG32(0x400)
#define CM_ICLKEN_WKUP		PRCM_REG32(0x410)
#define CM_IDLEST_WKUP		PRCM_REG32(0x420)
#define CM_AUTOIDLE_WKUP	PRCM_REG32(0x430)
#define CM_CLKSEL_WKUP		PRCM_REG32(0x440)
#define RM_RSTCTRL_WKUP		PRCM_REG32(0x450)
#define RM_RSTTIME_WKUP		PRCM_REG32(0x454)
#define RM_RSTST_WKUP		PRCM_REG32(0x458)
#define PM_WKEN_WKUP		PRCM_REG32(0x4A0)
#define PM_WKST_WKUP		PRCM_REG32(0x4B0)

/* CLOCKS */
#define CM_CLKEN_PLL		PRCM_REG32(0x500)
#define CM_IDLEST_CKGEN		PRCM_REG32(0x520)
#define CM_AUTOIDLE_PLL		PRCM_REG32(0x530)
#define CM_CLKSEL1_PLL		PRCM_REG32(0x540)
#define CM_CLKSEL2_PLL		PRCM_REG32(0x544)

/* DSP */
#define CM_FCLKEN_DSP		PRCM_REG32(0x800)
#define CM_ICLKEN_DSP		PRCM_REG32(0x810)
#define CM_IDLEST_DSP		PRCM_REG32(0x820)
#define CM_AUTOIDLE_DSP		PRCM_REG32(0x830)
#define CM_CLKSEL_DSP		PRCM_REG32(0x840)
#define CM_CLKSTCTRL_DSP	PRCM_REG32(0x848)
#define RM_RSTCTRL_DSP		PRCM_REG32(0x850)
#define RM_RSTST_DSP		PRCM_REG32(0x858)
#define PM_WKEN_DSP		PRCM_REG32(0x8A0)
#define PM_WKDEP_DSP		PRCM_REG32(0x8C8)
#define PM_PWSTCTRL_DSP		PRCM_REG32(0x8E0)
#define PM_PWSTST_DSP		PRCM_REG32(0x8E4)
#define PRCM_IRQSTATUS_DSP	PRCM_REG32(0x8F0)
#define PRCM_IRQENABLE_DSP	PRCM_REG32(0x8F4)

/* IVA */
#define PRCM_IRQSTATUS_IVA	PRCM_REG32(0x8F8)
#define PRCM_IRQENABLE_IVA	PRCM_REG32(0x8FC)

/* Modem on 2430 */
#define CM_FCLKEN_MDM		PRCM_REG32(0xC00)
#define CM_ICLKEN_MDM		PRCM_REG32(0xC10)
#define CM_IDLEST_MDM		PRCM_REG32(0xC20)
#define CM_AUTOIDLE_MDM		PRCM_REG32(0xC30)
#define CM_CLKSEL_MDM		PRCM_REG32(0xC40)
#define CM_CLKSTCTRL_MDM	PRCM_REG32(0xC48)
#define RM_RSTCTRL_MDM		PRCM_REG32(0xC50)
#define RM_RSTST_MDM		PRCM_REG32(0xC58)
#define PM_WKEN_MDM		PRCM_REG32(0xCA0)
#define PM_WKST_MDM		PRCM_REG32(0xCB0)
#define PM_WKDEP_MDM		PRCM_REG32(0xCC8)
#define PM_PWSTCTRL_MDM		PRCM_REG32(0xCE0)
#define PM_PWSTST_MDM		PRCM_REG32(0xCE4)

#define OMAP24XX_L4_IO_BASE	0x48000000

#define DISP_BASE		(OMAP24XX_L4_IO_BASE + 0x50000)
#define DISP_REG32(offset)	__REG32(DISP_BASE + (offset))

#define OMAP24XX_GPMC_BASE	(L3_24XX_BASE + 0xa000)
#define GPMC_REG32(offset)	__REG32(OMAP24XX_GPMC_BASE + (offset))

/* FIXME: Move these to timer code */
#define GPT1_BASE		(0x48028000)
#define GPT1_REG32(offset)	__REG32(GPT1_BASE + (offset))

/* Misc sysconfig */
#define DISPC_SYSCONFIG		DISP_REG32(0x410)
#define SPI_BASE		(OMAP24XX_L4_IO_BASE + 0x98000)
#define MCSPI1_SYSCONFIG	__REG32(SPI_BASE + 0x10)
#define MCSPI2_SYSCONFIG	__REG32(SPI_BASE + 0x2000 + 0x10)
#define MCSPI3_SYSCONFIG	__REG32(OMAP24XX_L4_IO_BASE + 0xb8010)

#define CAMERA_MMU_SYSCONFIG	__REG32(DISP_BASE + 0x2C10)
#define CAMERA_DMA_SYSCONFIG	__REG32(DISP_BASE + 0x282C)
#define SYSTEM_DMA_SYSCONFIG	__REG32(DISP_BASE + 0x602C)
#define GPMC_SYSCONFIG		GPMC_REG32(0x010)
#define MAILBOXES_SYSCONFIG	__REG32(OMAP24XX_L4_IO_BASE + 0x94010)
#define UART1_SYSCONFIG		__REG32(OMAP24XX_L4_IO_BASE + 0x6A054)
#define UART2_SYSCONFIG		__REG32(OMAP24XX_L4_IO_BASE + 0x6C054)
#define UART3_SYSCONFIG		__REG32(OMAP24XX_L4_IO_BASE + 0x6E054)
#define SDRC_SYSCONFIG		__REG32(OMAP24XX_SDRC_BASE + 0x10)
#define OMAP24XX_SMS_BASE	(L3_24XX_BASE + 0x8000)
#define SMS_SYSCONFIG		__REG32(OMAP24XX_SMS_BASE + 0x10)
#define SSI_SYSCONFIG		__REG32(DISP_BASE + 0x8010)

/* rkw - good cannidates for PM_ to start what nm was trying */
#define OMAP24XX_GPT2		(OMAP24XX_L4_IO_BASE + 0x2A000)
#define OMAP24XX_GPT3		(OMAP24XX_L4_IO_BASE + 0x78000)
#define OMAP24XX_GPT4		(OMAP24XX_L4_IO_BASE + 0x7A000)
#define OMAP24XX_GPT5		(OMAP24XX_L4_IO_BASE + 0x7C000)
#define OMAP24XX_GPT6		(OMAP24XX_L4_IO_BASE + 0x7E000)
#define OMAP24XX_GPT7		(OMAP24XX_L4_IO_BASE + 0x80000)
#define OMAP24XX_GPT8		(OMAP24XX_L4_IO_BASE + 0x82000)
#define OMAP24XX_GPT9		(OMAP24XX_L4_IO_BASE + 0x84000)
#define OMAP24XX_GPT10		(OMAP24XX_L4_IO_BASE + 0x86000)
#define OMAP24XX_GPT11		(OMAP24XX_L4_IO_BASE + 0x88000)
#define OMAP24XX_GPT12		(OMAP24XX_L4_IO_BASE + 0x8A000)

/* FIXME: Move these to timer code */
#define GPTIMER1_SYSCONFIG	GPT1_REG32(0x010)
#define GPTIMER2_SYSCONFIG	__REG32(OMAP24XX_GPT2 + 0x10)
#define GPTIMER3_SYSCONFIG	__REG32(OMAP24XX_GPT3 + 0x10)
#define GPTIMER4_SYSCONFIG	__REG32(OMAP24XX_GPT4 + 0x10)
#define GPTIMER5_SYSCONFIG	__REG32(OMAP24XX_GPT5 + 0x10)
#define GPTIMER6_SYSCONFIG	__REG32(OMAP24XX_GPT6 + 0x10)
#define GPTIMER7_SYSCONFIG	__REG32(OMAP24XX_GPT7 + 0x10)
#define GPTIMER8_SYSCONFIG	__REG32(OMAP24XX_GPT8 + 0x10)
#define GPTIMER9_SYSCONFIG	__REG32(OMAP24XX_GPT9 + 0x10)
#define GPTIMER10_SYSCONFIG	__REG32(OMAP24XX_GPT10 + 0x10)
#define GPTIMER11_SYSCONFIG	__REG32(OMAP24XX_GPT11 + 0x10)
#define GPTIMER12_SYSCONFIG	__REG32(OMAP24XX_GPT12 + 0x10)

/* FIXME: Move these to gpio code */
#define OMAP24XX_GPIO_BASE	0x48018000
#define GPIOX_BASE(X)		(OMAP24XX_GPIO_BASE + (0x2000 * ((X) - 1)))

#define GPIO1_SYSCONFIG		__REG32((GPIOX_BASE(1) + 0x10))
#define GPIO2_SYSCONFIG		__REG32((GPIOX_BASE(2) + 0x10))
#define GPIO3_SYSCONFIG		__REG32((GPIOX_BASE(3) + 0x10))
#define GPIO4_SYSCONFIG		__REG32((GPIOX_BASE(4) + 0x10))

#if defined(CONFIG_ARCH_OMAP243X)
#define GPIO5_SYSCONFIG		__REG32((OMAP24XX_GPIO5_BASE + 0x10))
#endif

/* GP TIMER 1 */
#define GPTIMER1_TISTAT		GPT1_REG32(0x014)
#define GPTIMER1_TISR		GPT1_REG32(0x018)
#define GPTIMER1_TIER		GPT1_REG32(0x01C)
#define GPTIMER1_TWER		GPT1_REG32(0x020)
#define GPTIMER1_TCLR		GPT1_REG32(0x024)
#define GPTIMER1_TCRR		GPT1_REG32(0x028)
#define GPTIMER1_TLDR		GPT1_REG32(0x02C)
#define GPTIMER1_TTGR		GPT1_REG32(0x030)
#define GPTIMER1_TWPS		GPT1_REG32(0x034)
#define GPTIMER1_TMAR		GPT1_REG32(0x038)
#define GPTIMER1_TCAR1		GPT1_REG32(0x03C)
#define GPTIMER1_TSICR		GPT1_REG32(0x040)
#define GPTIMER1_TCAR2		GPT1_REG32(0x044)

/* rkw -- base fix up please... */
#define GPTIMER3_TISR		__REG32(OMAP24XX_L4_IO_BASE + 0x78018)

/* SDRC */
#define SDRC_DLLA_CTRL		__REG32(OMAP24XX_SDRC_BASE + 0x060)
#define SDRC_DLLA_STATUS	__REG32(OMAP24XX_SDRC_BASE + 0x064)
#define SDRC_DLLB_CTRL		__REG32(OMAP24XX_SDRC_BASE + 0x068)
#define SDRC_DLLB_STATUS	__REG32(OMAP24XX_SDRC_BASE + 0x06C)
#define SDRC_POWER		__REG32(OMAP24XX_SDRC_BASE + 0x070)
#define SDRC_MR_0		__REG32(OMAP24XX_SDRC_BASE + 0x084)

/* GPIO 1 */
#define GPIO1_BASE		GPIOX_BASE(1)
#define GPIO1_REG32(offset)	__REG32(GPIO1_BASE + (offset))
#define GPIO1_IRQENABLE1	GPIO1_REG32(0x01C)
#define GPIO1_IRQSTATUS1	GPIO1_REG32(0x018)
#define GPIO1_IRQENABLE2	GPIO1_REG32(0x02C)
#define GPIO1_IRQSTATUS2	GPIO1_REG32(0x028)
#define GPIO1_WAKEUPENABLE	GPIO1_REG32(0x020)
#define GPIO1_RISINGDETECT	GPIO1_REG32(0x048)
#define GPIO1_DATAIN		GPIO1_REG32(0x038)
#define GPIO1_OE		GPIO1_REG32(0x034)
#define GPIO1_DATAOUT		GPIO1_REG32(0x03C)

/* GPIO2 */
#define GPIO2_BASE		GPIOX_BASE(2)
#define GPIO2_REG32(offset)	__REG32(GPIO2_BASE + (offset))
#define GPIO2_IRQENABLE1	GPIO2_REG32(0x01C)
#define GPIO2_IRQSTATUS1	GPIO2_REG32(0x018)
#define GPIO2_IRQENABLE2	GPIO2_REG32(0x02C)
#define GPIO2_IRQSTATUS2	GPIO2_REG32(0x028)
#define GPIO2_WAKEUPENABLE	GPIO2_REG32(0x020)
#define GPIO2_RISINGDETECT	GPIO2_REG32(0x048)
#define GPIO2_DATAIN		GPIO2_REG32(0x038)
#define GPIO2_OE		GPIO2_REG32(0x034)
#define GPIO2_DATAOUT		GPIO2_REG32(0x03C)
#define GPIO2_DEBOUNCENABLE	GPIO2_REG32(0x050)
#define GPIO2_DEBOUNCINGTIME	GPIO2_REG32(0x054)

/* GPIO 3 */
#define GPIO3_BASE		GPIOX_BASE(3)
#define GPIO3_REG32(offset)	__REG32(GPIO3_BASE + (offset))
#define GPIO3_IRQENABLE1	GPIO3_REG32(0x01C)
#define GPIO3_IRQSTATUS1	GPIO3_REG32(0x018)
#define GPIO3_IRQENABLE2	GPIO3_REG32(0x02C)
#define GPIO3_IRQSTATUS2	GPIO3_REG32(0x028)
#define GPIO3_WAKEUPENABLE	GPIO3_REG32(0x020)
#define GPIO3_RISINGDETECT	GPIO3_REG32(0x048)
#define GPIO3_FALLINGDETECT	GPIO3_REG32(0x04C)
#define GPIO3_DATAIN		GPIO3_REG32(0x038)
#define GPIO3_OE		GPIO3_REG32(0x034)
#define GPIO3_DATAOUT		GPIO3_REG32(0x03C)
#define GPIO3_DEBOUNCENABLE	GPIO3_REG32(0x050)
#define GPIO3_DEBOUNCINGTIME	GPIO3_REG32(0x054)
#define GPIO3_DEBOUNCENABLE	GPIO3_REG32(0x050)
#define GPIO3_DEBOUNCINGTIME	GPIO3_REG32(0x054)

/* GPIO 4 */
#define GPIO4_BASE		GPIOX_BASE(4)
#define GPIO4_REG32(offset)	__REG32(GPIO4_BASE + (offset))
#define GPIO4_IRQENABLE1	GPIO4_REG32(0x01C)
#define GPIO4_IRQSTATUS1	GPIO4_REG32(0x018)
#define GPIO4_IRQENABLE2	GPIO4_REG32(0x02C)
#define GPIO4_IRQSTATUS2	GPIO4_REG32(0x028)
#define GPIO4_WAKEUPENABLE	GPIO4_REG32(0x020)
#define GPIO4_RISINGDETECT	GPIO4_REG32(0x048)
#define GPIO4_FALLINGDETECT	GPIO4_REG32(0x04C)
#define GPIO4_DATAIN		GPIO4_REG32(0x038)
#define GPIO4_OE		GPIO4_REG32(0x034)
#define GPIO4_DATAOUT		GPIO4_REG32(0x03C)
#define GPIO4_DEBOUNCENABLE	GPIO4_REG32(0x050)
#define GPIO4_DEBOUNCINGTIME	GPIO4_REG32(0x054)

#if defined(CONFIG_ARCH_OMAP243X)
/* GPIO 5 */
#define GPIO5_REG32(offset)	__REG32((OMAP24XX_GPIO5_BASE + (offset)))
#define GPIO5_IRQENABLE1	GPIO5_REG32(0x01C)
#define GPIO5_IRQSTATUS1	GPIO5_REG32(0x018)
#define GPIO5_IRQENABLE2	GPIO5_REG32(0x02C)
#define GPIO5_IRQSTATUS2	GPIO5_REG32(0x028)
#define GPIO5_WAKEUPENABLE	GPIO5_REG32(0x020)
#define GPIO5_RISINGDETECT	GPIO5_REG32(0x048)
#define GPIO5_FALLINGDETECT	GPIO5_REG32(0x04C)
#define GPIO5_DATAIN		GPIO5_REG32(0x038)
#define GPIO5_OE		GPIO5_REG32(0x034)
#define GPIO5_DATAOUT		GPIO5_REG32(0x03C)
#define GPIO5_DEBOUNCENABLE	GPIO5_REG32(0x050)
#define GPIO5_DEBOUNCINGTIME	GPIO5_REG32(0x054)
#endif

/* IO CONFIG */
#define OMAP24XX_CTRL_BASE		(L4_24XX_BASE)
#define CONTROL_REG32(offset)		__REG32(OMAP24XX_CTRL_BASE + (offset))

#define CONTROL_PADCONF_SPI1_NCS2	CONTROL_REG32(0x104)
#define CONTROL_PADCONF_SYS_XTALOUT	CONTROL_REG32(0x134)
#define CONTROL_PADCONF_UART1_RX	CONTROL_REG32(0x0C8)
#define CONTROL_PADCONF_MCBSP1_DX	CONTROL_REG32(0x10C)
#define CONTROL_PADCONF_GPMC_NCS4	CONTROL_REG32(0x090)
#define CONTROL_PADCONF_DSS_D5		CONTROL_REG32(0x0B8)
#define CONTROL_PADCONF_DSS_D9		CONTROL_REG32(0x0BC)	/* 2420 */
#define CONTROL_PADCONF_DSS_D13		CONTROL_REG32(0x0C0)
#define CONTROL_PADCONF_DSS_VSYNC	CONTROL_REG32(0x0CC)
#define CONTROL_PADCONF_SYS_NIRQW0	CONTROL_REG32(0x0BC)	/* 2430 */
#define CONTROL_PADCONF_SSI1_FLAG_TX	CONTROL_REG32(0x108)	/* 2430 */

/* CONTROL */
#define CONTROL_DEVCONF		CONTROL_REG32(0x274)
#define CONTROL_DEVCONF1	CONTROL_REG32(0x2E8)

/* INTERRUPT CONTROLLER */
#define INTC_BASE		((L4_24XX_BASE) + 0xfe000)
#define INTC_REG32(offset)	__REG32(INTC_BASE + (offset))

#define INTC1_U_BASE		INTC_REG32(0x000)
#define INTC_MIR0		INTC_REG32(0x084)
#define INTC_MIR_SET0		INTC_REG32(0x08C)
#define INTC_MIR_CLEAR0		INTC_REG32(0x088)
#define INTC_ISR_CLEAR0		INTC_REG32(0x094)
#define INTC_MIR1		INTC_REG32(0x0A4)
#define INTC_MIR_SET1		INTC_REG32(0x0AC)
#define INTC_MIR_CLEAR1		INTC_REG32(0x0A8)
#define INTC_ISR_CLEAR1		INTC_REG32(0x0B4)
#define INTC_MIR2		INTC_REG32(0x0C4)
#define INTC_MIR_SET2		INTC_REG32(0x0CC)
#define INTC_MIR_CLEAR2		INTC_REG32(0x0C8)
#define INTC_ISR_CLEAR2		INTC_REG32(0x0D4)
#define INTC_SIR_IRQ		INTC_REG32(0x040)
#define INTC_CONTROL		INTC_REG32(0x048)
#define INTC_ILR11		INTC_REG32(0x12C)	/* PRCM on MPU PIC */
#define INTC_ILR30		INTC_REG32(0x178)
#define INTC_ILR31		INTC_REG32(0x17C)
#define INTC_ILR32		INTC_REG32(0x180)
#define INTC_ILR37		INTC_REG32(0x194)	/* GPIO4 on MPU PIC */
#define INTC_SYSCONFIG		INTC_REG32(0x010)	/* GPT1 on MPU PIC */

/* RAM FIREWALL */
#define RAMFW_BASE		(0x68005000)
#define RAMFW_REG32(offset)	__REG32(RAMFW_BASE + (offset))

#define RAMFW_REQINFOPERM0	RAMFW_REG32(0x048)
#define RAMFW_READPERM0		RAMFW_REG32(0x050)
#define RAMFW_WRITEPERM0	RAMFW_REG32(0x058)

/* GPMC CS1 FPGA ON USER INTERFACE MODULE */
//#define DEBUG_BOARD_LED_REGISTER 0x04000014

/* GPMC CS0 */
#define GPMC_CONFIG1_0		GPMC_REG32(0x060)
#define GPMC_CONFIG2_0		GPMC_REG32(0x064)
#define GPMC_CONFIG3_0		GPMC_REG32(0x068)
#define GPMC_CONFIG4_0		GPMC_REG32(0x06C)
#define GPMC_CONFIG5_0		GPMC_REG32(0x070)
#define GPMC_CONFIG6_0		GPMC_REG32(0x074)
#define GPMC_CONFIG7_0		GPMC_REG32(0x078)

/* GPMC CS1 */
#define GPMC_CONFIG1_1		GPMC_REG32(0x090)
#define GPMC_CONFIG2_1		GPMC_REG32(0x094)
#define GPMC_CONFIG3_1		GPMC_REG32(0x098)
#define GPMC_CONFIG4_1		GPMC_REG32(0x09C)
#define GPMC_CONFIG5_1		GPMC_REG32(0x0a0)
#define GPMC_CONFIG6_1		GPMC_REG32(0x0a4)
#define GPMC_CONFIG7_1		GPMC_REG32(0x0a8)

/* GPMC CS3 */
#define GPMC_CONFIG1_3		GPMC_REG32(0x0F0)
#define GPMC_CONFIG2_3		GPMC_REG32(0x0F4)
#define GPMC_CONFIG3_3		GPMC_REG32(0x0F8)
#define GPMC_CONFIG4_3		GPMC_REG32(0x0FC)
#define GPMC_CONFIG5_3		GPMC_REG32(0x100)
#define GPMC_CONFIG6_3		GPMC_REG32(0x104)
#define GPMC_CONFIG7_3		GPMC_REG32(0x108)

/* DSS */
#define DSS_CONTROL		DISP_REG32(0x040)
#define DISPC_CONTROL		DISP_REG32(0x440)
#define DISPC_SYSSTATUS		DISP_REG32(0x414)
#define DISPC_IRQSTATUS		DISP_REG32(0x418)
#define DISPC_IRQENABLE		DISP_REG32(0x41C)
#define DISPC_CONFIG		DISP_REG32(0x444)
#define DISPC_DEFAULT_COLOR0	DISP_REG32(0x44C)
#define DISPC_DEFAULT_COLOR1	DISP_REG32(0x450)
#define DISPC_TRANS_COLOR0	DISP_REG32(0x454)
#define DISPC_TRANS_COLOR1	DISP_REG32(0x458)
#define DISPC_LINE_NUMBER	DISP_REG32(0x460)
#define DISPC_TIMING_H		DISP_REG32(0x464)
#define DISPC_TIMING_V		DISP_REG32(0x468)
#define DISPC_POL_FREQ		DISP_REG32(0x46C)
#define DISPC_DIVISOR		DISP_REG32(0x470)
#define DISPC_SIZE_DIG		DISP_REG32(0x478)
#define DISPC_SIZE_LCD		DISP_REG32(0x47C)
#define DISPC_GFX_BA0		DISP_REG32(0x480)
#define DISPC_GFX_BA1		DISP_REG32(0x484)
#define DISPC_GFX_POSITION	DISP_REG32(0x488)
#define DISPC_GFX_SIZE		DISP_REG32(0x48C)
#define DISPC_GFX_ATTRIBUTES	DISP_REG32(0x4A0)
#define DISPC_GFX_FIFO_THRESHOLD	DISP_REG32(0x4A4)
#define DISPC_GFX_ROW_INC	DISP_REG32(0x4AC)
#define DISPC_GFX_PIXEL_INC	DISP_REG32(0x4B0)
#define DISPC_GFX_WINDOW_SKIP	DISP_REG32(0x4B4)
#define DISPC_GFX_TABLE_BA	DISP_REG32(0x4B8)
#define DISPC_DATA_CYCLE1	DISP_REG32(0x5D4)
#define DISPC_DATA_CYCLE2	DISP_REG32(0x5D8)
#define DISPC_DATA_CYCLE3	DISP_REG32(0x5DC)

/* HSUSB Suspend */
#define HSUSB_CTRL		__REG8(0x480AC001)
#define USBOTG_POWER		__REG32(0x480AC000)

/* HS MMC */
#define MMCHS1_SYSCONFIG	__REG32(0x4809C010)
#define MMCHS2_SYSCONFIG	__REG32(0x480b4010)

#endif	/* __ASSEMBLER__ */

#endif