blob: d59a8b2c31b282dc9c7fb1b4fc141fd9db812552 [file] [log] [blame]
wdenkbf9e3b32004-02-12 00:47:09 +00001/*
2 * mcf5282.h -- Definitions for Motorola Coldfire 5282
3 *
wdenkbf9e3b32004-02-12 00:47:09 +00004 * See file CREDITS for list of people who contributed to this
5 * project.
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation; either version 2 of
10 * the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20 * MA 02111-1307 USA
21 */
22
23/****************************************************************************/
24#ifndef m5282_h
25#define m5282_h
TsiChungLiew56115662007-08-15 19:38:15 -050026
27/*********************************************************************
28* PLL Clock Module
29*********************************************************************/
30/* Bit definitions and macros for PLL_SYNCR */
31#define PLL_SYNCR_LOLRE (0x8000)
32#define PLL_SYNCR_MFD2 (0x4000)
33#define PLL_SYNCR_MFD1 (0x2000)
34#define PLL_SYNCR_MFD0 (0x1000)
35#define PLL_SYNCR_LOCRE (0x0800)
36#define PLL_SYNCR_RFC2 (0x0400)
37#define PLL_SYNCR_RFC1 (0x0200)
38#define PLL_SYNCR_RFC0 (0x0100)
39#define PLL_SYNCR_LOCEN (0x0080)
40#define PLL_SYNCR_DISCLK (0x0040)
41#define PLL_SYNCR_FWKUP (0x0020)
42#define PLL_SYNCR_STPMD1 (0x0008)
43#define PLL_SYNCR_STPMD0 (0x0004)
44
45/* Bit definitions and macros for PLL_SYNSR */
46#define PLL_SYNSR_MODE (0x0080)
47#define PLL_SYNSR_PLLSEL (0x0040)
48#define PLL_SYNSR_PLLREF (0x0020)
49#define PLL_SYNSR_LOCKS (0x0010)
50#define PLL_SYNSR_LOCK (0x0008)
51#define PLL_SYNSR_LOCS (0x0004)
52
53/*********************************************************************
54* Interrupt Controller (INTC)
55*********************************************************************/
56#define INT0_LO_RSVD0 (0)
57#define INT0_LO_EPORT1 (1)
58#define INT0_LO_EPORT2 (2)
59#define INT0_LO_EPORT3 (3)
60#define INT0_LO_EPORT4 (4)
61#define INT0_LO_EPORT5 (5)
62#define INT0_LO_EPORT6 (6)
63#define INT0_LO_EPORT7 (7)
64#define INT0_LO_SCM_SWT1 (8)
65#define INT0_LO_DMA_00 (9)
66#define INT0_LO_DMA_01 (10)
67#define INT0_LO_DMA_02 (11)
68#define INT0_LO_DMA_03 (12)
69#define INT0_LO_UART0 (13)
70#define INT0_LO_UART1 (14)
71#define INT0_LO_UART2 (15)
72#define INT0_LO_RSVD1 (16)
73#define INT0_LO_I2C (17)
74#define INT0_LO_QSPI (18)
75#define INT0_LO_DTMR0 (19)
76#define INT0_LO_DTMR1 (20)
77#define INT0_LO_DTMR2 (21)
78#define INT0_LO_DTMR3 (22)
79#define INT0_LO_FEC_TXF (23)
80#define INT0_LO_FEC_TXB (24)
81#define INT0_LO_FEC_UN (25)
82#define INT0_LO_FEC_RL (26)
83#define INT0_LO_FEC_RXF (27)
84#define INT0_LO_FEC_RXB (28)
85#define INT0_LO_FEC_MII (29)
86#define INT0_LO_FEC_LC (30)
87#define INT0_LO_FEC_HBERR (31)
88#define INT0_HI_FEC_GRA (32)
89#define INT0_HI_FEC_EBERR (33)
90#define INT0_HI_FEC_BABT (34)
91#define INT0_HI_FEC_BABR (35)
92#define INT0_HI_PMM_LVDF (36)
93#define INT0_HI_QADC_CF1 (37)
94#define INT0_HI_QADC_CF2 (38)
95#define INT0_HI_QADC_PF1 (39)
96#define INT0_HI_QADC_PF2 (40)
97#define INT0_HI_GPTA_TOF (41)
98#define INT0_HI_GPTA_PAIF (42)
99#define INT0_HI_GPTA_PAOVF (43)
100#define INT0_HI_GPTA_C0F (44)
101#define INT0_HI_GPTA_C1F (45)
102#define INT0_HI_GPTA_C2F (46)
103#define INT0_HI_GPTA_C3F (47)
104#define INT0_HI_GPTB_TOF (48)
105#define INT0_HI_GPTB_PAIF (49)
106#define INT0_HI_GPTB_PAOVF (50)
107#define INT0_HI_GPTB_C0F (51)
108#define INT0_HI_GPTB_C1F (52)
109#define INT0_HI_GPTB_C2F (53)
110#define INT0_HI_GPTB_C3F (54)
111#define INT0_HI_PIT0 (55)
112#define INT0_HI_PIT1 (56)
113#define INT0_HI_PIT2 (57)
114#define INT0_HI_PIT3 (58)
115#define INT0_HI_CFM_CBEIF (59)
116#define INT0_HI_CFM_CCIF (60)
117#define INT0_HI_CFM_PVIF (61)
118#define INT0_HI_CFM_AEIF (62)
wdenkbf9e3b32004-02-12 00:47:09 +0000119
120/*
121 * Size of internal RAM
122 */
123
124#define INT_RAM_SIZE 65536
125
Heiko Schocher9acb6262006-04-20 08:42:42 +0200126/* General Purpose I/O Module GPIO */
wdenkbf9e3b32004-02-12 00:47:09 +0000127
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200128#define MCFGPIO_PORTA (*(vu_char *) (CONFIG_SYS_MBAR+0x100000))
129#define MCFGPIO_PORTB (*(vu_char *) (CONFIG_SYS_MBAR+0x100001))
130#define MCFGPIO_PORTC (*(vu_char *) (CONFIG_SYS_MBAR+0x100002))
131#define MCFGPIO_PORTD (*(vu_char *) (CONFIG_SYS_MBAR+0x100003))
132#define MCFGPIO_PORTE (*(vu_char *) (CONFIG_SYS_MBAR+0x100004))
133#define MCFGPIO_PORTF (*(vu_char *) (CONFIG_SYS_MBAR+0x100005))
134#define MCFGPIO_PORTG (*(vu_char *) (CONFIG_SYS_MBAR+0x100006))
135#define MCFGPIO_PORTH (*(vu_char *) (CONFIG_SYS_MBAR+0x100007))
136#define MCFGPIO_PORTJ (*(vu_char *) (CONFIG_SYS_MBAR+0x100008))
137#define MCFGPIO_PORTDD (*(vu_char *) (CONFIG_SYS_MBAR+0x100009))
138#define MCFGPIO_PORTEH (*(vu_char *) (CONFIG_SYS_MBAR+0x10000A))
139#define MCFGPIO_PORTEL (*(vu_char *) (CONFIG_SYS_MBAR+0x10000B))
140#define MCFGPIO_PORTAS (*(vu_char *) (CONFIG_SYS_MBAR+0x10000C))
141#define MCFGPIO_PORTQS (*(vu_char *) (CONFIG_SYS_MBAR+0x10000D))
142#define MCFGPIO_PORTSD (*(vu_char *) (CONFIG_SYS_MBAR+0x10000E))
143#define MCFGPIO_PORTTC (*(vu_char *) (CONFIG_SYS_MBAR+0x10000F))
144#define MCFGPIO_PORTTD (*(vu_char *) (CONFIG_SYS_MBAR+0x100010))
145#define MCFGPIO_PORTUA (*(vu_char *) (CONFIG_SYS_MBAR+0x100011))
wdenkbf9e3b32004-02-12 00:47:09 +0000146
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200147#define MCFGPIO_DDRA (*(vu_char *) (CONFIG_SYS_MBAR+0x100014))
148#define MCFGPIO_DDRB (*(vu_char *) (CONFIG_SYS_MBAR+0x100015))
149#define MCFGPIO_DDRC (*(vu_char *) (CONFIG_SYS_MBAR+0x100016))
150#define MCFGPIO_DDRD (*(vu_char *) (CONFIG_SYS_MBAR+0x100017))
151#define MCFGPIO_DDRE (*(vu_char *) (CONFIG_SYS_MBAR+0x100018))
152#define MCFGPIO_DDRF (*(vu_char *) (CONFIG_SYS_MBAR+0x100019))
153#define MCFGPIO_DDRG (*(vu_char *) (CONFIG_SYS_MBAR+0x10001A))
154#define MCFGPIO_DDRH (*(vu_char *) (CONFIG_SYS_MBAR+0x10001B))
155#define MCFGPIO_DDRJ (*(vu_char *) (CONFIG_SYS_MBAR+0x10001C))
156#define MCFGPIO_DDRDD (*(vu_char *) (CONFIG_SYS_MBAR+0x10001D))
157#define MCFGPIO_DDREH (*(vu_char *) (CONFIG_SYS_MBAR+0x10001E))
158#define MCFGPIO_DDREL (*(vu_char *) (CONFIG_SYS_MBAR+0x10001F))
159#define MCFGPIO_DDRAS (*(vu_char *) (CONFIG_SYS_MBAR+0x100020))
160#define MCFGPIO_DDRQS (*(vu_char *) (CONFIG_SYS_MBAR+0x100021))
161#define MCFGPIO_DDRSD (*(vu_char *) (CONFIG_SYS_MBAR+0x100022))
162#define MCFGPIO_DDRTC (*(vu_char *) (CONFIG_SYS_MBAR+0x100023))
163#define MCFGPIO_DDRTD (*(vu_char *) (CONFIG_SYS_MBAR+0x100024))
164#define MCFGPIO_DDRUA (*(vu_char *) (CONFIG_SYS_MBAR+0x100025))
wdenkbf9e3b32004-02-12 00:47:09 +0000165
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200166#define MCFGPIO_PORTAP (*(vu_char *) (CONFIG_SYS_MBAR+0x100028))
167#define MCFGPIO_PORTBP (*(vu_char *) (CONFIG_SYS_MBAR+0x100029))
168#define MCFGPIO_PORTCP (*(vu_char *) (CONFIG_SYS_MBAR+0x10002A))
169#define MCFGPIO_PORTDP (*(vu_char *) (CONFIG_SYS_MBAR+0x10002B))
170#define MCFGPIO_PORTEP (*(vu_char *) (CONFIG_SYS_MBAR+0x10002C))
171#define MCFGPIO_PORTFP (*(vu_char *) (CONFIG_SYS_MBAR+0x10002D))
172#define MCFGPIO_PORTGP (*(vu_char *) (CONFIG_SYS_MBAR+0x10002E))
173#define MCFGPIO_PORTHP (*(vu_char *) (CONFIG_SYS_MBAR+0x10002F))
174#define MCFGPIO_PORTJP (*(vu_char *) (CONFIG_SYS_MBAR+0x100030))
175#define MCFGPIO_PORTDDP (*(vu_char *) (CONFIG_SYS_MBAR+0x100031))
176#define MCFGPIO_PORTEHP (*(vu_char *) (CONFIG_SYS_MBAR+0x100032))
177#define MCFGPIO_PORTELP (*(vu_char *) (CONFIG_SYS_MBAR+0x100033))
178#define MCFGPIO_PORTASP (*(vu_char *) (CONFIG_SYS_MBAR+0x100034))
179#define MCFGPIO_PORTQSP (*(vu_char *) (CONFIG_SYS_MBAR+0x100035))
180#define MCFGPIO_PORTSDP (*(vu_char *) (CONFIG_SYS_MBAR+0x100036))
181#define MCFGPIO_PORTTCP (*(vu_char *) (CONFIG_SYS_MBAR+0x100037))
182#define MCFGPIO_PORTTDP (*(vu_char *) (CONFIG_SYS_MBAR+0x100038))
183#define MCFGPIO_PORTUAP (*(vu_char *) (CONFIG_SYS_MBAR+0x100039))
wdenkbf9e3b32004-02-12 00:47:09 +0000184
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200185#define MCFGPIO_SETA (*(vu_char *) (CONFIG_SYS_MBAR+0x100028))
186#define MCFGPIO_SETB (*(vu_char *) (CONFIG_SYS_MBAR+0x100029))
187#define MCFGPIO_SETC (*(vu_char *) (CONFIG_SYS_MBAR+0x10002A))
188#define MCFGPIO_SETD (*(vu_char *) (CONFIG_SYS_MBAR+0x10002B))
189#define MCFGPIO_SETE (*(vu_char *) (CONFIG_SYS_MBAR+0x10002C))
190#define MCFGPIO_SETF (*(vu_char *) (CONFIG_SYS_MBAR+0x10002D))
191#define MCFGPIO_SETG (*(vu_char *) (CONFIG_SYS_MBAR+0x10002E))
192#define MCFGPIO_SETH (*(vu_char *) (CONFIG_SYS_MBAR+0x10002F))
193#define MCFGPIO_SETJ (*(vu_char *) (CONFIG_SYS_MBAR+0x100030))
194#define MCFGPIO_SETDD (*(vu_char *) (CONFIG_SYS_MBAR+0x100031))
195#define MCFGPIO_SETEH (*(vu_char *) (CONFIG_SYS_MBAR+0x100032))
196#define MCFGPIO_SETEL (*(vu_char *) (CONFIG_SYS_MBAR+0x100033))
197#define MCFGPIO_SETAS (*(vu_char *) (CONFIG_SYS_MBAR+0x100034))
198#define MCFGPIO_SETQS (*(vu_char *) (CONFIG_SYS_MBAR+0x100035))
199#define MCFGPIO_SETSD (*(vu_char *) (CONFIG_SYS_MBAR+0x100036))
200#define MCFGPIO_SETTC (*(vu_char *) (CONFIG_SYS_MBAR+0x100037))
201#define MCFGPIO_SETTD (*(vu_char *) (CONFIG_SYS_MBAR+0x100038))
202#define MCFGPIO_SETUA (*(vu_char *) (CONFIG_SYS_MBAR+0x100039))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200203
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200204#define MCFGPIO_CLRA (*(vu_char *) (CONFIG_SYS_MBAR+0x10003C))
205#define MCFGPIO_CLRB (*(vu_char *) (CONFIG_SYS_MBAR+0x10003D))
206#define MCFGPIO_CLRC (*(vu_char *) (CONFIG_SYS_MBAR+0x10003E))
207#define MCFGPIO_CLRD (*(vu_char *) (CONFIG_SYS_MBAR+0x10003F))
208#define MCFGPIO_CLRE (*(vu_char *) (CONFIG_SYS_MBAR+0x100040))
209#define MCFGPIO_CLRF (*(vu_char *) (CONFIG_SYS_MBAR+0x100041))
210#define MCFGPIO_CLRG (*(vu_char *) (CONFIG_SYS_MBAR+0x100042))
211#define MCFGPIO_CLRH (*(vu_char *) (CONFIG_SYS_MBAR+0x100043))
212#define MCFGPIO_CLRJ (*(vu_char *) (CONFIG_SYS_MBAR+0x100044))
213#define MCFGPIO_CLRDD (*(vu_char *) (CONFIG_SYS_MBAR+0x100045))
214#define MCFGPIO_CLREH (*(vu_char *) (CONFIG_SYS_MBAR+0x100046))
215#define MCFGPIO_CLREL (*(vu_char *) (CONFIG_SYS_MBAR+0x100047))
216#define MCFGPIO_CLRAS (*(vu_char *) (CONFIG_SYS_MBAR+0x100048))
217#define MCFGPIO_CLRQS (*(vu_char *) (CONFIG_SYS_MBAR+0x100049))
218#define MCFGPIO_CLRSD (*(vu_char *) (CONFIG_SYS_MBAR+0x10004A))
219#define MCFGPIO_CLRTC (*(vu_char *) (CONFIG_SYS_MBAR+0x10004B))
220#define MCFGPIO_CLRTD (*(vu_char *) (CONFIG_SYS_MBAR+0x10004C))
221#define MCFGPIO_CLRUA (*(vu_char *) (CONFIG_SYS_MBAR+0x10004D))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200222
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200223#define MCFGPIO_PBCDPAR (*(vu_char *) (CONFIG_SYS_MBAR+0x100050))
224#define MCFGPIO_PFPAR (*(vu_char *) (CONFIG_SYS_MBAR+0x100051))
225#define MCFGPIO_PEPAR (*(vu_short *)(CONFIG_SYS_MBAR+0x100052))
226#define MCFGPIO_PJPAR (*(vu_char *) (CONFIG_SYS_MBAR+0x100054))
227#define MCFGPIO_PSDPAR (*(vu_char *) (CONFIG_SYS_MBAR+0x100055))
228#define MCFGPIO_PASPAR (*(vu_short *)(CONFIG_SYS_MBAR+0x100056))
229#define MCFGPIO_PEHLPAR (*(vu_char *) (CONFIG_SYS_MBAR+0x100058))
230#define MCFGPIO_PQSPAR (*(vu_char *) (CONFIG_SYS_MBAR+0x100059))
231#define MCFGPIO_PTCPAR (*(vu_char *) (CONFIG_SYS_MBAR+0x10005A))
232#define MCFGPIO_PTDPAR (*(vu_char *) (CONFIG_SYS_MBAR+0x10005B))
233#define MCFGPIO_PUAPAR (*(vu_char *) (CONFIG_SYS_MBAR+0x10005C))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200234
235/* Bit level definitions and macros */
236#define MCFGPIO_PORT7 (0x80)
237#define MCFGPIO_PORT6 (0x40)
238#define MCFGPIO_PORT5 (0x20)
239#define MCFGPIO_PORT4 (0x10)
240#define MCFGPIO_PORT3 (0x08)
241#define MCFGPIO_PORT2 (0x04)
242#define MCFGPIO_PORT1 (0x02)
243#define MCFGPIO_PORT0 (0x01)
244#define MCFGPIO_PORT(x) (0x01<<x)
245
246#define MCFGPIO_DDR7 (0x80)
247#define MCFGPIO_DDR6 (0x40)
248#define MCFGPIO_DDR5 (0x20)
249#define MCFGPIO_DDR4 (0x10)
250#define MCFGPIO_DDR3 (0x08)
251#define MCFGPIO_DDR2 (0x04)
252#define MCFGPIO_DDR1 (0x02)
253#define MCFGPIO_DDR0 (0x01)
254#define MCFGPIO_DDR(x) (0x01<<x)
255
256#define MCFGPIO_Px7 (0x80)
257#define MCFGPIO_Px6 (0x40)
258#define MCFGPIO_Px5 (0x20)
259#define MCFGPIO_Px4 (0x10)
260#define MCFGPIO_Px3 (0x08)
261#define MCFGPIO_Px2 (0x04)
262#define MCFGPIO_Px1 (0x02)
263#define MCFGPIO_Px0 (0x01)
264#define MCFGPIO_Px(x) (0x01<<x)
265
Heiko Schocher9acb6262006-04-20 08:42:42 +0200266#define MCFGPIO_PBCDPAR_PBPA (0x80)
267#define MCFGPIO_PBCDPAR_PCDPA (0x40)
268
269#define MCFGPIO_PEPAR_PEPA7 (0x4000)
270#define MCFGPIO_PEPAR_PEPA6 (0x1000)
271#define MCFGPIO_PEPAR_PEPA5 (0x0400)
272#define MCFGPIO_PEPAR_PEPA4 (0x0100)
273#define MCFGPIO_PEPAR_PEPA3 (0x0040)
274#define MCFGPIO_PEPAR_PEPA2 (0x0010)
275#define MCFGPIO_PEPAR_PEPA1(x) (((x)&0x3)<<2)
276#define MCFGPIO_PEPAR_PEPA0(x) (((x)&0x3))
277
278#define MCFGPIO_PFPAR_PFPA7 (0x80)
279#define MCFGPIO_PFPAR_PFPA6 (0x40)
280#define MCFGPIO_PFPAR_PFPA5 (0x20)
281
282#define MCFGPIO_PJPAR_PJPA7 (0x80)
283#define MCFGPIO_PJPAR_PJPA6 (0x40)
284#define MCFGPIO_PJPAR_PJPA5 (0x20)
285#define MCFGPIO_PJPAR_PJPA4 (0x10)
286#define MCFGPIO_PJPAR_PJPA3 (0x08)
287#define MCFGPIO_PJPAR_PJPA2 (0x04)
288#define MCFGPIO_PJPAR_PJPA1 (0x02)
289#define MCFGPIO_PJPAR_PJPA0 (0x01)
290#define MCFGPIO_PJPAR_PJPA(x) (0x01<<x)
291
292#define MCFGPIO_PSDPAR_PSDPA (0x80)
293
294#define MCFGPIO_PASPAR_PASPA5(x) (((x)&0x3)<<10)
295#define MCFGPIO_PASPAR_PASPA4(x) (((x)&0x3)<<8)
296#define MCFGPIO_PASPAR_PASPA3(x) (((x)&0x3)<<6)
297#define MCFGPIO_PASPAR_PASPA2(x) (((x)&0x3)<<4)
298#define MCFGPIO_PASPAR_PASPA1(x) (((x)&0x3)<<2)
299#define MCFGPIO_PASPAR_PASPA0(x) (((x)&0x3))
300
301#define MCFGPIO_PEHLPAR_PEHPA (0x80)
302#define MCFGPIO_PEHLPAR_PELPA (0x40)
303
304#define MCFGPIO_PQSPAR_PQSPA6 (0x40)
305#define MCFGPIO_PQSPAR_PQSPA5 (0x20)
306#define MCFGPIO_PQSPAR_PQSPA4 (0x10)
307#define MCFGPIO_PQSPAR_PQSPA3 (0x08)
308#define MCFGPIO_PQSPAR_PQSPA2 (0x04)
309#define MCFGPIO_PQSPAR_PQSPA1 (0x02)
310#define MCFGPIO_PQSPAR_PQSPA0 (0x01)
311#define MCFGPIO_PQSPAR_PQSPA(x) (0x01<<x)
312
313#define MCFGPIO_PTCPAR_PTCPA3(x) (((x)&0x3)<<6)
314#define MCFGPIO_PTCPAR_PTCPA2(x) (((x)&0x3)<<4)
315#define MCFGPIO_PTCPAR_PTCPA1(x) (((x)&0x3)<<2)
316#define MCFGPIO_PTCPAR_PTCPA0(x) (((x)&0x3))
317
318#define MCFGPIO_PTDPAR_PTDPA3(x) (((x)&0x3)<<6)
319#define MCFGPIO_PTDPAR_PTDPA2(x) (((x)&0x3)<<4)
320#define MCFGPIO_PTDPAR_PTDPA1(x) (((x)&0x3)<<2)
321#define MCFGPIO_PTDPAR_PTDPA0(x) (((x)&0x3))
322
323#define MCFGPIO_PUAPAR_PUAPA3 (0x08)
324#define MCFGPIO_PUAPAR_PUAPA2 (0x04)
325#define MCFGPIO_PUAPAR_PUAPA1 (0x02)
326#define MCFGPIO_PUAPAR_PUAPA0 (0x01)
327
328/* System Conrol Module SCM */
329
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200330#define MCFSCM_RAMBAR (*(vu_long *) (CONFIG_SYS_MBAR+0x00000008))
331#define MCFSCM_CRSR (*(vu_char *) (CONFIG_SYS_MBAR+0x00000010))
332#define MCFSCM_CWCR (*(vu_char *) (CONFIG_SYS_MBAR+0x00000011))
333#define MCFSCM_LPICR (*(vu_char *) (CONFIG_SYS_MBAR+0x00000012))
334#define MCFSCM_CWSR (*(vu_char *) (CONFIG_SYS_MBAR+0x00000013))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200335
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200336#define MCFSCM_MPARK (*(vu_long *) (CONFIG_SYS_MBAR+0x0000001C))
337#define MCFSCM_MPR (*(vu_char *) (CONFIG_SYS_MBAR+0x00000020))
338#define MCFSCM_PACR0 (*(vu_char *) (CONFIG_SYS_MBAR+0x00000024))
339#define MCFSCM_PACR1 (*(vu_char *) (CONFIG_SYS_MBAR+0x00000025))
340#define MCFSCM_PACR2 (*(vu_char *) (CONFIG_SYS_MBAR+0x00000026))
341#define MCFSCM_PACR3 (*(vu_char *) (CONFIG_SYS_MBAR+0x00000027))
342#define MCFSCM_PACR4 (*(vu_char *) (CONFIG_SYS_MBAR+0x00000028))
343#define MCFSCM_PACR5 (*(vu_char *) (CONFIG_SYS_MBAR+0x0000002A))
344#define MCFSCM_PACR6 (*(vu_char *) (CONFIG_SYS_MBAR+0x0000002B))
345#define MCFSCM_PACR7 (*(vu_char *) (CONFIG_SYS_MBAR+0x0000002C))
346#define MCFSCM_PACR8 (*(vu_char *) (CONFIG_SYS_MBAR+0x0000002E))
347#define MCFSCM_GPACR0 (*(vu_char *) (CONFIG_SYS_MBAR+0x00000030))
348#define MCFSCM_GPACR1 (*(vu_char *) (CONFIG_SYS_MBAR+0x00000031))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200349
Heiko Schocher9acb6262006-04-20 08:42:42 +0200350#define MCFSCM_CRSR_EXT (0x80)
351#define MCFSCM_CRSR_CWDR (0x20)
TsiChungLiew56115662007-08-15 19:38:15 -0500352#define MCFSCM_RAMBAR_BA(x) ((x)&0xFFFF0000)
353#define MCFSCM_RAMBAR_BDE (0x00000200)
Heiko Schocher9acb6262006-04-20 08:42:42 +0200354
355/* Reset Controller Module RCM */
356
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200357#define MCFRESET_RCR (*(vu_char *) (CONFIG_SYS_MBAR+0x00110000))
358#define MCFRESET_RSR (*(vu_char *) (CONFIG_SYS_MBAR+0x00110001))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200359
TsiChungLiew56115662007-08-15 19:38:15 -0500360#define MCFRESET_RCR_SOFTRST (0x80)
361#define MCFRESET_RCR_FRCRSTOUT (0x40)
362#define MCFRESET_RCR_LVDF (0x10)
363#define MCFRESET_RCR_LVDIE (0x08)
364#define MCFRESET_RCR_LVDRE (0x04)
365#define MCFRESET_RCR_LVDE (0x01)
Heiko Schocher9acb6262006-04-20 08:42:42 +0200366
TsiChungLiew56115662007-08-15 19:38:15 -0500367#define MCFRESET_RSR_LVD (0x40)
368#define MCFRESET_RSR_SOFT (0x20)
369#define MCFRESET_RSR_WDR (0x10)
370#define MCFRESET_RSR_POR (0x08)
371#define MCFRESET_RSR_EXT (0x04)
372#define MCFRESET_RSR_LOC (0x02)
373#define MCFRESET_RSR_LOL (0x01)
374#define MCFRESET_RSR_ALL (0x7F)
375#define MCFRESET_RCR_SOFTRST (0x80)
376#define MCFRESET_RCR_FRCRSTOUT (0x40)
Heiko Schocher9acb6262006-04-20 08:42:42 +0200377
378/* Chip Configuration Module CCM */
379
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200380#define MCFCCM_CCR (*(vu_short *)(CONFIG_SYS_MBAR+0x00110004))
381#define MCFCCM_RCON (*(vu_short *)(CONFIG_SYS_MBAR+0x00110008))
382#define MCFCCM_CIR (*(vu_short *)(CONFIG_SYS_MBAR+0x0011000A))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200383
Heiko Schocher9acb6262006-04-20 08:42:42 +0200384/* Bit level definitions and macros */
Wolfgang Denk53677ef2008-05-20 16:00:29 +0200385#define MCFCCM_CCR_LOAD (0x8000)
386#define MCFCCM_CCR_MODE(x) (((x)&0x0007)<<8)
387#define MCFCCM_CCR_SZEN (0x0040)
388#define MCFCCM_CCR_PSTEN (0x0020)
389#define MCFCCM_CCR_BME (0x0008)
390#define MCFCCM_CCR_BMT(x) (((x)&0x0007))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200391
Wolfgang Denk53677ef2008-05-20 16:00:29 +0200392#define MCFCCM_CIR_PIN_MASK (0xFF00)
393#define MCFCCM_CIR_PRN_MASK (0x00FF)
Heiko Schocher9acb6262006-04-20 08:42:42 +0200394
395/* Clock Module */
396
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200397#define MCFCLOCK_SYNCR (*(vu_short *)(CONFIG_SYS_MBAR+0x120000))
398#define MCFCLOCK_SYNSR (*(vu_char *) (CONFIG_SYS_MBAR+0x120002))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200399
TsiChungLiew56115662007-08-15 19:38:15 -0500400#define MCFCLOCK_SYNCR_MFD(x) (((x)&0x0007)<<12)
401#define MCFCLOCK_SYNCR_RFD(x) (((x)&0x0007)<<8)
402#define MCFCLOCK_SYNSR_LOCK 0x08
Heiko Schocher9acb6262006-04-20 08:42:42 +0200403
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200404#define MCFSDRAMC_DCR (*(vu_short *)(CONFIG_SYS_MBAR+0x00000040))
405#define MCFSDRAMC_DACR0 (*(vu_long *) (CONFIG_SYS_MBAR+0x00000048))
406#define MCFSDRAMC_DMR0 (*(vu_long *) (CONFIG_SYS_MBAR+0x0000004c))
407#define MCFSDRAMC_DACR1 (*(vu_long *) (CONFIG_SYS_MBAR+0x00000050))
408#define MCFSDRAMC_DMR1 (*(vu_long *) (CONFIG_SYS_MBAR+0x00000054))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200409
410#define MCFSDRAMC_DCR_NAM (0x2000)
411#define MCFSDRAMC_DCR_COC (0x1000)
412#define MCFSDRAMC_DCR_IS (0x0800)
413#define MCFSDRAMC_DCR_RTIM_3 (0x0000)
414#define MCFSDRAMC_DCR_RTIM_6 (0x0200)
415#define MCFSDRAMC_DCR_RTIM_9 (0x0400)
416#define MCFSDRAMC_DCR_RC(x) ((x)&0x01FF)
417
418#define MCFSDRAMC_DACR_BASE(x) ((x)&0xFFFC0000)
419#define MCFSDRAMC_DACR_RE (0x00008000)
420#define MCFSDRAMC_DACR_CASL(x) (((x)&0x03)<<12)
421#define MCFSDRAMC_DACR_CBM(x) (((x)&0x07)<<8)
422#define MCFSDRAMC_DACR_PS_32 (0x00000000)
423#define MCFSDRAMC_DACR_PS_16 (0x00000020)
424#define MCFSDRAMC_DACR_PS_8 (0x00000010)
425#define MCFSDRAMC_DACR_IP (0x00000008)
426#define MCFSDRAMC_DACR_IMRS (0x00000040)
427
428#define MCFSDRAMC_DMR_BAM_16M (0x00FC0000)
TsiChungLiew56115662007-08-15 19:38:15 -0500429#define MCFSDRAMC_DMR_WP (0x00000100)
430#define MCFSDRAMC_DMR_CI (0x00000040)
431#define MCFSDRAMC_DMR_AM (0x00000020)
432#define MCFSDRAMC_DMR_SC (0x00000010)
433#define MCFSDRAMC_DMR_SD (0x00000008)
434#define MCFSDRAMC_DMR_UC (0x00000004)
435#define MCFSDRAMC_DMR_UD (0x00000002)
436#define MCFSDRAMC_DMR_V (0x00000001)
Heiko Schocher9acb6262006-04-20 08:42:42 +0200437
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200438#define MCFWTM_WCR (*(vu_short *)(CONFIG_SYS_MBAR+0x00140000))
439#define MCFWTM_WMR (*(vu_short *)(CONFIG_SYS_MBAR+0x00140002))
440#define MCFWTM_WCNTR (*(vu_short *)(CONFIG_SYS_MBAR+0x00140004))
441#define MCFWTM_WSR (*(vu_short *)(CONFIG_SYS_MBAR+0x00140006))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200442
Heiko Schocher9acb6262006-04-20 08:42:42 +0200443/*********************************************************************
Heiko Schocher9acb6262006-04-20 08:42:42 +0200444* General Purpose Timer (GPT) Module
Heiko Schocher9acb6262006-04-20 08:42:42 +0200445*********************************************************************/
446
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200447#define MCFGPTA_GPTIOS (*(vu_char *)(CONFIG_SYS_MBAR+0x1A0000))
448#define MCFGPTA_GPTCFORC (*(vu_char *)(CONFIG_SYS_MBAR+0x1A0001))
449#define MCFGPTA_GPTOC3M (*(vu_char *)(CONFIG_SYS_MBAR+0x1A0002))
450#define MCFGPTA_GPTOC3D (*(vu_char *)(CONFIG_SYS_MBAR+0x1A0003))
451#define MCFGPTA_GPTCNT (*(vu_short *)(CONFIG_SYS_MBAR+0x1A0004))
452#define MCFGPTA_GPTSCR1 (*(vu_char *)(CONFIG_SYS_MBAR+0x1A0006))
453#define MCFGPTA_GPTTOV (*(vu_char *)(CONFIG_SYS_MBAR+0x1A0008))
454#define MCFGPTA_GPTCTL1 (*(vu_char *)(CONFIG_SYS_MBAR+0x1A0009))
455#define MCFGPTA_GPTCTL2 (*(vu_char *)(CONFIG_SYS_MBAR+0x1A000B))
456#define MCFGPTA_GPTIE (*(vu_char *)(CONFIG_SYS_MBAR+0x1A000C))
457#define MCFGPTA_GPTSCR2 (*(vu_char *)(CONFIG_SYS_MBAR+0x1A000D))
458#define MCFGPTA_GPTFLG1 (*(vu_char *)(CONFIG_SYS_MBAR+0x1A000E))
459#define MCFGPTA_GPTFLG2 (*(vu_char *)(CONFIG_SYS_MBAR+0x1A000F))
460#define MCFGPTA_GPTC0 (*(vu_short *)(CONFIG_SYS_MBAR+0x1A0010))
461#define MCFGPTA_GPTC1 (*(vu_short *)(CONFIG_SYS_MBAR+0x1A0012))
462#define MCFGPTA_GPTC2 (*(vu_short *)(CONFIG_SYS_MBAR+0x1A0014))
463#define MCFGPTA_GPTC3 (*(vu_short *)(CONFIG_SYS_MBAR+0x1A0016))
464#define MCFGPTA_GPTPACTL (*(vu_char *)(CONFIG_SYS_MBAR+0x1A0018))
465#define MCFGPTA_GPTPAFLG (*(vu_char *)(CONFIG_SYS_MBAR+0x1A0019))
466#define MCFGPTA_GPTPACNT (*(vu_short *)(CONFIG_SYS_MBAR+0x1A001A))
467#define MCFGPTA_GPTPORT (*(vu_char *)(CONFIG_SYS_MBAR+0x1A001D))
468#define MCFGPTA_GPTDDR (*(vu_char *)(CONFIG_SYS_MBAR+0x1A001E))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200469
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200470#define MCFGPTB_GPTIOS (*(vu_char *)(CONFIG_SYS_MBAR+0x1B0000))
471#define MCFGPTB_GPTCFORC (*(vu_char *)(CONFIG_SYS_MBAR+0x1B0001))
472#define MCFGPTB_GPTOC3M (*(vu_char *)(CONFIG_SYS_MBAR+0x1B0002))
473#define MCFGPTB_GPTOC3D (*(vu_char *)(CONFIG_SYS_MBAR+0x1B0003))
474#define MCFGPTB_GPTCNT (*(vu_short *)(CONFIG_SYS_MBAR+0x1B0004))
475#define MCFGPTB_GPTSCR1 (*(vu_char *)(CONFIG_SYS_MBAR+0x1B0006))
476#define MCFGPTB_GPTTOV (*(vu_char *)(CONFIG_SYS_MBAR+0x1B0008))
477#define MCFGPTB_GPTCTL1 (*(vu_char *)(CONFIG_SYS_MBAR+0x1B0009))
478#define MCFGPTB_GPTCTL2 (*(vu_char *)(CONFIG_SYS_MBAR+0x1B000B))
479#define MCFGPTB_GPTIE (*(vu_char *)(CONFIG_SYS_MBAR+0x1B000C))
480#define MCFGPTB_GPTSCR2 (*(vu_char *)(CONFIG_SYS_MBAR+0x1B000D))
481#define MCFGPTB_GPTFLG1 (*(vu_char *)(CONFIG_SYS_MBAR+0x1B000E))
482#define MCFGPTB_GPTFLG2 (*(vu_char *)(CONFIG_SYS_MBAR+0x1B000F))
483#define MCFGPTB_GPTC0 (*(vu_short *)(CONFIG_SYS_MBAR+0x1B0010))
484#define MCFGPTB_GPTC1 (*(vu_short *)(CONFIG_SYS_MBAR+0x1B0012))
485#define MCFGPTB_GPTC2 (*(vu_short *)(CONFIG_SYS_MBAR+0x1B0014))
486#define MCFGPTB_GPTC3 (*(vu_short *)(CONFIG_SYS_MBAR+0x1B0016))
487#define MCFGPTB_GPTPACTL (*(vu_char *)(CONFIG_SYS_MBAR+0x1B0018))
488#define MCFGPTB_GPTPAFLG (*(vu_char *)(CONFIG_SYS_MBAR+0x1B0019))
489#define MCFGPTB_GPTPACNT (*(vu_short *)(CONFIG_SYS_MBAR+0x1B001A))
490#define MCFGPTB_GPTPORT (*(vu_char *)(CONFIG_SYS_MBAR+0x1B001D))
491#define MCFGPTB_GPTDDR (*(vu_char *)(CONFIG_SYS_MBAR+0x1B001E))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200492
493/* Bit level definitions and macros */
494#define MCFGPT_GPTIOS_IOS3 (0x08)
495#define MCFGPT_GPTIOS_IOS2 (0x04)
496#define MCFGPT_GPTIOS_IOS1 (0x02)
497#define MCFGPT_GPTIOS_IOS0 (0x01)
498
499#define MCFGPT_GPTCFORC_FOC3 (0x08)
500#define MCFGPT_GPTCFORC_FOC2 (0x04)
501#define MCFGPT_GPTCFORC_FOC1 (0x02)
502#define MCFGPT_GPTCFORC_FOC0 (0x01)
503
504#define MCFGPT_GPTOC3M_OC3M3 (0x08)
505#define MCFGPT_GPTOC3M_OC3M2 (0x04)
506#define MCFGPT_GPTOC3M_OC3M1 (0x02)
507#define MCFGPT_GPTOC3M_OC3M0 (0x01)
508
509#define MCFGPT_GPTOC3M_OC3D(x) (((x)&0x04))
510
511#define MCFGPT_GPTSCR1_GPTEN (0x80)
512#define MCFGPT_GPTSCR1_TFFCA (0x10)
513
514#define MCFGPT_GPTTOV3 (0x08)
515#define MCFGPT_GPTTOV2 (0x04)
516#define MCFGPT_GPTTOV1 (0x02)
517#define MCFGPT_GPTTOV0 (0x01)
518
519#define MCFGPT_GPTCTL_OMOL3(x) (((x)&0x03)<<6)
520#define MCFGPT_GPTCTL_OMOL2(x) (((x)&0x03)<<4)
521#define MCFGPT_GPTCTL_OMOL1(x) (((x)&0x03)<<2)
522#define MCFGPT_GPTCTL_OMOL0(x) (((x)&0x03))
523
524#define MCFGPT_GPTCTL2_EDG3(x) (((x)&0x03)<<6)
525#define MCFGPT_GPTCTL2_EDG2(x) (((x)&0x03)<<4)
526#define MCFGPT_GPTCTL2_EDG1(x) (((x)&0x03)<<2)
527#define MCFGPT_GPTCTL2_EDG0(x) (((x)&0x03))
528
529#define MCFGPT_GPTIE_C3I (0x08)
530#define MCFGPT_GPTIE_C2I (0x04)
531#define MCFGPT_GPTIE_C1I (0x02)
532#define MCFGPT_GPTIE_C0I (0x01)
533
Wolfgang Denk53677ef2008-05-20 16:00:29 +0200534#define MCFGPT_GPTSCR2_TOI (0x80)
Heiko Schocher9acb6262006-04-20 08:42:42 +0200535#define MCFGPT_GPTSCR2_PUPT (0x20)
536#define MCFGPT_GPTSCR2_RDPT (0x10)
537#define MCFGPT_GPTSCR2_TCRE (0x08)
538#define MCFGPT_GPTSCR2_PR(x) (((x)&0x07))
539
540#define MCFGPT_GPTFLG1_C3F (0x08)
541#define MCFGPT_GPTFLG1_C2F (0x04)
542#define MCFGPT_GPTFLG1_C1F (0x02)
543#define MCFGPT_GPTFLG1_C0F (0x01)
544
545#define MCFGPT_GPTFLG2_TOF (0x80)
546#define MCFGPT_GPTFLG2_C3F (0x08)
547#define MCFGPT_GPTFLG2_C2F (0x04)
548#define MCFGPT_GPTFLG2_C1F (0x02)
549#define MCFGPT_GPTFLG2_C0F (0x01)
550
551#define MCFGPT_GPTPACTL_PAE (0x40)
552#define MCFGPT_GPTPACTL_PAMOD (0x20)
553#define MCFGPT_GPTPACTL_PEDGE (0x10)
554#define MCFGPT_GPTPACTL_CLK_PACLK (0x04)
555#define MCFGPT_GPTPACTL_CLK_PACLK256 (0x08)
556#define MCFGPT_GPTPACTL_CLK_PACLK65536 (0x0C)
557#define MCFGPT_GPTPACTL_CLK(x) (((x)&0x03)<<2)
558#define MCFGPT_GPTPACTL_PAOVI (0x02)
559#define MCFGPT_GPTPACTL_PAI (0x01)
560
561#define MCFGPT_GPTPAFLG_PAOVF (0x02)
562#define MCFGPT_GPTPAFLG_PAIF (0x01)
563
564#define MCFGPT_GPTPORT_PORTT3 (0x08)
565#define MCFGPT_GPTPORT_PORTT2 (0x04)
566#define MCFGPT_GPTPORT_PORTT1 (0x02)
567#define MCFGPT_GPTPORT_PORTT0 (0x01)
568
569#define MCFGPT_GPTDDR_DDRT3 (0x08)
570#define MCFGPT_GPTDDR_DDRT2 (0x04)
571#define MCFGPT_GPTDDR_DDRT1 (0x02)
572#define MCFGPT_GPTDDR_DDRT0 (0x01)
573
574/* Coldfire Flash Module CFM */
575
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200576#define MCFCFM_MCR (*(vu_short *)(CONFIG_SYS_MBAR+0x1D0000))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200577#define MCFCFM_MCR_LOCK (0x0400)
578#define MCFCFM_MCR_PVIE (0x0200)
579#define MCFCFM_MCR_AEIE (0x0100)
580#define MCFCFM_MCR_CBEIE (0x0080)
581#define MCFCFM_MCR_CCIE (0x0040)
582#define MCFCFM_MCR_KEYACC (0x0020)
583
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200584#define MCFCFM_CLKD (*(vu_char *)(CONFIG_SYS_MBAR+0x1D0002))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200585
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200586#define MCFCFM_SEC (*(vu_long*) (CONFIG_SYS_MBAR+0x1D0008))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200587#define MCFCFM_SEC_KEYEN (0x80000000)
588#define MCFCFM_SEC_SECSTAT (0x40000000)
589
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200590#define MCFCFM_PROT (*(vu_long*) (CONFIG_SYS_MBAR+0x1D0010))
591#define MCFCFM_SACC (*(vu_long*) (CONFIG_SYS_MBAR+0x1D0014))
592#define MCFCFM_DACC (*(vu_long*) (CONFIG_SYS_MBAR+0x1D0018))
593#define MCFCFM_USTAT (*(vu_char*) (CONFIG_SYS_MBAR+0x1D0020))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200594#define MCFCFM_USTAT_CBEIF 0x80
595#define MCFCFM_USTAT_CCIF 0x40
596#define MCFCFM_USTAT_PVIOL 0x20
597#define MCFCFM_USTAT_ACCERR 0x10
598#define MCFCFM_USTAT_BLANK 0x04
599
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200600#define MCFCFM_CMD (*(vu_char*) (CONFIG_SYS_MBAR+0x1D0024))
Heiko Schocher9acb6262006-04-20 08:42:42 +0200601#define MCFCFM_CMD_ERSVER 0x05
602#define MCFCFM_CMD_PGERSVER 0x06
603#define MCFCFM_CMD_PGM 0x20
604#define MCFCFM_CMD_PGERS 0x40
605#define MCFCFM_CMD_MASERS 0x41
wdenkbf9e3b32004-02-12 00:47:09 +0000606
607/****************************************************************************/
TsiChungLiew56115662007-08-15 19:38:15 -0500608#endif /* m5282_h */