RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
bsps
m68k
include
mcf5206
mcf5206e.h
1
/*
2
* Coldfire MCF5206e on-chip peripherial definitions.
3
* Contents of this file based on information provided in
4
* Motorola MCF5206e User's Manual
5
*
6
* Copyright (C) 2000 OKTET Ltd., St.-Petersburg, Russia
7
* Author: Victor V. Vengerov <vvv@oktet.ru>
8
*
9
* The license and distribution terms for this file may be
10
* found in the file LICENSE in this distribution or at
11
* http://www.rtems.org/license/LICENSE.
12
*/
13
14
#ifndef __MCF5206E_H__
15
#define __MCF5206E_H__
16
17
#ifdef ASM
18
#define MCF5206E_REG8(base,ofs) (ofs+base)
19
#define MCF5206E_REG16(base,ofs) (ofs+base)
20
#define MCF5206E_REG32(base,ofs) (ofs+base)
21
#else
22
#define MCF5206E_REG8(base,ofs) \
23
(volatile uint8_t*)((uint8_t*)(base) + (ofs))
24
#define MCF5206E_REG16(base,ofs) \
25
(volatile uint16_t*)((uint8_t*)(base) + (ofs))
26
#define MCF5206E_REG32(base,ofs) \
27
(volatile uint32_t*)((uint8_t*)(base) + (ofs))
28
#endif
29
30
/*** Instruction Cache -- MCF5206e User's Manual, Chapter 4 ***/
31
32
/* CACR - Cache Control Register */
33
#define MCF5206E_CACR_CENB (0x80000000)
/* Cache Enable */
34
#define MCF5206E_CACR_CPDI (0x10000000)
/* Disable CPUSHL Invalidation */
35
#define MCF5206E_CACR_CFRZ (0x08000000)
/* Cache Freeze */
36
#define MCF5206E_CACR_CINV (0x01000000)
/* Cache Invalidate */
37
#define MCF5206E_CACR_CEIB (0x00000400)
/* Cache Enable Noncacheable
38
instruction bursting */
39
#define MCF5206E_CACR_DCM (0x00000200)
/* Default cache mode - noncacheable*/
40
#define MCF5206E_CACR_DBWE (0x00000100)
/* Default Buffered Write Enable */
41
#define MCF5206E_CACR_DWP (0x00000020)
/* Default Write Protection */
42
#define MCF5206E_CACR_CLNF (0x00000003)
/* Cache Line Fill */
43
44
/* ACR0, ACR1 - Access Control Registers */
45
#define MCF5206E_ACR_AB (0xff000000)
/* Address Base */
46
#define MCF5206E_ACR_AB_S (24)
47
#define MCF5206E_ACR_AM (0x00ff0000)
/* Address Mask */
48
#define MCF5206E_ACR_AM_S (16)
49
#define MCF5206E_ACR_EN (0x00008000)
/* Enable ACR */
50
#define MCF5206E_ACR_SM (0x00006000)
/* Supervisor Mode */
51
#define MCF5206E_ACR_SM_USR (0x00000000)
/* Match if user mode */
52
#define MCF5206E_ACR_SM_SVR (0x00002000)
/* Match if supervisor mode */
53
#define MCF5206E_ACR_SM_ANY (0x00004000)
/* Match Always */
54
#define MCF5206E_ACR_CM (0x00000040)
/* Cache Mode (1 - noncacheable) */
55
#define MCF5206E_ACR_BUFW (0x00000020)
/* Buffered Write Enable */
56
#define MCF5206E_ACR_WP (0x00000004)
/* Write Protect */
57
#define MCF5206E_ACR_BASE(base) ((base) & MCF5206E_ACR_AB)
58
#define MCF5206E_ACR_MASK(mask) (((mask) >> 8) & MCF5206E_ACR_AM)
59
60
/*** SRAM -- MCF5206e User's Manual, Chapter 5 ***/
61
62
/* RAMBAR - SRAM Base Address Register */
63
#define MCF5206E_RAMBAR_BA (0xffffe000)
/* SRAM Base Address */
64
#define MCF5206E_RAMBAR_WP (0x00000100)
/* Write Protect */
65
#define MCF5206E_RAMBAR_CI (0x00000020)
/* CPU Space mask */
66
#define MCF5206E_RAMBAR_SC (0x00000010)
/* Supervisor Code Space Mask */
67
#define MCF5206E_RAMBAR_SD (0x00000008)
/* Supervisor Data Space Mask */
68
#define MCF5206E_RAMBAR_UC (0x00000004)
/* User Code Space Mask */
69
#define MCF5206E_RAMBAR_UD (0x00000002)
/* User Data Space Mask */
70
#define MCF5206E_RAMBAR_V (0x00000001)
/* Contents of RAMBAR are valid */
71
72
/*** DMA Controller Module -- MCF5206e User's Manual, Chapter 7 ***/
73
74
/* DMA Source Address Register */
75
#define MCF5206E_SAR(mbar,chn) MCF5206E_REG32(mbar,0x200 + ((chn) * 0x40))
76
77
/* DMA Destination Address Register */
78
#define MCF5206E_DAR(mbar,chn) MCF5206E_REG32(mbar,0x204 + ((chn) * 0x40))
79
80
/* DMA Byte Count Register */
81
#define MCF5206E_BCR(mbar,chn) MCF5206E_REG16(mbar,0x20C + ((chn) * 0x40))
82
83
/* DMA Control Register */
84
#define MCF5206E_DCR(mbar,chn) MCF5206E_REG16(mbar,0x208 + ((chn) * 0x40))
85
#define MCF5206E_DCR_INT (0x8000)
/* Interrupt on completion of transfer */
86
#define MCF5206E_DCR_EEXT (0x4000)
/* Enable External DMA Request */
87
#define MCF5206E_DCR_CS (0x2000)
/* Cycle Steal */
88
#define MCF5206E_DCR_AA (0x1000)
/* Auto Align */
89
#define MCF5206E_DCR_BWC (0x0E00)
/* Bandwidth Control: */
90
#define MCF5206E_DCR_BWC_DISABLE (0x0000)
/* Bandwidth Control Disabled */
91
#define MCF5206E_DCR_BWC_512 (0x0200)
/* 512 bytes */
92
#define MCF5206E_DCR_BWC_1024 (0x0400)
/* 1024 bytes */
93
#define MCF5206E_DCR_BWC_2048 (0x0600)
/* 2048 bytes */
94
#define MCF5206E_DCR_BWC_4096 (0x0800)
/* 4096 bytes */
95
#define MCF5206E_DCR_BWC_8192 (0x0A00)
/* 8192 bytes */
96
#define MCF5206E_DCR_BWC_16384 (0x0C00)
/* 16384 bytes */
97
#define MCF5206E_DCR_BWC_32768 (0x0E00)
/* 32768 bytes */
98
#define MCF5206E_DCR_SAA (0x0100)
/* Single Address Access */
99
#define MCF5206E_DCR_S_RW (0x0080)
/* Single Address Access Read/Write Val */
100
#define MCF5206E_DCR_SINC (0x0040)
/* Source Increment */
101
#define MCF5206E_DCR_SSIZE (0x0030)
/* Source Size: */
102
#define MCF5206E_DCR_SSIZE_LONG (0x0000)
/* Longword (4 bytes) */
103
#define MCF5206E_DCR_SSIZE_BYTE (0x0010)
/* Byte */
104
#define MCF5206E_DCR_SSIZE_WORD (0x0020)
/* Word (2 bytes) */
105
#define MCF5206E_DCR_SSIZE_LINE (0x0030)
/* Line (16 bytes) */
106
#define MCF5206E_DCR_DINC (0x0008)
/* Destination Increment */
107
#define MCF5206E_DCR_DSIZE (0x0006)
/* Destination Size: */
108
#define MCF5206E_DCR_DSIZE_LONG (0x0000)
/* Longword (4 bytes) */
109
#define MCF5206E_DCR_DSIZE_BYTE (0x0002)
/* Byte */
110
#define MCF5206E_DCR_DSIZE_WORD (0x0004)
/* Word (2 bytes) */
111
#define MCF5206E_DCR_DSIZE_LINE (0x0006)
/* Line (16 bytes) */
112
#define MCF5206E_DCR_START (0x0001)
/* Start Transfer */
113
114
/* DMA Status Register */
115
#define MCF5206E_DSR(mbar,chn) MCF5206E_REG8(mbar,0x210 + ((chn) * 0x40))
116
#define MCF5206E_DSR_CE (0x40)
/* Configuration Error has occured */
117
#define MCF5206E_DSR_BES (0x20)
/* Bus Error on Source */
118
#define MCF5206E_DSR_BED (0x10)
/* Bus Error on Destination */
119
#define MCF5206E_DSR_REQ (0x04)
/* Request */
120
#define MCF5206E_DSR_BSY (0x02)
/* Busy */
121
#define MCF5206E_DSR_DONE (0x01)
/* Transaction Done */
122
123
/* DMA Interrupt Vector Register */
124
#define MCF5206E_DIVR(mbar,chn) MCF5206E_REG8(mbar,0x214 + ((chn) * 0x40))
125
126
127
/*** System Integration Module -- MCF5206e User's Manual, Chapter 8 ***/
128
129
/* MBAR - Module Base Address Register */
130
#define MCF5206E_MBAR_BA (0xFFFFFC00)
/* Base Address */
131
#define MCF5206E_MBAR_SC (0x00000010)
/* Supervisor Code Space Mask */
132
#define MCF5206E_MBAR_SD (0x00000008)
/* Supervisor Data Space Mask */
133
#define MCF5206E_MBAR_UC (0x00000004)
/* User Code Space Mask */
134
#define MCF5206E_MBAR_UD (0x00000002)
/* User Data Space Mask */
135
#define MCF5206E_MBAR_V (0x00000001)
/* Contents of MBAR are valid */
136
137
/* SIM Configuration Register */
138
#define MCF5206E_SIMR(mbar) MCF5206E_REG8(mbar,0x003)
139
#define MCF5206E_SIMR_FRZ1 (0x80)
/* Disable Soft Wdog Timer when FREEZE */
140
#define MCF5206E_SIMR_FRZ0 (0x40)
/* Disable Bus Timeout monitor when FREEZE*/
141
#define MCF5206E_SIMR_BL (0x01)
/* Bus Lock Enable */
142
143
/* Interrupt numbers assignment */
144
#define MCF5206E_INTR_EXT_IRQ1 (1)
/* External IRQ1 */
145
#define MCF5206E_INTR_EXT_IPL1 (1)
/* External IPL1 */
146
#define MCF5206E_INTR_EXT_IPL2 (2)
/* External IPL2 */
147
#define MCF5206E_INTR_EXT_IPL3 (3)
/* External IPL3 */
148
#define MCF5206E_INTR_EXT_IRQ4 (4)
/* External IRQ4 */
149
#define MCF5206E_INTR_EXT_IPL4 (4)
/* External IPL4 */
150
#define MCF5206E_INTR_EXT_IPL5 (5)
/* External IPL5 */
151
#define MCF5206E_INTR_EXT_IPL6 (6)
/* External IPL6 */
152
#define MCF5206E_INTR_EXT_IRQ7 (7)
/* External IRQ7 */
153
#define MCF5206E_INTR_EXT_IPL7 (7)
/* External IPL7 */
154
#define MCF5206E_INTR_SWT (8)
/* Software Watchdog Timer */
155
#define MCF5206E_INTR_TIMER_1 (9)
/* Timer 1 interrupt */
156
#define MCF5206E_INTR_TIMER_2 (10)
/* Timer 2 interrupt */
157
#define MCF5206E_INTR_MBUS (11)
/* MBUS interrupt */
158
#define MCF5206E_INTR_UART_1 (12)
/* UART 1 interrupt */
159
#define MCF5206E_INTR_UART_2 (13)
/* UART 2 interrupt */
160
#define MCF5206E_INTR_DMA_0 (14)
/* DMA channel 0 interrupt */
161
#define MCF5206E_INTR_DMA_1 (15)
/* DMA channel 1 interrupt */
162
163
#define MCF5206E_INTR_BIT(n) (1 << (n))
164
165
/* Interrupt Control Registers (ICR1 - ICR15) */
166
#define MCF5206E_ICR(mbar,n) MCF5206E_REG8(mbar,0x014 + (n) - 1)
167
168
#define MCF5206E_ICR_AVEC (0x80)
/* Autovector Enable */
169
#define MCF5206E_ICR_IL (0x1c)
/* Interrupt Level */
170
#define MCF5206E_ICR_IL_S (2)
171
#define MCF5206E_ICR_IP (0x03)
/* Interrupt Priority */
172
#define MCF5206E_ICR_IP_S (0)
173
174
/* Interrupt Mask Register */
175
#define MCF5206E_IMR(mbar) MCF5206E_REG16(mbar,0x036)
176
177
/* Interrupt Pending Register */
178
#define MCF5206E_IPR(mbar) MCF5206E_REG16(mbar,0x03a)
179
180
/* Reset Status Register */
181
#define MCF5206E_RSR(mbar) MCF5206E_REG8(mbar,0x040)
182
#define MCF5206E_RSR_HRST (0x80)
/* Hard Reset or System Reset */
183
#define MCF5206E_RSR_SWTR (0x20)
/* Software Watchdog Timer Reset */
184
185
/* System Protection Control Register */
186
#define MCF5206E_SYPCR(mbar) MCF5206E_REG8(mbar,0x041)
187
#define MCF5206E_SYPCR_SWE (0x80)
/* Software Watchdog Enable */
188
#define MCF5206E_SYPCR_SWRI (0x40)
/* Software Watchdog Reset/Interrupt Sel.*/
189
#define MCF5206E_SYPCR_SWP (0x20)
/* Software Watchdog Prescaler */
190
#define MCF5206E_SYPCR_SWT (0x18)
/* Software Watchdog Timing: */
191
#define MCF5206E_SYPCR_SWT_S (3)
192
#define MCF5206E_SYPCR_SWT_9 (0x00)
/* timeout = (1<<9)/sysfreq */
193
#define MCF5206E_SYPCR_SWT_11 (0x08)
/* timeout = (1<<11)/sysfreq */
194
#define MCF5206E_SYPCR_SWT_13 (0x10)
/* timeout = (1<<13)/sysfreq */
195
#define MCF5206E_SYPCR_SWT_15 (0x18)
/* timeout = (1<<15)/sysfreq */
196
#define MCF5206E_SYPCR_SWT_18 (0x20)
/* timeout = (1<<18)/sysfreq */
197
#define MCF5206E_SYPCR_SWT_20 (0x28)
/* timeout = (1<<20)/sysfreq */
198
#define MCF5206E_SYPCR_SWT_22 (0x30)
/* timeout = (1<<22)/sysfreq */
199
#define MCF5206E_SYPCR_SWT_24 (0x38)
/* timeout = (1<<24)/sysfreq */
200
#define MCF5206E_SYPCR_BME (0x04)
/* Bus Timeout Monitor Enable */
201
#define MCF5206E_SYPCR_BMT (0x03)
/* Bus Monitor Timing: */
202
#define MCF5206E_SYPCR_BMT_1024 (0x00)
/* timeout 1024 system clocks */
203
#define MCF5206E_SYPCR_BMT_512 (0x01)
/* timeout 512 system clocks */
204
#define MCF5206E_SYPCR_BMT_256 (0x02)
/* timeout 256 system clocks */
205
#define MCF5206E_SYPCR_BMT_128 (0x03)
/* timeout 128 system clocks */
206
207
/* Software Watchdog Interrupt Vector Register */
208
#define MCF5206E_SWIVR(mbar) MCF5206E_REG8(mbar,0x042)
209
210
/* Software Watchdog Service Register */
211
#define MCF5206E_SWSR(mbar) MCF5206E_REG8(mbar,0x043)
212
#define MCF5206E_SWSR_KEY1 (0x55)
213
#define MCF5206E_SWSR_KEY2 (0xAA)
214
215
/* Pin Assignment Register */
216
#define MCF5206E_PAR(mbar) MCF5206E_REG16(mbar,0x0CA)
217
#define MCF5206E_PAR_PAR9 (0x200)
218
#define MCF5206E_PAR_PAR9_TOUT (0x000)
/* Timer 0 output */
219
#define MCF5206E_PAR_PAR9_DREQ1 (0x200)
/* DMA channel 1 request */
220
#define MCF5206E_PAR_PAR8 (0x100)
221
#define MCF5206E_PAR_PAR8_TIN0 (0x000)
/* Timer 1 input */
222
#define MCF5206E_PAR_PAR8_DREQ0 (0x100)
/* DMA channel 0 request */
223
#define MCF5206E_PAR_PAR7 (0x080)
224
#define MCF5206E_PAR_PAR7_RSTO (0x000)
/* Reset output */
225
#define MCF5206E_PAR_PAR7_UART2 (0x080)
/* UART 2 RTS output */
226
#define MCF5206E_PAR_PAR6 (0x040)
227
#define MCF5206E_PAR_PAR6_IRQ (0x000)
/* IRQ7, IRQ4, IRQ1 */
228
#define MCF5206E_PAR_PAR6_IPL (0x040)
/* IPL2, IPL1, IPL0 */
229
#define MCF5206E_PAR_PAR5 (0x020)
230
#define MCF5206E_PAR_PAR5_GPIO (0x000)
/* General purpose I/O PP7-PP4 */
231
#define MCF5206E_PAR_PAR5_PST (0x020)
/* BDM signals PST3-PST0 */
232
#define MCF5206E_PAR_PAR4 (0x010)
233
#define MCF5206E_PAR_PAR4_GPIO (0x000)
/* General purpose I/O PP3-PP0 */
234
#define MCF5206E_PAR_PAR4_DDATA (0x010)
/* BDM signals DDATA3-DDATA0 */
235
#define MCF5206E_PAR_PAR3 (0x008)
236
#define MCF5206E_PAR_PAR2 (0x004)
237
#define MCF5206E_PAR_PAR1 (0x002)
238
#define MCF5206E_PAR_PAR0 (0x001)
239
#define MCF5206E_PAR_WE0_WE1_WE2_WE3 (0x000)
240
#define MCF5206E_PAR_WE0_WE1_CS5_CS4 (0x001)
241
#define MCF5206E_PAR_WE0_WE1_CS5_A24 (0x002)
242
#define MCF5206E_PAR_WE0_WE1_A25_A24 (0x003)
243
#define MCF5206E_PAR_WE0_CS6_CS5_CS4 (0x004)
244
#define MCF5206E_PAR_WE0_CS6_CS5_A24 (0x005)
245
#define MCF5206E_PAR_WE0_CS6_A25_A24 (0x006)
246
#define MCF5206E_PAR_WE0_A26_A25_A24 (0x007)
247
#define MCF5206E_PAR_CS7_CS6_CS5_CS4 (0x008)
248
#define MCF5206E_PAR_CS7_CS6_CS4_A24 (0x009)
249
#define MCF5206E_PAR_CS7_CS6_A25_A24 (0x00A)
250
#define MCF5206E_PAR_CS7_A26_A25_A24 (0x00B)
251
#define MCF5206E_PAR_A27_A26_A25_A24 (0x00C)
252
253
/* Bus Master Arbitration Control */
254
#define MCF5206E_MARB(mbar) MCF5206E_REG8(mbar,0x007)
255
#define MCF5206E_MARB_NOARB (0x08)
/* Arbiter operation disable */
256
#define MCF5206E_MARB_ARBCTRL (0x04)
/* Arb. order: Internal DMA, Coldfire */
257
258
/*** Chip Select Module -- MCF5206e User's Manual, Chapter 9 ***/
259
260
/* Chip Select Address Register */
261
#define MCF5206E_CSAR(mbar,bank) MCF5206E_REG16(mbar,0x064 + ((bank) * 12))
262
263
/* Chip Select Mask Register */
264
#define MCF5206E_CSMR(mbar,bank) MCF5206E_REG32(mbar,0x068 + ((bank) * 12))
265
#define MCF5206E_CSMR_BAM (0xffff0000)
/* Base Address Mask */
266
#define MCF5206E_CSMR_BAM_S (16)
267
#define MCF5206E_CSMR_MASK_256M (0x0FFF0000)
268
#define MCF5206E_CSMR_MASK_128M (0x07FF0000)
269
#define MCF5206E_CSMR_MASK_64M (0x03FF0000)
270
#define MCF5206E_CSMR_MASK_32M (0x01FF0000)
271
#define MCF5206E_CSMR_MASK_16M (0x00FF0000)
272
#define MCF5206E_CSMR_MASK_8M (0x007F0000)
273
#define MCF5206E_CSMR_MASK_4M (0x003F0000)
274
#define MCF5206E_CSMR_MASK_2M (0x001F0000)
275
#define MCF5206E_CSMR_MASK_1M (0x000F0000)
276
#define MCF5206E_CSMR_MASK_1024K (0x000F0000)
277
#define MCF5206E_CSMR_MASK_512K (0x00070000)
278
#define MCF5206E_CSMR_MASK_256K (0x00030000)
279
#define MCF5206E_CSMR_MASK_128K (0x00010000)
280
#define MCF5206E_CSMR_MASK_64K (0x00000000)
281
#define MCF5206E_CSMR_CI (0x00000020)
/* CPU Space Mask (CSMR1 only) */
282
#define MCF5206E_CSMR_SC (0x00000010)
/* Supervisor Code Space Mask */
283
#define MCF5206E_CSMR_SD (0x00000008)
/* Supervisor Data Space Mask */
284
#define MCF5206E_CSMR_UC (0x00000004)
/* User Code Space Mask */
285
#define MCF5206E_CSMR_UD (0x00000002)
/* User Data Space Mask */
286
287
/* Chip Select Control Register */
288
#define MCF5206E_CSCR(mbar,bank) MCF5206E_REG16(mbar,0x6E + ((bank) * 12))
289
#define MCF5206E_CSCR_WS (0x3c00)
/* Wait States */
290
#define MCF5206E_CSCR_WS_S (10)
291
#define MCF5206E_CSCR_WS0 (0x0000)
/* 0 Wait States */
292
#define MCF5206E_CSCR_WS1 (0x0400)
/* 1 Wait States */
293
#define MCF5206E_CSCR_WS2 (0x0800)
/* 2 Wait States */
294
#define MCF5206E_CSCR_WS3 (0x0C00)
/* 3 Wait States */
295
#define MCF5206E_CSCR_WS4 (0x1000)
/* 4 Wait States */
296
#define MCF5206E_CSCR_WS5 (0x1400)
/* 5 Wait States */
297
#define MCF5206E_CSCR_WS6 (0x1800)
/* 6 Wait States */
298
#define MCF5206E_CSCR_WS7 (0x1C00)
/* 7 Wait States */
299
#define MCF5206E_CSCR_WS8 (0x2000)
/* 8 Wait States */
300
#define MCF5206E_CSCR_WS9 (0x2400)
/* 9 Wait States */
301
#define MCF5206E_CSCR_WS10 (0x2800)
/* 10 Wait States */
302
#define MCF5206E_CSCR_WS11 (0x2C00)
/* 11 Wait States */
303
#define MCF5206E_CSCR_WS12 (0x3000)
/* 12 Wait States */
304
#define MCF5206E_CSCR_WS13 (0x3400)
/* 13 Wait States */
305
#define MCF5206E_CSCR_WS14 (0x3800)
/* 14 Wait States */
306
#define MCF5206E_CSCR_WS15 (0x3C00)
/* 15 Wait States */
307
#define MCF5206E_CSCR_BRST (0x0200)
/* Burst Enable */
308
#define MCF5206E_CSCR_AA (0x0100)
/* Coldfire Core Auto Acknowledge
309
Enable */
310
#define MCF5206E_CSCR_PS (0x00C0)
/* Port Size */
311
#define MCF5206E_CSCR_PS_S (6)
312
#define MCF5206E_CSCR_PS_32 (0x0000)
/* Port Size = 32 bits */
313
#define MCF5206E_CSCR_PS_8 (0x0040)
/* Port Size = 8 bits */
314
#define MCF5206E_CSCR_PS_16 (0x0080)
/* Port Size = 16 bits */
315
#define MCF5206E_CSCR_EMAA (0x0020)
/* External Master Automatic Acknowledge
316
Enable */
317
#define MCF5206E_CSCR_ASET (0x0010)
/* Address Setup Enable */
318
#define MCF5206E_CSCR_WRAH (0x0008)
/* Write Address Hold Enable */
319
#define MCF5206E_CSCR_RDAH (0x0004)
/* Read Address Hold Enable */
320
#define MCF5206E_CSCR_WR (0x0002)
/* Write Enable */
321
#define MCF5206E_CSCR_RD (0x0001)
/* Read Enable */
322
323
/* Default Memory Control Register */
324
#define MCF5206E_DMCR(mbar) MCF5206E_REG16(mbar, 0x0C6)
325
326
/*** Parallel Port (GPIO) Module -- MCF5206e User's Manual, Chapter 10 ***/
327
328
/* Port A Data Direction Register */
329
#define MCF5206E_PPDDR(mbar) MCF5206E_REG8(mbar,0x1C5)
330
331
/* Port A Data Register */
332
#define MCF5206E_PPDAT(mbar) MCF5206E_REG8(mbar,0x1C9)
333
334
#define MCF5206E_PP_DAT0 (0x01)
335
#define MCF5206E_PP_DAT1 (0x02)
336
#define MCF5206E_PP_DAT2 (0x04)
337
#define MCF5206E_PP_DAT3 (0x08)
338
#define MCF5206E_PP_DAT4 (0x10)
339
#define MCF5206E_PP_DAT5 (0x20)
340
#define MCF5206E_PP_DAT6 (0x40)
341
#define MCF5206E_PP_DAT7 (0x80)
342
343
/*** DRAM Controller -- MCF5206e User's Manual, Chapter 11 ***/
344
345
/* DRAM Controller Refresh Register */
346
#define MCF5206E_DCRR(mbar) MCF5206E_REG16(mbar,0x046)
347
348
/* DRAM Controller Timing Register */
349
#define MCF5206E_DCTR(mbar) MCF5206E_REG16(mbar,0x04A)
350
#define MCF5206E_DCTR_DAEM (0x8000)
/* Drive Multiplexed Address During
351
External Master DRAM Transfers */
352
#define MCF5206E_DCTR_EDO (0x4000)
/* Extended Data-Out Enable */
353
#define MCF5206E_DCTR_RCD (0x1000)
/* RAS-to-CAS Delay Time */
354
#define MCF5206E_DCTR_RSH (0x0600)
/* RAS Hold Time */
355
#define MCF5206E_DCTR_RSH_0 (0x0000)
/* See User's Manual for details */
356
#define MCF5206E_DCTR_RSH_1 (0x0200)
357
#define MCF5206E_DCTR_RSH_2 (0x0400)
358
#define MCF5206E_DCTR_RP (0x0060)
/* RAS Precharge Time */
359
#define MCF5206E_DCTR_RP_15 (0x0000)
/* RAS Precharges for 1.5 system clks */
360
#define MCF5206E_DCTR_RP_25 (0x0020)
/* RAS Precharges for 2.5 system clks */
361
#define MCF5206E_DCTR_RP_35 (0x0040)
/* RAS Precharges for 3.5 system clks */
362
#define MCF5206E_DCTR_CAS (0x0008)
/* Column Address Strobe Time */
363
#define MCF5206E_DCTR_CP (0x0002)
/* CAS Precharge Time */
364
#define MCF5206E_DCTR_CSR (0x0001)
/* CAS Setup Time for CAS before RAS
365
refresh */
366
367
/* DRAM Controller Address Registers */
368
#define MCF5206E_DCAR(mbar,bank) MCF5206E_REG16(mbar,0x4C + ((bank) * 12))
369
370
/* DRAM Controller Mask Registers */
371
#define MCF5206E_DCMR(mbar,bank) MCF5206E_REG32(mbar,0x50 + ((bank) * 12))
372
#define MCF5206E_DCMR_BAM (0xffff0000)
/* Base Address Mask */
373
#define MCF5206E_DCMR_BAM_S (16)
374
#define MCF5206E_DCMR_MASK_256M (0x0FFE0000)
375
#define MCF5206E_DCMR_MASK_128M (0x07FE0000)
376
#define MCF5206E_DCMR_MASK_64M (0x03FE0000)
377
#define MCF5206E_DCMR_MASK_32M (0x01FE0000)
378
#define MCF5206E_DCMR_MASK_16M (0x00FE0000)
379
#define MCF5206E_DCMR_MASK_8M (0x007E0000)
380
#define MCF5206E_DCMR_MASK_4M (0x003E0000)
381
#define MCF5206E_DCMR_MASK_2M (0x001E0000)
382
#define MCF5206E_DCMR_MASK_1M (0x000E0000)
383
#define MCF5206E_DCMR_MASK_1024K (0x000E0000)
384
#define MCF5206E_DCMR_MASK_512K (0x00060000)
385
#define MCF5206E_DCMR_MASK_256K (0x00020000)
386
#define MCF5206E_DCMR_MASK_128K (0x00000000)
387
#define MCF5206E_DCMR_SC (0x00000010)
/* Supervisor Code Space Mask */
388
#define MCF5206E_DCMR_SD (0x00000008)
/* Supervisor Data Space Mask */
389
#define MCF5206E_DCMR_UC (0x00000004)
/* User Code Space Mask */
390
#define MCF5206E_DCMR_UD (0x00000002)
/* User Data Space Mask */
391
392
/* DRAM Controller Control Register */
393
#define MCF5206E_DCCR(mbar,bank) MCF5206E_REG8(mbar, 0x57 + ((bank) * 12))
394
#define MCF5206E_DCCR_PS (0xC0)
/* Port Size */
395
#define MCF5206E_DCCR_PS_32 (0x00)
/* 32 bit Port Size */
396
#define MCF5206E_DCCR_PS_8 (0x40)
/* 8 bit Port Size */
397
#define MCF5206E_DCCR_PS_16 (0x80)
/* 16 bit Port Size */
398
#define MCF5206E_DCCR_BPS (0x30)
/* Bank Page Size */
399
#define MCF5206E_DCCR_BPS_512 (0x00)
/* 512 Byte Page Size */
400
#define MCF5206E_DCCR_BPS_1K (0x10)
/* 1 KByte Page Size */
401
#define MCF5206E_DCCR_BPS_2K (0x20)
/* 2 KByte Page Size */
402
#define MCF5206E_DCCR_PM (0x0C)
/* Page Mode Select */
403
#define MCF5206E_DCCR_PM_NORMAL (0x00)
/* Normal Mode */
404
#define MCF5206E_DCCR_PM_BURSTP (0x04)
/* Burst Page Mode */
405
#define MCF5206E_DCCR_PM_FASTP (0x0C)
/* Fast Page Mode */
406
#define MCF5206E_DCCR_WR (0x02)
/* Write Enable */
407
#define MCF5206E_DCCR_RD (0x01)
/* Read Enable */
408
409
/*** UART Module -- MCF5206e User's Manual, Chapter 12 ***/
410
411
#define MCF5206E_UART_CHANNELS (2)
412
/* UART Mode Register */
413
#define MCF5206E_UMR(mbar,n) MCF5206E_REG8(mbar,0x140 + (((n)-1) * 0x40))
414
#define MCF5206E_UMR1_RXRTS (0x80)
/* Receiver Request-to-Send
415
Control */
416
#define MCF5206E_UMR1_RXIRQ (0x40)
/* Receiver Interrupt Select */
417
#define MCF5206E_UMR1_ERR (0x20)
/* Error Mode */
418
#define MCF5206E_UMR1_PM (0x1C)
/* Parity Mode, Parity Type */
419
#define MCF5206E_UMR1_PM_EVEN (0x00)
/* Even Parity */
420
#define MCF5206E_UMR1_PM_ODD (0x04)
/* Odd Parity */
421
#define MCF5206E_UMR1_PM_FORCE_LOW (0x08)
/* Force parity low */
422
#define MCF5206E_UMR1_PM_FORCE_HIGH (0x0C)
/* Force parity high */
423
#define MCF5206E_UMR1_PM_NO_PARITY (0x10)
/* No Parity */
424
#define MCF5206E_UMR1_PM_MULTI_DATA (0x18)
/* Multidrop mode - data char */
425
#define MCF5206E_UMR1_PM_MULTI_ADDR (0x1C)
/* Multidrop mode - addr char */
426
#define MCF5206E_UMR1_BC (0x03)
/* Bits per Character */
427
#define MCF5206E_UMR1_BC_5 (0x00)
/* 5 bits per character */
428
#define MCF5206E_UMR1_BC_6 (0x01)
/* 6 bits per character */
429
#define MCF5206E_UMR1_BC_7 (0x02)
/* 7 bits per character */
430
#define MCF5206E_UMR1_BC_8 (0x03)
/* 8 bits per character */
431
432
#define MCF5206E_UMR2_CM (0xC0)
/* Channel Mode */
433
#define MCF5206E_UMR2_CM_NORMAL (0x00)
/* Normal Mode */
434
#define MCF5206E_UMR2_CM_AUTO_ECHO (0x40)
/* Automatic Echo Mode */
435
#define MCF5206E_UMR2_CM_LOCAL_LOOP (0x80)
/* Local Loopback Mode */
436
#define MCF5206E_UMR2_CM_REMOTE_LOOP (0xC0)
/* Remote Loopback Modde */
437
#define MCF5206E_UMR2_TXRTS (0x20)
/* Transmitter Ready-to-Send op */
438
#define MCF5206E_UMR2_TXCTS (0x10)
/* Transmitter Clear-to-Send op */
439
#define MCF5206E_UMR2_SB (0x0F)
/* Stop Bit Length */
440
#define MCF5206E_UMR2_SB_1 (0x07)
/* 1 Stop Bit for 6-8 bits char */
441
#define MCF5206E_UMR2_SB_15 (0x08)
/* 1.5 Stop Bits for 6-8 bits chr*/
442
#define MCF5206E_UMR2_SB_2 (0x0F)
/* 2 Stop Bits for 6-8 bits char */
443
#define MCF5206E_UMR2_SB5_1 (0x00)
/* 1 Stop Bits for 5 bit char */
444
#define MCF5206E_UMR2_SB5_15 (0x07)
/* 1.5 Stop Bits for 5 bit char */
445
#define MCF5206E_UMR2_SB5_2 (0x0F)
/* 2 Stop Bits for 5 bit char */
446
447
/* UART Status Register (read only) */
448
#define MCF5206E_USR(mbar,n) MCF5206E_REG8(mbar,0x144 + (((n)-1) * 0x40))
449
#define MCF5206E_USR_RB (0x80)
/* Received Break */
450
#define MCF5206E_USR_FE (0x40)
/* Framing Error */
451
#define MCF5206E_USR_PE (0x20)
/* Parity Error */
452
#define MCF5206E_USR_OE (0x10)
/* Overrun Error */
453
#define MCF5206E_USR_TXEMP (0x08)
/* Transmitter Empty */
454
#define MCF5206E_USR_TXRDY (0x04)
/* Transmitter Ready */
455
#define MCF5206E_USR_FFULL (0x02)
/* FIFO Full */
456
#define MCF5206E_USR_RXRDY (0x01)
/* Receiver Ready */
457
458
/* UART Clock Select Register (write only) */
459
#define MCF5206E_UCSR(mbar,n) MCF5206E_REG8(mbar,0x144 + (((n)-1) * 0x40))
460
#define MCF5206E_UCSR_RCS (0xF0)
/* Receiver Clock Select */
461
#define MCF5206E_UCSR_RCS_TIMER (0xD0)
/* Timer */
462
#define MCF5206E_UCSR_RCS_EXT16 (0xE0)
/* External clk x16 */
463
#define MCF5206E_UCSR_RCS_EXT (0xF0)
/* External clk x1 */
464
#define MCF5206E_UCSR_TCS (0x0F)
/* Transmitter Clock Select */
465
#define MCF5206E_UCSR_TCS_TIMER (0x0D)
/* Timer */
466
#define MCF5206E_UCSR_TCS_EXT16 (0x0E)
/* External clk x16 */
467
#define MCF5206E_UCSR_TCS_EXT (0x0F)
/* External clk x1 */
468
469
/* UART Command Register (write only) */
470
#define MCF5206E_UCR(mbar,n) MCF5206E_REG8(mbar,0x148 + (((n)-1) * 0x40))
471
#define MCF5206E_UCR_MISC (0x70)
/* Miscellaneous Commands: */
472
#define MCF5206E_UCR_MISC_NOP (0x00)
/* No Command */
473
#define MCF5206E_UCR_MISC_RESET_MR (0x10)
/* Reset Mode Register Ptr */
474
#define MCF5206E_UCR_MISC_RESET_RX (0x20)
/* Reset Receiver */
475
#define MCF5206E_UCR_MISC_RESET_TX (0x30)
/* Reset Transmitter */
476
#define MCF5206E_UCR_MISC_RESET_ERR (0x40)
/* Reset Error Status */
477
#define MCF5206E_UCR_MISC_RESET_BRK (0x50)
/* Reset Break-Change Interrupt */
478
#define MCF5206E_UCR_MISC_START_BRK (0x60)
/* Start Break */
479
#define MCF5206E_UCR_MISC_STOP_BRK (0x70)
/* Stop Break */
480
#define MCF5206E_UCR_TC (0x0C)
/* Transmitter Commands: */
481
#define MCF5206E_UCR_TC_NOP (0x00)
/* No Action Taken */
482
#define MCF5206E_UCR_TC_ENABLE (0x04)
/* Transmitter Enable */
483
#define MCF5206E_UCR_TC_DISABLE (0x08)
/* Transmitter Disable */
484
#define MCF5206E_UCR_RC (0x03)
/* Receiver Commands: */
485
#define MCF5206E_UCR_RC_NOP (0x00)
/* No Action Taken */
486
#define MCF5206E_UCR_RC_ENABLE (0x01)
/* Receiver Enable */
487
#define MCF5206E_UCR_RC_DISABLE (0x02)
/* Receiver Disable */
488
489
/* UART Receive Buffer (read only) */
490
#define MCF5206E_URB(mbar,n) MCF5206E_REG8(mbar,0x14C + (((n)-1) * 0x40))
491
492
/* UART Transmit Buffer (write only) */
493
#define MCF5206E_UTB(mbar,n) MCF5206E_REG8(mbar,0x14C + (((n)-1) * 0x40))
494
495
/* UART Input Port Change Register (read only) */
496
#define MCF5206E_UIPCR(mbar,n) MCF5206E_REG8(mbar,0x150 + (((n)-1) * 0x40))
497
#define MCF5206E_UIPCR_COS (0x10)
/* Change of State at CTS input */
498
#define MCF5206E_UIPCR_CTS (0x01)
/* Current State of CTS */
499
500
/* UART Auxiliary Control Register (write only) */
501
#define MCF5206E_UACR(mbar,n) MCF5206E_REG8(mbar,0x150 + (((n)-1) * 0x40))
502
#define MCF5206E_UACR_IEC (0x01)
/* Input Enable Control - generate interrupt
503
on CTS change */
504
505
/* UART Interrupt Status Register (read only) */
506
#define MCF5206E_UISR(mbar,n) MCF5206E_REG8(mbar,0x154 + (((n)-1) * 0x40))
507
#define MCF5206E_UISR_COS (0x80)
/* Change of State has occured at CTS */
508
#define MCF5206E_UISR_DB (0x04)
/* Delta Break */
509
#define MCF5206E_UISR_RXRDY (0x02)
/* Receiver Ready or FIFO Full */
510
#define MCF5206E_UISR_TXRDY (0x01)
/* Transmitter Ready */
511
512
/* UART Interrupt Mask Register (write only) */
513
#define MCF5206E_UIMR(mbar,n) MCF5206E_REG8(mbar,0x154 + (((n)-1) * 0x40))
514
#define MCF5206E_UIMR_COS (0x80)
/* Change of State interrupt enable */
515
#define MCF5206E_UIMR_DB (0x04)
/* Delta Break interrupt enable */
516
#define MCF5206E_UIMR_FFULL (0x02)
/* FIFO Full interrupt enable */
517
#define MCF5206E_UIMR_TXRDY (0x01)
/* Transmitter Ready Interrupt enable */
518
519
/* UART Baud Rate Generator Prescale MSB Register */
520
#define MCF5206E_UBG1(mbar,n) MCF5206E_REG8(mbar,0x158 + (((n)-1) * 0x40))
521
522
/* UART Baud Rate Generator Prescale LSB Register */
523
#define MCF5206E_UBG2(mbar,n) MCF5206E_REG8(mbar,0x15C + (((n)-1) * 0x40))
524
525
/* UART Interrupt Vector Register */
526
#define MCF5206E_UIVR(mbar,n) MCF5206E_REG8(mbar,0x170 + (((n)-1) * 0x40))
527
528
/* UART Input Port Register (read only) */
529
#define MCF5206E_UIP(mbar,n) MCF5206E_REG8(mbar,0x174 + (((n)-1) * 0x40))
530
#define MCF5206E_UIP_CTS (0x01)
/* Current state of CTS input */
531
532
/* UART Output Port Bit Set Command (address-triggered command, write) */
533
#define MCF5206E_UOP1(mbar,n) MCF5206E_REG8(mbar,0x178 + (((n)-1) * 0x40))
534
535
/* UART Output Port Bit Reset Command (address-triggered command, write */
536
#define MCF5206E_UOP0(mbar,n) MCF5206E_REG8(mbar,0x17C + (((n)-1) * 0x40))
537
538
/*** M-BUS (I2C) Module -- MCF5206e User's Manual, Chapter 13 ***/
539
540
/* M-Bus Address Register */
541
#define MCF5206E_MADR(mbar) MCF5206E_REG8(mbar, 0x1E0)
542
543
/* M-Bus Frequency Divider Register */
544
#define MCF5206E_MFDR(mbar) MCF5206E_REG8(mbar, 0x1E4)
545
546
/* M-Bus Control Register */
547
#define MCF5206E_MBCR(mbar) MCF5206E_REG8(mbar, 0x1E8)
548
#define MCF5206E_MBCR_MEN (0x80)
/* M-Bus Enable */
549
#define MCF5206E_MBCR_MIEN (0x40)
/* M-Bus Interrupt Enable */
550
#define MCF5206E_MBCR_MSTA (0x20)
/* Master Mode Selection */
551
#define MCF5206E_MBCR_MTX (0x10)
/* Transmit Mode Selection */
552
#define MCF5206E_MBCR_TXAK (0x08)
/* Transmit Acknowledge Enable */
553
#define MCF5206E_MBCR_RSTA (0x04)
/* Repeat Start */
554
555
/* M-Bus Status Register */
556
#define MCF5206E_MBSR(mbar) MCF5206E_REG8(mbar, 0x1EC)
557
#define MCF5206E_MBSR_MCF (0x80)
/* Data Transferring Bit */
558
#define MCF5206E_MBSR_MAAS (0x40)
/* Addressed as a Slave Bit */
559
#define MCF5206E_MBSR_MBB (0x20)
/* Bus Busy Bit */
560
#define MCF5206E_MBSR_MAL (0x10)
/* Arbitration Lost */
561
#define MCF5206E_MBSR_SRW (0x04)
/* Slave Read/Write */
562
#define MCF5206E_MBSR_MIF (0x02)
/* MBus Interrupt pending */
563
#define MCF5206E_MBSR_RXAK (0x01)
/* Received Acknowledge */
564
565
/* M-Bus Data I/O Register */
566
#define MCF5206E_MBDR(mbar) MCF5206E_REG8(mbar, 0x1F0)
567
568
/*** Timer Module -- MCF5206e User's Manual, Chapter 14 ***/
569
570
/* Timer Mode Register */
571
#define MCF5206E_TMR(mbar,n) MCF5206E_REG16(mbar, 0x100 + (((n)-1)*0x20))
572
#define MCF5206E_TMR_PS (0xFF00)
/* Prescaler Value */
573
#define MCF5206E_TMR_PS_S (8)
574
#define MCF5206E_TMR_CE (0x00C0)
/* Capture Edge and Enable
575
Interrupt */
576
#define MCF5206E_TMR_CE_ANY (0x00C0)
/* Capture on any edge */
577
#define MCF5206E_TMR_CE_FALL (0x0080)
/* Capture on falling edge only */
578
#define MCF5206E_TMR_CE_RISE (0x0040)
/* Capture on rising edge only */
579
#define MCF5206E_TMR_CE_NONE (0x0000)
/* Disable Interrupt on capture
580
event */
581
#define MCF5206E_TMR_OM (0x0020)
/* Output Mode - Toggle output */
582
#define MCF5206E_TMR_ORI (0x0010)
/* Output Reference Interrupt
583
Enable */
584
#define MCF5206E_TMR_FRR (0x0008)
/* Free Run/Restart */
585
#define MCF5206E_TMR_ICLK (0x0006)
/* Input Clock Source */
586
#define MCF5206E_TMR_ICLK_TIN (0x0006)
/* TIN pin (falling edge) */
587
#define MCF5206E_TMR_ICLK_DIV16 (0x0004)
/* Master system clock divided
588
by 16 */
589
#define MCF5206E_TMR_ICLK_MSCLK (0x0002)
/* Master System Clock */
590
#define MCF5206E_TMR_ICLK_STOP (0x0000)
/* Stops counter */
591
#define MCF5206E_TMR_RST (0x0001)
/* Reset/Enable Timer */
592
593
/* Timer Reference Register */
594
#define MCF5206E_TRR(mbar,n) MCF5206E_REG16(mbar, 0x104 + (((n)-1)*0x20))
595
596
/* Timer Capture Register */
597
#define MCF5206E_TCR(mbar,n) MCF5206E_REG16(mbar, 0x108 + (((n)-1)*0x20))
598
599
/* Timer Counter Register */
600
#define MCF5206E_TCN(mbar,n) MCF5206E_REG16(mbar, 0x10C + (((n)-1)*0x20))
601
602
/* Timer Event Register */
603
#define MCF5206E_TER(mbar,n) MCF5206E_REG8(mbar, 0x111 + (((n)-1)*0x20))
604
#define MCF5206E_TER_REF (0x02)
/* Output Reference Event */
605
#define MCF5206E_TER_CAP (0x01)
/* Capture Event */
606
607
608
609
#endif
Generated by
1.18.0