aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-w90x900/include/mach/map.h
blob: 1a209530411776e916f176fc539877b649992895 (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
/*
 * arch/arm/mach-w90x900/include/mach/map.h
 *
 * Copyright (c) 2008 Nuvoton technology corporation.
 *
 * Wan ZongShun <mcuos.com@gmail.com>
 *
 * Based on arch/arm/mach-s3c2410/include/mach/map.h
 *
 * 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;version 2 of the License.
 *
 */

#ifndef __ASM_ARCH_MAP_H
#define __ASM_ARCH_MAP_H

#ifndef __ASSEMBLY__
#define W90X900_ADDR(x)		((void __iomem *)(0xF0000000 + (x)))
#else
#define W90X900_ADDR(x)		(0xF0000000 + (x))
#endif

#define AHB_IO_BASE		0xB0000000
#define APB_IO_BASE		0xB8000000
#define CLOCKPW_BASE		(APB_IO_BASE+0x200)
#define AIC_IO_BASE		(APB_IO_BASE+0x2000)
#define TIMER_IO_BASE		(APB_IO_BASE+0x1000)

/*
 * interrupt controller is the first thing we put in, to make
 * the assembly code for the irq detection easier
 */
#define W90X900_VA_IRQ		W90X900_ADDR(0x00000000)
#define W90X900_PA_IRQ		(0xB8002000)
#define W90X900_SZ_IRQ		SZ_4K

#define W90X900_VA_GCR		W90X900_ADDR(0x08002000)
#define W90X900_PA_GCR		(0xB0000000)
#define W90X900_SZ_GCR		SZ_4K

/* Clock and Power management */
#define W90X900_VA_CLKPWR	(W90X900_VA_GCR+0x200)
#define W90X900_PA_CLKPWR	(0xB0000200)
#define W90X900_SZ_CLKPWR	SZ_4K

/* EBI management */
#define W90X900_VA_EBI		W90X900_ADDR(0x00001000)
#define W90X900_PA_EBI		(0xB0001000)
#define W90X900_SZ_EBI		SZ_4K

/* UARTs */
#define W90X900_VA_UART		W90X900_ADDR(0x08000000)
#define W90X900_PA_UART		(0xB8000000)
#define W90X900_SZ_UART		SZ_4K

/* Timers */
#define W90X900_VA_TIMER	W90X900_ADDR(0x08001000)
#define W90X900_PA_TIMER	(0xB8001000)
#define W90X900_SZ_TIMER	SZ_4K

/* GPIO ports */
#define W90X900_VA_GPIO		W90X900_ADDR(0x08003000)
#define W90X900_PA_GPIO		(0xB8003000)
#define W90X900_SZ_GPIO		SZ_4K

/* GDMA control */
#define W90X900_VA_GDMA		W90X900_ADDR(0x00004000)
#define W90X900_PA_GDMA		(0xB0004000)
#define W90X900_SZ_GDMA		SZ_4K

/* USB host controller*/
#define W90X900_VA_USBEHCIHOST	W90X900_ADDR(0x00005000)
#define W90X900_PA_USBEHCIHOST	(0xB0005000)
#define W90X900_SZ_USBEHCIHOST	SZ_4K

#define W90X900_VA_USBOHCIHOST	W90X900_ADDR(0x00007000)
#define W90X900_PA_USBOHCIHOST	(0xB0007000)
#define W90X900_SZ_USBOHCIHOST	SZ_4K

/* I2C hardware controller */
#define W90X900_VA_I2C		W90X900_ADDR(0x08006000)
#define W90X900_PA_I2C		(0xB8006000)
#define W90X900_SZ_I2C		SZ_4K

/* Keypad Interface*/
#define W90X900_VA_KPI		W90X900_ADDR(0x08008000)
#define W90X900_PA_KPI		(0xB8008000)
#define W90X900_SZ_KPI		SZ_4K

/* Smart card host*/
#define W90X900_VA_SC		W90X900_ADDR(0x08005000)
#define W90X900_PA_SC		(0xB8005000)
#define W90X900_SZ_SC		SZ_4K

/* LCD controller*/
#define W90X900_VA_LCD		W90X900_ADDR(0x00008000)
#define W90X900_PA_LCD		(0xB0008000)
#define W90X900_SZ_LCD		SZ_4K

/* 2D controller*/
#define W90X900_VA_GE		W90X900_ADDR(0x0000B000)
#define W90X900_PA_GE		(0xB000B000)
#define W90X900_SZ_GE		SZ_4K

/* ATAPI */
#define W90X900_VA_ATAPI	W90X900_ADDR(0x0000A000)
#define W90X900_PA_ATAPI	(0xB000A000)
#define W90X900_SZ_ATAPI	SZ_4K

/* ADC */
#define W90X900_VA_ADC		W90X900_ADDR(0x0800A000)
#define W90X900_PA_ADC		(0xB800A000)
#define W90X900_SZ_ADC		SZ_4K

/* PS2 Interface*/
#define W90X900_VA_PS2		W90X900_ADDR(0x08009000)
#define W90X900_PA_PS2		(0xB8009000)
#define W90X900_SZ_PS2		SZ_4K

/* RTC */
#define W90X900_VA_RTC		W90X900_ADDR(0x08004000)
#define W90X900_PA_RTC		(0xB8004000)
#define W90X900_SZ_RTC		SZ_4K

/* Pulse Width Modulation(PWM) Registers */
#define W90X900_VA_PWM		W90X900_ADDR(0x08007000)
#define W90X900_PA_PWM		(0xB8007000)
#define W90X900_SZ_PWM		SZ_4K

/* Audio Controller controller */
#define W90X900_VA_ACTL		W90X900_ADDR(0x00009000)
#define W90X900_PA_ACTL		(0xB0009000)
#define W90X900_SZ_ACTL		SZ_4K

/* DMA controller */
#define W90X900_VA_DMA		W90X900_ADDR(0x0000c000)
#define W90X900_PA_DMA		(0xB000c000)
#define W90X900_SZ_DMA		SZ_4K

/* FMI controller */
#define W90X900_VA_FMI		W90X900_ADDR(0x0000d000)
#define W90X900_PA_FMI		(0xB000d000)
#define W90X900_SZ_FMI		SZ_4K

/* USB Device port */
#define W90X900_VA_USBDEV	W90X900_ADDR(0x00006000)
#define W90X900_PA_USBDEV	(0xB0006000)
#define W90X900_SZ_USBDEV	SZ_4K

/* External MAC control*/
#define W90X900_VA_EMC		W90X900_ADDR(0x00003000)
#define W90X900_PA_EMC		(0xB0003000)
#define W90X900_SZ_EMC		SZ_4K

#endif /* __ASM_ARCH_MAP_H */