summaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/arch-s3c44b0/hardware.h
blob: 146e265d9a60655cd17e3f09b32041d68c3a2de4 (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
/********************************************************/
/*							*/
/* Samsung S3C44B0					*/
/* tpu <tapu@371.net>					*/
/*							*/
/********************************************************/
#ifndef __ASM_ARCH_HARDWARE_H
#define __ASM_ARCH_HARDWARE_H

#define REGBASE		0x01c00000
#define REGL(addr)	(*(volatile unsigned int *)(REGBASE+addr))
#define REGW(addr)	(*(volatile unsigned short *)(REGBASE+addr))
#define REGB(addr)	(*(volatile unsigned char *)(REGBASE+addr))


/*****************************/
/* CPU Wrapper Registers     */
/*****************************/

#define SYSCFG		REGL(0x000000)
#define NCACHBE0	REGL(0x000004)
#define NCACHBE1	REGL(0x000008)
#define SBUSCON		REGL(0x040000)

/************************************/
/* Memory Controller Registers      */
/************************************/

#define BWSCON		REGL(0x080000)
#define BANKCON0	REGL(0x080004)
#define BANKCON1	REGL(0x080008)
#define BANKCON2	REGL(0x08000c)
#define BANKCON3	REGL(0x080010)
#define BANKCON4	REGL(0x080014)
#define BANKCON5	REGL(0x080018)
#define BANKCON6	REGL(0x08001c)
#define BANKCON7	REGL(0x080020)
#define REFRESH		REGL(0x080024)
#define BANKSIZE	REGL(0x080028)
#define MRSRB6		REGL(0x08002c)
#define MRSRB7		REGL(0x080030)

/*********************/
/* UART Registers    */
/*********************/

#define ULCON0		REGL(0x100000)
#define ULCON1		REGL(0x104000)
#define UCON0		REGL(0x100004)
#define UCON1		REGL(0x104004)
#define UFCON0		REGL(0x100008)
#define UFCON1		REGL(0x104008)
#define UMCON0		REGL(0x10000c)
#define UMCON1		REGL(0x10400c)
#define UTRSTAT0	REGL(0x100010)
#define UTRSTAT1	REGL(0x104010)
#define UERSTAT0	REGL(0x100014)
#define UERSTAT1	REGL(0x104014)
#define UFSTAT0		REGL(0x100018)
#define UFSTAT1		REGL(0x104018)
#define UMSTAT0		REGL(0x10001c)
#define UMSTAT1		REGL(0x10401c)
#define UTXH0		REGB(0x100020)
#define UTXH1		REGB(0x104020)
#define URXH0		REGB(0x100024)
#define URXH1		REGB(0x104024)
#define UBRDIV0		REGL(0x100028)
#define UBRDIV1		REGL(0x104028)

/*******************/
/* SIO Registers   */
/*******************/

#define SIOCON		REGL(0x114000)
#define SIODAT		REGL(0x114004)
#define SBRDR		REGL(0x114008)
#define ITVCNT		REGL(0x11400c)
#define DCNTZ		REGL(0x114010)

/********************/
/* IIS Registers    */
/********************/

#define IISCON		REGL(0x118000)
#define IISMOD		REGL(0x118004)
#define IISPSR		REGL(0x118008)
#define IISFIFCON	REGL(0x11800c)
#define IISFIF		REGW(0x118010)

/**************************/
/* I/O Ports Registers    */
/**************************/

#define PCONA		REGL(0x120000)
#define PDATA		REGL(0x120004)
#define PCONB		REGL(0x120008)
#define PDATB		REGL(0x12000c)
#define PCONC		REGL(0x120010)
#define PDATC		REGL(0x120014)
#define PUPC		REGL(0x120018)
#define PCOND		REGL(0x12001c)
#define PDATD		REGL(0x120020)
#define PUPD		REGL(0x120024)
#define PCONE		REGL(0x120028)
#define PDATE		REGL(0x12002c)
#define PUPE		REGL(0x120030)
#define PCONF		REGL(0x120034)
#define PDATF		REGL(0x120038)
#define PUPF		REGL(0x12003c)
#define PCONG		REGL(0x120040)
#define PDATG		REGL(0x120044)
#define PUPG		REGL(0x120048)
#define SPUCR		REGL(0x12004c)
#define EXTINT		REGL(0x120050)
#define EXTINTPND	REGL(0x120054)

/*********************************/
/* WatchDog Timers Registers     */
/*********************************/

#define WTCON		REGL(0x130000)
#define WTDAT		REGL(0x130004)
#define WTCNT		REGL(0x130008)

/*********************************/
/* A/D Converter Registers       */
/*********************************/

#define ADCCON		REGL(0x140000)
#define ADCPSR		REGL(0x140004)
#define ADCDAT		REGL(0x140008)

/***************************/
/* PWM Timer Registers     */
/***************************/

#define TCFG0		REGL(0x150000)
#define TCFG1		REGL(0x150004)
#define TCON		REGL(0x150008)
#define TCNTB0		REGL(0x15000c)
#define TCMPB0		REGL(0x150010)
#define TCNTO0		REGL(0x150014)
#define TCNTB1		REGL(0x150018)
#define TCMPB1		REGL(0x15001c)
#define TCNTO1		REGL(0x150020)
#define TCNTB2		REGL(0x150024)
#define TCMPB2		REGL(0x150028)
#define TCNTO2		REGL(0x15002c)
#define TCNTB3		REGL(0x150030)
#define TCMPB3		REGL(0x150034)
#define TCNTO3		REGL(0x150038)
#define TCNTB4		REGL(0x15003c)
#define TCMPB4		REGL(0x150040)
#define TCNTO4		REGL(0x150044)
#define TCNTB5		REGL(0x150048)
#define TCNTO5		REGL(0x15004c)

/*********************/
/* IIC Registers     */
/*********************/

#define IICCON		REGL(0x160000)
#define IICSTAT		REGL(0x160004)
#define IICADD		REGL(0x160008)
#define IICDS		REGL(0x16000c)

/*********************/
/* RTC Registers     */
/*********************/

#define RTCCON		REGB(0x170040)
#define RTCALM		REGB(0x170050)
#define ALMSEC		REGB(0x170054)
#define ALMMIN		REGB(0x170058)
#define ALMHOUR		REGB(0x17005c)
#define ALMDAY		REGB(0x170060)
#define ALMMON		REGB(0x170064)
#define ALMYEAR		REGB(0x170068)
#define RTCRST		REGB(0x17006c)
#define BCDSEC		REGB(0x170070)
#define BCDMIN		REGB(0x170074)
#define BCDHOUR		REGB(0x170078)
#define BCDDAY		REGB(0x17007c)
#define BCDDATE		REGB(0x170080)
#define BCDMON		REGB(0x170084)
#define BCDYEAR		REGB(0x170088)
#define TICINT		REGB(0x17008c)

/*********************************/
/* Clock & Power Registers       */
/*********************************/

#define PLLCON		REGL(0x180000)
#define CLKCON		REGL(0x180004)
#define CLKSLOW		REGL(0x180008)
#define LOCKTIME	REGL(0x18000c)

/**************************************/
/* Interrupt Controller Registers     */
/**************************************/

#define INTCON		REGL(0x200000)
#define INTPND		REGL(0x200004)
#define INTMOD		REGL(0x200008)
#define INTMSK		REGL(0x20000c)
#define I_PSLV		REGL(0x200010)
#define I_PMST		REGL(0x200014)
#define I_CSLV		REGL(0x200018)
#define I_CMST		REGL(0x20001c)
#define I_ISPR		REGL(0x200020)
#define I_ISPC		REGL(0x200024)
#define F_ISPR		REGL(0x200038)
#define F_ISPC		REGL(0x20003c)

/********************************/
/* LCD Controller Registers     */
/********************************/

#define LCDCON1		REGL(0x300000)
#define LCDCON2		REGL(0x300004)
#define LCDSADDR1	REGL(0x300008)
#define LCDSADDR2	REGL(0x30000c)
#define LCDSADDR3	REGL(0x300010)
#define REDLUT		REGL(0x300014)
#define GREENLUT	REGL(0x300018)
#define BLUELUT		REGL(0x30001c)
#define DP1_2		REGL(0x300020)
#define DP4_7		REGL(0x300024)
#define DP3_5		REGL(0x300028)
#define DP2_3		REGL(0x30002c)
#define DP5_7		REGL(0x300030)
#define DP3_4		REGL(0x300034)
#define DP4_5		REGL(0x300038)
#define DP6_7		REGL(0x30003c)
#define LCDCON3		REGL(0x300040)
#define DITHMODE	REGL(0x300044)

/*********************/
/* DMA Registers     */
/*********************/

#define ZDCON0		REGL(0x280000)
#define ZDISRC0		REGL(0x280004)
#define ZDIDES0		REGL(0x280008)
#define ZDICNT0		REGL(0x28000c)
#define ZDCSRC0		REGL(0x280010)
#define ZDCDES0		REGL(0x280014)
#define ZDCCNT0		REGL(0x280018)

#define ZDCON1		REGL(0x280020)
#define ZDISRC1		REGL(0x280024)
#define ZDIDES1		REGL(0x280028)
#define ZDICNT1		REGL(0x28002c)
#define ZDCSRC1		REGL(0x280030)
#define ZDCDES1		REGL(0x280034)
#define ZDCCNT1		REGL(0x280038)

#define BDCON0		REGL(0x380000)
#define BDISRC0		REGL(0x380004)
#define BDIDES0		REGL(0x380008)
#define BDICNT0		REGL(0x38000c)
#define BDCSRC0		REGL(0x380010)
#define BDCDES0		REGL(0x380014)
#define BDCCNT0		REGL(0x380018)

#define BDCON1		REGL(0x380020)
#define BDISRC1		REGL(0x380024)
#define BDIDES1		REGL(0x380028)
#define BDICNT1		REGL(0x38002c)
#define BDCSRC1		REGL(0x380030)
#define BDCDES1		REGL(0x380034)
#define BDCCNT1		REGL(0x380038)


#define CLEAR_PEND_INT(n)       I_ISPC = (1<<(n))
#define INT_ENABLE(n)		INTMSK &= ~(1<<(n))
#define INT_DISABLE(n)		INTMSK |= (1<<(n))

#define HARD_RESET_NOW()

#endif /* __ASM_ARCH_HARDWARE_H */