blob: c7d940577a4b7d824c7d47416bb9236208126370 [file] [log] [blame]
Travis Geiselbrecht1d0df692008-09-01 02:26:09 -07001/*
2 * Copyright (c) 2008 Travis Geiselbrecht
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files
6 * (the "Software"), to deal in the Software without restriction,
7 * including without limitation the rights to use, copy, modify, merge,
8 * publish, distribute, sublicense, and/or sell copies of the Software,
9 * and to permit persons to whom the Software is furnished to do so,
10 * subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be
13 * included in all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 */
23#ifndef __PLATFORM_OMAP3_H
24#define __PLATFORM_OMAP3_H
25
26#define SDRAM_BASE 0x80000000
27
28#define L4_BASE 0x48000000
29#define L4_WKUP_BASE 0x48300000
30#define L4_PER_BASE 0x49000000
31#define L4_EMU_BASE 0x54000000
32#define GFX_BASE 0x50000000
33#define L3_BASE 0x68000000
34#define SMS_BASE 0x6C000000
35#define SDRC_BASE 0x6D000000
36#define GPMC_BASE 0x6E000000
37#define SCM_BASE 0x48002000
38
39/* clocks */
40#define CM_CLKSEL_PER (L4_BASE + 0x5040)
41
42/* General Purpose Timers */
43#define OMAP34XX_GPT1 (L4_BASE + 0x318000)
44#define OMAP34XX_GPT2 (L4_BASE + 0x1032000)
45#define OMAP34XX_GPT3 (L4_BASE + 0x1034000)
46#define OMAP34XX_GPT4 (L4_BASE + 0x1036000)
47#define OMAP34XX_GPT5 (L4_BASE + 0x1038000)
48#define OMAP34XX_GPT6 (L4_BASE + 0x103A000)
49#define OMAP34XX_GPT7 (L4_BASE + 0x103C000)
50#define OMAP34XX_GPT8 (L4_BASE + 0x103E000)
51#define OMAP34XX_GPT9 (L4_BASE + 0x1040000)
52#define OMAP34XX_GPT10 (L4_BASE + 0x86000)
53#define OMAP34XX_GPT11 (L4_BASE + 0x88000)
54#define OMAP34XX_GPT12 (L4_BASE + 0x304000)
55
56#define TIDR 0x00
57#define TIOCP_CFG 0x10
58#define TISTAT 0x14
59#define TISR 0x18
60#define TIER 0x1C
61#define TWER 0x20
62#define TCLR 0x24
63#define TCRR 0x28
64#define TLDR 0x2C
65#define TTGR 0x30
66#define TWPS 0x34
67#define TMAR 0x38
68#define TCAR1 0x3C
69#define TSICR 0x40
70#define TCAR2 0x44
71#define TPIR 0x48
72#define TNIR 0x4C
73#define TCVR 0x50
74#define TOCR 0x54
75#define TOWR 0x58
76
77/* WatchDog Timers (1 secure, 3 GP) */
78#define WD1_BASE (0x4830C000)
79#define WD2_BASE (0x48314000)
80#define WD3_BASE (0x49030000)
81
82#define WIDR 0x00
83#define WD_SYSCONFIG 0x10
84#define WD_SYSSTATUS 0x14
85#define WISR 0x18
86#define WIER 0x1C
87#define WCLR 0x24
88#define WCRR 0x28
89#define WLDR 0x2C
90#define WTGR 0x30
91#define WWPS 0x34
92#define WSPR 0x48
93
94#define W_PEND_WCLR (1<<0)
95#define W_PEND_WCRR (1<<1)
96#define W_PEND_WLDR (1<<2)
97#define W_PEND_WTGR (1<<3)
98#define W_PEND_WSPR (1<<4)
99
100#define WD_UNLOCK1 0xAAAA
101#define WD_UNLOCK2 0x5555
102
103/* 32KTIMER */
104#define TIMER32K_BASE (L4_BASE + 0x320000)
105#define TIMER32K_REV (TIMER32K_BASE + 0x00)
106#define TIMER32K_CR (TIMER32K_BASE + 0x10)
107
108/* UART */
109#define OMAP_UART1_BASE (L4_BASE + 0x6a000)
110#define OMAP_UART2_BASE (L4_BASE + 0x6c000)
111#define OMAP_UART3_BASE (L4_BASE + 0x01020000)
112
113#define UART_RHR 0
114#define UART_THR 0
115#define UART_DLL 0
116#define UART_IER 1
117#define UART_DLH 1
118#define UART_IIR 2
119#define UART_FCR 2
120#define UART_EFR 2
121#define UART_LCR 3
122#define UART_MCR 4
123#define UART_LSR 5
124#define UART_MSR 6
125#define UART_TCR 6
126#define UART_SPR 7
127#define UART_TLR 7
128#define UART_MDR1 8
129#define UART_MDR2 9
130#define UART_SFLSR 10
131#define UART_RESUME 11
132#define UART_TXFLL 10
133#define UART_TXFLH 11
134#define UART_SFREGL 12
135#define UART_SFREGH 13
136#define UART_RXFLL 12
137#define UART_RXFLH 13
138#define UART_BLR 14
139#define UART_UASR 14
140#define UART_ACREG 15
141#define UART_SCR 16
142#define UART_SSR 17
143#define UART_EBLR 18
144#define UART_MVR 19
145#define UART_SYSC 20
146
147/* MPU INTC */
148#define INTC_BASE (L4_BASE + 0x200000)
149#define INTC_REVISION (INTC_BASE + 0x000)
150#define INTC_SYSCONFIG (INTC_BASE + 0x010)
151#define INTC_SYSSTATUS (INTC_BASE + 0x014)
152#define INTC_SIR_IRQ (INTC_BASE + 0x040)
153#define INTC_SIR_FIQ (INTC_BASE + 0x044)
154#define INTC_CONTROL (INTC_BASE + 0x048)
155#define INTC_PROTECTION (INTC_BASE + 0x04C)
156#define INTC_IDLE (INTC_BASE + 0x050)
157#define INTC_IRQ_PRIORITY (INTC_BASE + 0x060)
158#define INTC_FIQ_PRIORITY (INTC_BASE + 0x064)
159#define INTC_THRESHOLD (INTC_BASE + 0x068)
160#define INTC_ITR(n) (INTC_BASE + 0x080 + (n) * 0x20)
161#define INTC_MIR(n) (INTC_BASE + 0x084 + (n) * 0x20)
162#define INTC_MIR_CLEAR(n) (INTC_BASE + 0x088 + (n) * 0x20)
163#define INTC_MIR_SET(n) (INTC_BASE + 0x08C + (n) * 0x20)
164#define INTC_ISR_SET(n) (INTC_BASE + 0x090 + (n) * 0x20)
165#define INTC_ISR_CLEAR(n) (INTC_BASE + 0x094 + (n) * 0x20)
166#define INTC_PENDING_IRQ(n) (INTC_BASE + 0x098 + (n) * 0x20)
167#define INTC_PENDING_FIQ(n) (INTC_BASE + 0x09C + (n) * 0x20)
168#define INTC_ILR(n) (INTC_BASE + 0x100 + (n) * 4)
169
170/* interrupts */
171#define INT_VECTORS 96
172#define GPT2_IRQ 38
173
174#endif
175