xref: /openbmc/u-boot/arch/sh/include/asm/cpu_sh7780.h (revision 5794619e)
1 #ifndef	_ASM_CPU_SH7780_H_
2 #define	_ASM_CPU_SH7780_H_
3 
4 /*
5  * Copyright (c) 2007,2008 Nobuhiro Iwamatsu
6  * Copyright (c) 2008 Yusuke Goda <goda.yusuke@renesas.com>
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License as
10  * published by the Free Software Foundation; either version 2 of
11  * the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21  * MA 02111-1307 USA
22  *
23  */
24 
25 #define	CACHE_OC_NUM_WAYS	1
26 #define	CCR_CACHE_INIT		0x0000090b
27 
28 /*	Exceptions	*/
29 #define	TRA		0xFF000020
30 #define	EXPEVT	0xFF000024
31 #define	INTEVT	0xFF000028
32 
33 /* Memory Management Unit */
34 #define	PTEH	0xFF000000
35 #define	PTEL	0xFF000004
36 #define	TTB		0xFF000008
37 #define	TEA		0xFF00000C
38 #define	MMUCR	0xFF000010
39 #define	PASCR	0xFF000070
40 #define	IRMCR	0xFF000078
41 
42 /* Cache Controller */
43 #define	CCR		0xFF00001C
44 #define	QACR0	0xFF000038
45 #define	QACR1	0xFF00003C
46 #define	RAMCR	0xFF000074
47 
48 /* L Memory	*/
49 #define	RAMCR	0xFF000074
50 #define	LSA0	0xFF000050
51 #define	LSA1	0xFF000054
52 #define	LDA0	0xFF000058
53 #define	LDA1	0xFF00005C
54 
55 /* Interrupt Controller */
56 #define	ICR0		0xFFD00000
57 #define	ICR1		0xFFD0001C
58 #define	INTPRI		0xFFD00010
59 #define	INTREQ		0xFFD00024
60 #define	INTMSK0		0xFFD00044
61 #define	INTMSK1		0xFFD00048
62 #define	INTMSK2		0xFFD40080
63 #define	INTMSKCLR0	0xFFD00064
64 #define	INTMSKCLR1	0xFFD00068
65 #define	INTMSKCLR2	0xFFD40084
66 #define	NMIFCR		0xFFD000C0
67 #define	USERIMASK	0xFFD30000
68 #define	INT2PRI0	0xFFD40000
69 #define	INT2PRI1	0xFFD40004
70 #define	INT2PRI2	0xFFD40008
71 #define	INT2PRI3	0xFFD4000C
72 #define	INT2PRI4	0xFFD40010
73 #define	INT2PRI5	0xFFD40014
74 #define	INT2PRI6	0xFFD40018
75 #define	INT2PRI7	0xFFD4001C
76 #define	INT2A0		0xFFD40030
77 #define	INT2A1		0xFFD40034
78 #define	INT2MSKR	0xFFD40038
79 #define	INT2MSKCR	0xFFD4003C
80 #define	INT2B0		0xFFD40040
81 #define	INT2B1		0xFFD40044
82 #define	INT2B2		0xFFD40048
83 #define	INT2B3		0xFFD4004C
84 #define	INT2B4		0xFFD40050
85 #define	INT2B5		0xFFD40054
86 #define	INT2B6		0xFFD40058
87 #define	INT2B7		0xFFD4005C
88 #define	INT2GPIC	0xFFD40090
89 
90 /* local Bus State Controller */
91 #define	MMSELR		0xFF400020
92 #define	BCR			0xFF801000
93 #define	CS0BCR		0xFF802000
94 #define	CS1BCR		0xFF802010
95 #define	CS2BCR		0xFF802020
96 #define	CS4BCR		0xFF802040
97 #define	CS5BCR		0xFF802050
98 #define	CS6BCR		0xFF802060
99 #define	CS0WCR		0xFF802008
100 #define	CS1WCR		0xFF802018
101 #define	CS2WCR		0xFF802028
102 #define	CS4WCR		0xFF802048
103 #define	CS5WCR		0xFF802058
104 #define	CS6WCR		0xFF802068
105 #define	CS5PCR		0xFF802070
106 #define	CS6PCR		0xFF802080
107 
108 /* DDR-SDRAM I/F */
109 #define	MIM_1		0xFE800008
110 #define	MIM_2		0xFE80000C
111 #define	SCR_1		0xFE800010
112 #define	SCR_2		0xFE800014
113 #define	STR_1		0xFE800018
114 #define	STR_2		0xFE80001C
115 #define	SDR_1		0xFE800030
116 #define	SDR_2		0xFE800034
117 #define	DBK_1		0xFE800400
118 #define	DBK_2		0xFE800404
119 
120 /* PCI	Controller */
121 #define	SH7780_PCIECR		0xFE000008
122 #define	SH7780_PCIVID		0xFE040000
123 #define	SH7780_PCIDID		0xFE040002
124 #define	SH7780_PCICMD		0xFE040004
125 #define	SH7780_PCISTATUS	0xFE040006
126 #define	SH7780_PCIRID		0xFE040008
127 #define	SH7780_PCIPIF		0xFE040009
128 #define	SH7780_PCISUB		0xFE04000A
129 #define	SH7780_PCIBCC		0xFE04000B
130 #define	SH7780_PCICLS		0xFE04000C
131 #define	SH7780_PCILTM		0xFE04000D
132 #define	SH7780_PCIHDR		0xFE04000E
133 #define	SH7780_PCIBIST		0xFE04000F
134 #define	SH7780_PCIIBAR		0xFE040010
135 #define	SH7780_PCIMBAR0		0xFE040014
136 #define	SH7780_PCIMBAR1		0xFE040018
137 #define	SH7780_PCISVID		0xFE04002C
138 #define	SH7780_PCISID		0xFE04002E
139 #define	SH7780_PCICP		0xFE040034
140 #define	SH7780_PCIINTLINE	0xFE04003C
141 #define	SH7780_PCIINTPIN	0xFE04003D
142 #define	SH7780_PCIMINGNT	0xFE04003E
143 #define	SH7780_PCIMAXLAT	0xFE04003F
144 #define	SH7780_PCICID		0xFE040040
145 #define	SH7780_PCINIP		0xFE040041
146 #define	SH7780_PCIPMC		0xFE040042
147 #define	SH7780_PCIPMCSR		0xFE040044
148 #define	SH7780_PCIPMCSRBSE	0xFE040046
149 #define	SH7780_PCI_CDD		0xFE040047
150 #define	SH7780_PCICR		0xFE040100
151 #define	SH7780_PCILSR0		0xFE040104
152 #define	SH7780_PCILSR1		0xFE040108
153 #define	SH7780_PCILAR0		0xFE04010C
154 #define	SH7780_PCILAR1		0xFE040110
155 #define	SH7780_PCIIR		0xFE040114
156 #define	SH7780_PCIIMR		0xFE040118
157 #define	SH7780_PCIAIR		0xFE04011C
158 #define	SH7780_PCICIR		0xFE040120
159 #define	SH7780_PCIAINT		0xFE040130
160 #define	SH7780_PCIAINTM		0xFE040134
161 #define	SH7780_PCIBMIR		0xFE040138
162 #define	SH7780_PCIPAR		0xFE0401C0
163 #define	SH7780_PCIPINT		0xFE0401CC
164 #define	SH7780_PCIPINTM		0xFE0401D0
165 #define	SH7780_PCIMBR0		0xFE0401E0
166 #define	SH7780_PCIMBMR0		0xFE0401E4
167 #define	SH7780_PCIMBR1		0xFE0401E8
168 #define	SH7780_PCIMBMR1		0xFE0401EC
169 #define	SH7780_PCIMBR2		0xFE0401F0
170 #define	SH7780_PCIMBMR2		0xFE0401F4
171 #define	SH7780_PCIIOBR		0xFE0401F8
172 #define	SH7780_PCIIOBMR		0xFE0401FC
173 #define	SH7780_PCICSCR0		0xFE040210
174 #define	SH7780_PCICSCR1		0xFE040214
175 #define	SH7780_PCICSAR0		0xFE040218
176 #define	SH7780_PCICSAR1		0xFE04021C
177 #define	SH7780_PCIPDR		0xFE040220
178 
179 /* DMAC */
180 #define	DMAC_SAR0	0xFC808020
181 #define	DMAC_DAR0	0xFC808024
182 #define	DMAC_TCR0	0xFC808028
183 #define	DMAC_CHCR0	0xFC80802C
184 #define	DMAC_SAR1	0xFC808030
185 #define	DMAC_DAR1	0xFC808034
186 #define	DMAC_TCR1	0xFC808038
187 #define	DMAC_CHCR1	0xFC80803C
188 #define	DMAC_SAR2	0xFC808040
189 #define	DMAC_DAR2	0xFC808044
190 #define	DMAC_TCR2	0xFC808048
191 #define	DMAC_CHCR2	0xFC80804C
192 #define	DMAC_SAR3	0xFC808050
193 #define	DMAC_DAR3	0xFC808054
194 #define	DMAC_TCR3	0xFC808058
195 #define	DMAC_CHCR3	0xFC80805C
196 #define	DMAC_DMAOR0	0xFC808060
197 #define	DMAC_SAR4	0xFC808070
198 #define	DMAC_DAR4	0xFC808074
199 #define	DMAC_TCR4	0xFC808078
200 #define	DMAC_CHCR4	0xFC80807C
201 #define	DMAC_SAR5	0xFC808080
202 #define	DMAC_DAR5	0xFC808084
203 #define	DMAC_TCR5	0xFC808088
204 #define	DMAC_CHCR5	0xFC80808C
205 #define	DMAC_SARB0	0xFC808120
206 #define	DMAC_DARB0	0xFC808124
207 #define	DMAC_TCRB0	0xFC808128
208 #define	DMAC_SARB1	0xFC808130
209 #define	DMAC_DARB1	0xFC808134
210 #define	DMAC_TCRB1	0xFC808138
211 #define	DMAC_SARB2	0xFC808140
212 #define	DMAC_DARB2	0xFC808144
213 #define	DMAC_TCRB2	0xFC808148
214 #define	DMAC_SARB3	0xFC808150
215 #define	DMAC_DARB3	0xFC808154
216 #define	DMAC_TCRB3	0xFC808158
217 #define	DMAC_DMARS0	0xFC809000
218 #define	DMAC_DMARS1	0xFC809004
219 #define	DMAC_DMARS2	0xFC809008
220 #define	DMAC_SAR6	0xFC818020
221 #define	DMAC_DAR6	0xFC818024
222 #define	DMAC_TCR6	0xFC818028
223 #define	DMAC_CHCR6	0xFC81802C
224 #define	DMAC_SAR7	0xFC818030
225 #define	DMAC_DAR7	0xFC818034
226 #define	DMAC_TCR7	0xFC818038
227 #define	DMAC_CHCR7	0xFC81803C
228 #define	DMAC_SAR8	0xFC818040
229 #define	DMAC_DAR8	0xFC818044
230 #define	DMAC_TCR8	0xFC818048
231 #define	DMAC_CHCR8	0xFC81804C
232 #define	DMAC_SAR9	0xFC818050
233 #define	DMAC_DAR9	0xFC818054
234 #define	DMAC_TCR9	0xFC818058
235 #define	DMAC_CHCR9	0xFC81805C
236 #define	DMAC_DMAOR1	0xFC818060
237 #define	DMAC_SAR10	0xFC818070
238 #define	DMAC_DAR10	0xFC818074
239 #define	DMAC_TCR10	0xFC818078
240 #define	DMAC_CHCR10	0xFC81807C
241 #define	DMAC_SAR11	0xFC818080
242 #define	DMAC_DAR11	0xFC818084
243 #define	DMAC_TCR11	0xFC818088
244 #define	DMAC_CHCR11	0xFC81808C
245 #define	DMAC_SARB6	0xFC818120
246 #define	DMAC_DARB6	0xFC818124
247 #define	DMAC_TCRB6	0xFC818128
248 #define	DMAC_SARB7	0xFC818130
249 #define	DMAC_DARB7	0xFC818134
250 #define	DMAC_TCRB7	0xFC818138
251 #define	DMAC_SARB8	0xFC818140
252 #define	DMAC_DARB8	0xFC818144
253 #define	DMAC_TCRB8	0xFC818148
254 #define	DMAC_SARB9	0xFC818150
255 #define	DMAC_DARB9	0xFC818154
256 #define	DMAC_TCRB9	0xFC818158
257 
258 /* Clock Pulse Generator */
259 #define	FRQCR	0xFFC80000
260 #define	PLLCR	0xFFC80024
261 #define	MSTPCR	0xFFC80030
262 
263 /* Watchdog Timer and Reset */
264 #define	WTCNT	WDTCNT
265 #define	WDTST	0xFFCC0000
266 #define	WDTCSR	0xFFCC0004
267 #define	WDTBST	0xFFCC0008
268 #define	WDTCNT	0xFFCC0010
269 #define	WDTBCNT	0xFFCC0018
270 
271 /* System Control */
272 #define	MSTPCR	0xFFC80030
273 
274 /* Timer Unit */
275 #define	TSTR	TSTR0
276 #define	TOCR	0xFFD80000
277 #define	TSTR0	0xFFD80004
278 #define	TCOR0	0xFFD80008
279 #define	TCNT0	0xFFD8000C
280 #define	TCR0	0xFFD80010
281 #define	TCOR1	0xFFD80014
282 #define	TCNT1	0xFFD80018
283 #define	TCR1	0xFFD8001C
284 #define	TCOR2	0xFFD80020
285 #define	TCNT2	0xFFD80024
286 #define	TCR2	0xFFD80028
287 #define	TCPR2	0xFFD8002C
288 #define	TSTR1	0xFFDC0004
289 #define	TCOR3	0xFFDC0008
290 #define	TCNT3	0xFFDC000C
291 #define	TCR3	0xFFDC0010
292 #define	TCOR4	0xFFDC0014
293 #define	TCNT4	0xFFDC0018
294 #define	TCR4	0xFFDC001C
295 #define	TCOR5	0xFFDC0020
296 #define	TCNT5	0xFFDC0024
297 #define	TCR5	0xFFDC0028
298 
299 /* Timer/Counter */
300 #define	CMTCFG	0xFFE30000
301 #define	CMTFRT	0xFFE30004
302 #define	CMTCTL	0xFFE30008
303 #define	CMTIRQS	0xFFE3000C
304 #define	CMTCH0T	0xFFE30010
305 #define	CMTCH0ST	0xFFE30020
306 #define	CMTCH0C	0xFFE30030
307 #define	CMTCH1T	0xFFE30014
308 #define	CMTCH1ST	0xFFE30024
309 #define	CMTCH1C	0xFFE30034
310 #define	CMTCH2T	0xFFE30018
311 #define	CMTCH2C	0xFFE30038
312 #define	CMTCH3T	0xFFE3001C
313 #define	CMTCH3C	0xFFE3003C
314 
315 /* Realtime Clock */
316 #define	R64CNT	0xFFE80000
317 #define	RSECCNT	0xFFE80004
318 #define	RMINCNT	0xFFE80008
319 #define	RHRCNT	0xFFE8000C
320 #define	RWKCNT	0xFFE80010
321 #define	RDAYCNT	0xFFE80014
322 #define	RMONCNT	0xFFE80018
323 #define	RYRCNT	0xFFE8001C
324 #define	RSECAR	0xFFE80020
325 #define	RMINAR	0xFFE80024
326 #define	RHRAR	0xFFE80028
327 #define	RWKAR	0xFFE8002C
328 #define	RDAYAR	0xFFE80030
329 #define	RMONAR	0xFFE80034
330 #define	RCR1	0xFFE80038
331 #define	RCR2	0xFFE8003C
332 #define	RCR3	0xFFE80050
333 #define	RYRAR	0xFFE80054
334 
335 /* Serial Communication	Interface with FIFO */
336 #define	SCIF0_BASE SCSMR0
337 #define	SCSMR0	0xFFE00000
338 #define	SCBRR0	0xFFE00004
339 #define	SCSCR0	0xFFE00008
340 #define	SCFSR0	0xFFE00010
341 #define	SCFCR0	0xFFE00018
342 #define	SCTFDR0	0xFFE0001C
343 #define	SCRFDR0	0xFFE00020
344 #define	SCSPTR0	0xFFE00024
345 #define	SCLSR0	0xFFE00028
346 #define	SCRER0	0xFFE0002C
347 #define	SCSMR1	0xFFE10000
348 #define	SCBRR1	0xFFE10004
349 #define	SCSCR1	0xFFE10008
350 #define	SCFSR1	0xFFE10010
351 #define	SCFCR1	0xFFE10018
352 #define	SCTFDR1	0xFFE1001C
353 #define	SCRFDR1	0xFFE10020
354 #define	SCSPTR1	0xFFE10024
355 #define	SCLSR1	0xFFE10028
356 #define	SCRER1	0xFFE1002C
357 
358 /* Serial I/O with FIFO */
359 #define	SIMDR	0xFFE20000
360 #define	SISCR	0xFFE20002
361 #define	SITDAR	0xFFE20004
362 #define	SIRDAR	0xFFE20006
363 #define	SICDAR	0xFFE20008
364 #define	SICTR	0xFFE2000C
365 #define	SIFCTR	0xFFE20010
366 #define	SISTR	0xFFE20014
367 #define	SIIER	0xFFE20016
368 #define	SITCR	0xFFE20028
369 #define	SIRCR	0xFFE2002C
370 #define	SPICR	0xFFE20030
371 
372 /* Serial Protocol Interface */
373 #define	SPCR	0xFFE50000
374 #define	SPSR	0xFFE50004
375 #define	SPSCR	0xFFE50008
376 #define	SPTBR	0xFFE5000C
377 #define	SPRBR	0xFFE50010
378 
379 /* Multimedia Card Interface */
380 #define	CMDR0	0xFFE60000
381 #define	CMDR1	0xFFE60001
382 #define	CMDR2	0xFFE60002
383 #define	CMDR3	0xFFE60003
384 #define	CMDR4	0xFFE60004
385 #define	CMDR5	0xFFE60005
386 #define	CMDSTRT	0xFFE60006
387 #define	OPCR	0xFFE6000A
388 #define	CSTR	0xFFE6000B
389 #define	INTCR0	0xFFE6000C
390 #define	INTCR1	0xFFE6000D
391 #define	INTSTR0	0xFFE6000E
392 #define	INTSTR1	0xFFE6000F
393 #define	CLKON	0xFFE60010
394 #define	CTOCR	0xFFE60011
395 #define	TBCR	0xFFE60014
396 #define	MODER	0xFFE60016
397 #define	CMDTYR	0xFFE60018
398 #define	RSPTYR	0xFFE60019
399 #define	TBNCR	0xFFE6001A
400 #define	RSPR0	0xFFE60020
401 #define	RSPR1	0xFFE60021
402 #define	RSPR2	0xFFE60022
403 #define	RSPR3	0xFFE60023
404 #define	RSPR4	0xFFE60024
405 #define	RSPR5	0xFFE60025
406 #define	RSPR6	0xFFE60026
407 #define	RSPR7	0xFFE60027
408 #define	RSPR8	0xFFE60028
409 #define	RSPR9	0xFFE60029
410 #define	RSPR10	0xFFE6002A
411 #define	RSPR11	0xFFE6002B
412 #define	RSPR12	0xFFE6002C
413 #define	RSPR13	0xFFE6002D
414 #define	RSPR14	0xFFE6002E
415 #define	RSPR15	0xFFE6002F
416 #define	RSPR16	0xFFE60030
417 #define	RSPRD	0xFFE60031
418 #define	DTOUTR	0xFFE60032
419 #define	DR		0xFFE60040
420 #define	DMACR	0xFFE60044
421 #define	INTCR2	0xFFE60046
422 #define	INTSTR2	0xFFE60048
423 
424 /* Audio Codec Interface */
425 #define	HACCR	0xFFE40008
426 #define	HACCSAR	0xFFE40020
427 #define	HACCSDR	0xFFE40024
428 #define	HACPCML	0xFFE40028
429 #define	HACPCMR	0xFFE4002C
430 #define	HACTIER	0xFFE40050
431 #define	HACTSR	0xFFE40054
432 #define	HACRIER	0xFFE40058
433 #define	HACRSR	0xFFE4005C
434 #define	HACACR	0xFFE40060
435 
436 /* Serial Sound Interface */
437 #define	SSICR	0xFFE70000
438 #define	SSISR	0xFFE70004
439 #define	SSITDR	0xFFE70008
440 #define	SSIRDR	0xFFE7000C
441 
442 /* Flash memory Controller */
443 #define	FLCMNCR	0xFFE90000
444 #define	FLCMDCR	0xFFE90004
445 #define	FLCMCDR	0xFFE90008
446 #define	FLADR	0xFFE9000C
447 #define	FLDATAR	0xFFE90010
448 #define	FLDTCNTR	0xFFE90014
449 #define	FLINTDMACR	0xFFE90018
450 #define	FLBSYTMR	0xFFE9001C
451 #define	FLBSYCNT	0xFFE90020
452 #define	FLTRCR	0xFFE9002C
453 
454 /* General	Purpose	I/O */
455 #define	PACR	0xFFEA0000
456 #define	PBCR	0xFFEA0002
457 #define	PCCR	0xFFEA0004
458 #define	PDCR	0xFFEA0006
459 #define	PECR	0xFFEA0008
460 #define	PFCR	0xFFEA000A
461 #define	PGCR	0xFFEA000C
462 #define	PHCR	0xFFEA000E
463 #define	PJCR	0xFFEA0010
464 #define	PKCR	0xFFEA0012
465 #define	PLCR	0xFFEA0014
466 #define	PMCR	0xFFEA0016
467 #define	PADR	0xFFEA0020
468 #define	PBDR	0xFFEA0022
469 #define	PCDR	0xFFEA0024
470 #define	PDDR	0xFFEA0026
471 #define	PEDR	0xFFEA0028
472 #define	PFDR	0xFFEA002A
473 #define	PGDR	0xFFEA002C
474 #define	PHDR	0xFFEA002E
475 #define	PJDR	0xFFEA0030
476 #define	PKDR	0xFFEA0032
477 #define	PLDR	0xFFEA0034
478 #define	PMDR	0xFFEA0036
479 #define	PEPUPR	0xFFEA0048
480 #define	PHPUPR	0xFFEA004E
481 #define	PJPUPR	0xFFEA0050
482 #define	PKPUPR	0xFFEA0052
483 #define	PMPUPR	0xFFEA0056
484 #define	PPUPR1	0xFFEA0060
485 #define	PPUPR2	0xFFEA0062
486 #define	PMSELR	0xFFEA0080
487 
488 /* User	Break Controller */
489 #define	CBR0	0xFF200000
490 #define	CRR0	0xFF200004
491 #define	CAR0	0xFF200008
492 #define	CAMR0	0xFF20000C
493 #define	CBR1	0xFF200020
494 #define	CRR1	0xFF200024
495 #define	CAR1	0xFF200028
496 #define	CAMR1	0xFF20002C
497 #define	CDR1	0xFF200030
498 #define	CDMR1	0xFF200034
499 #define	CETR1	0xFF200038
500 #define	CCMFR	0xFF200600
501 #define	CBCR	0xFF200620
502 
503 #endif	/* _ASM_CPU_SH7780_H_ */
504