]> bbs.cooldavid.org Git - net-next-2.6.git/blame - arch/arm/mach-u300/include/mach/u300-regs.h
Merge branches 'irq-core-for-linus' and 'core-locking-for-linus' of git://git.kernel...
[net-next-2.6.git] / arch / arm / mach-u300 / include / mach / u300-regs.h
CommitLineData
fa59440d
LW
1/*
2 *
3 * arch/arm/mach-u300/include/mach/u300-regs.h
4 *
5 *
6 * Copyright (C) 2006-2009 ST-Ericsson AB
7 * License terms: GNU General Public License (GPL) version 2
8 * Basic register address definitions in physical memory and
6070d81e 9 * some block definitions for core devices like the timer.
fa59440d
LW
10 * Author: Linus Walleij <linus.walleij@stericsson.com>
11 */
12
13#ifndef __MACH_U300_REGS_H
14#define __MACH_U300_REGS_H
15
16/*
17 * These are the large blocks of memory allocated for I/O.
18 * the defines are used for setting up the I/O memory mapping.
19 */
20
21/* NAND Flash CS0 */
22#define U300_NAND_CS0_PHYS_BASE 0x80000000
fa59440d
LW
23
24/* NFIF */
25#define U300_NAND_IF_PHYS_BASE 0x9f800000
fa59440d
LW
26
27/* AHB Peripherals */
28#define U300_AHB_PER_PHYS_BASE 0xa0000000
29#define U300_AHB_PER_VIRT_BASE 0xff010000
30
31/* FAST Peripherals */
32#define U300_FAST_PER_PHYS_BASE 0xc0000000
33#define U300_FAST_PER_VIRT_BASE 0xff020000
34
35/* SLOW Peripherals */
36#define U300_SLOW_PER_PHYS_BASE 0xc0010000
37#define U300_SLOW_PER_VIRT_BASE 0xff000000
38
39/* Boot ROM */
40#define U300_BOOTROM_PHYS_BASE 0xffff0000
41#define U300_BOOTROM_VIRT_BASE 0xffff0000
42
43/* SEMI config base */
44#ifdef CONFIG_MACH_U300_BS335
45#define U300_SEMI_CONFIG_BASE 0x2FFE0000
46#else
47#define U300_SEMI_CONFIG_BASE 0x30000000
48#endif
49
50/*
51 * All the following peripherals are specified at their PHYSICAL address,
52 * so if you need to access them (in the kernel), you MUST use the macros
53 * defined in <asm/io.h> to map to the IO_ADDRESS_AHB() IO_ADDRESS_FAST()
54 * etc.
55 */
56
57/*
58 * AHB peripherals
59 */
60
61/* AHB Peripherals Bridge Controller */
62#define U300_AHB_BRIDGE_BASE (U300_AHB_PER_PHYS_BASE+0x0000)
63
64/* Vectored Interrupt Controller 0, servicing 32 interrupts */
65#define U300_INTCON0_BASE (U300_AHB_PER_PHYS_BASE+0x1000)
66#define U300_INTCON0_VBASE (U300_AHB_PER_VIRT_BASE+0x1000)
67
68/* Vectored Interrupt Controller 1, servicing 32 interrupts */
69#define U300_INTCON1_BASE (U300_AHB_PER_PHYS_BASE+0x2000)
70#define U300_INTCON1_VBASE (U300_AHB_PER_VIRT_BASE+0x2000)
71
72/* Memory Stick Pro (MSPRO) controller */
73#define U300_MSPRO_BASE (U300_AHB_PER_PHYS_BASE+0x3000)
74
75/* EMIF Configuration Area */
76#define U300_EMIF_CFG_BASE (U300_AHB_PER_PHYS_BASE+0x4000)
77
78
79/*
80 * FAST peripherals
81 */
82
83/* FAST bridge control */
84#define U300_FAST_BRIDGE_BASE (U300_FAST_PER_PHYS_BASE+0x0000)
85
86/* MMC/SD controller */
87#define U300_MMCSD_BASE (U300_FAST_PER_PHYS_BASE+0x1000)
88
89/* PCM I2S0 controller */
90#define U300_PCM_I2S0_BASE (U300_FAST_PER_PHYS_BASE+0x2000)
91
92/* PCM I2S1 controller */
93#define U300_PCM_I2S1_BASE (U300_FAST_PER_PHYS_BASE+0x3000)
94
95/* I2C0 controller */
96#define U300_I2C0_BASE (U300_FAST_PER_PHYS_BASE+0x4000)
97
98/* I2C1 controller */
99#define U300_I2C1_BASE (U300_FAST_PER_PHYS_BASE+0x5000)
100
101/* SPI controller */
102#define U300_SPI_BASE (U300_FAST_PER_PHYS_BASE+0x6000)
103
104#ifdef CONFIG_MACH_U300_BS335
105/* Fast UART1 on U335 only */
106#define U300_UART1_BASE (U300_SLOW_PER_PHYS_BASE+0x7000)
107#endif
108
109/*
110 * SLOW peripherals
111 */
112
113/* SLOW bridge control */
114#define U300_SLOW_BRIDGE_BASE (U300_SLOW_PER_PHYS_BASE)
115
116/* SYSCON */
117#define U300_SYSCON_BASE (U300_SLOW_PER_PHYS_BASE+0x1000)
118#define U300_SYSCON_VBASE (U300_SLOW_PER_VIRT_BASE+0x1000)
119
120/* Watchdog */
121#define U300_WDOG_BASE (U300_SLOW_PER_PHYS_BASE+0x2000)
122
123/* UART0 */
124#define U300_UART0_BASE (U300_SLOW_PER_PHYS_BASE+0x3000)
125
126/* APP side special timer */
127#define U300_TIMER_APP_BASE (U300_SLOW_PER_PHYS_BASE+0x4000)
128#define U300_TIMER_APP_VBASE (U300_SLOW_PER_VIRT_BASE+0x4000)
129
130/* Keypad */
131#define U300_KEYPAD_BASE (U300_SLOW_PER_PHYS_BASE+0x5000)
132
133/* GPIO */
134#define U300_GPIO_BASE (U300_SLOW_PER_PHYS_BASE+0x6000)
135
136/* RTC */
137#define U300_RTC_BASE (U300_SLOW_PER_PHYS_BASE+0x7000)
138
139/* Bus tracer */
140#define U300_BUSTR_BASE (U300_SLOW_PER_PHYS_BASE+0x8000)
141
142/* Event handler (hardware queue) */
143#define U300_EVHIST_BASE (U300_SLOW_PER_PHYS_BASE+0x9000)
144
145/* Genric Timer */
146#define U300_TIMER_BASE (U300_SLOW_PER_PHYS_BASE+0xa000)
147
148/* PPM */
149#define U300_PPM_BASE (U300_SLOW_PER_PHYS_BASE+0xb000)
150
151
152/*
153 * REST peripherals
154 */
155
156/* ISP (image signal processor) is only available in U335 */
157#ifdef CONFIG_MACH_U300_BS335
158#define U300_ISP_BASE (0xA0008000)
159#endif
160
161/* DMA Controller base */
162#define U300_DMAC_BASE (0xC0020000)
163
164/* MSL Base */
165#define U300_MSL_BASE (0xc0022000)
166
167/* APEX Base */
168#define U300_APEX_BASE (0xc0030000)
169
170/* Video Encoder Base */
171#ifdef CONFIG_MACH_U300_BS335
172#define U300_VIDEOENC_BASE (0xc0080000)
173#else
174#define U300_VIDEOENC_BASE (0xc0040000)
175#endif
176
177/* XGAM Base */
178#define U300_XGAM_BASE (0xd0000000)
179
180/*
181 * Virtual accessor macros for static devices
182 */
183
184
185#endif