summaryrefslogtreecommitdiff
path: root/arch/blackfin/include/asm/mach-common/bits/ebiu.h
blob: 7c0c569acf9cccb17c4c806e9685bbabdeb22792 (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
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
/*
 * EBIU Masks
 */

#ifndef __BFIN_PERIPHERAL_EBIU__
#define __BFIN_PERIPHERAL_EBIU__

/* EBIU_AMGCTL Masks */
#define AMCKEN		0x0001		/* Enable CLKOUT */
#define AMBEN_NONE	0x0000		/* All Banks Disabled */
#define AMBEN_B0	0x0002		/* Enable Asynchronous Memory Bank 0 only */
#define AMBEN_B0_B1	0x0004		/* Enable Asynchronous Memory Banks 0 & 1 only */
#define AMBEN_B0_B1_B2	0x0006		/* Enable Asynchronous Memory Banks 0,/ 1, and 2 */
#define AMBEN_ALL	0x0008		/* Enable Asynchronous Memory Banks (all) 0, 1, 2, and 3 */
#define B0_PEN		0x0010		/* Enable 16-bit packing Bank 0 */
#define B1_PEN		0x0020		/* Enable 16-bit packing Bank 1 */
#define B2_PEN		0x0040		/* Enable 16-bit packing Bank 2 */
#define B3_PEN		0x0080		/* Enable 16-bit packing Bank 3 */
#define CDPRIO		0x0100		/* Core has priority over DMA for external accesses */

/* EBIU_AMGCTL Bit Positions */
#define AMCKEN_P	0x00000000	/* Enable CLKOUT */
#define AMBEN_P0	0x00000001	/* Asynchronous Memory Enable, 000 - banks 0-3 disabled, 001 - Bank 0 enabled */
#define AMBEN_P1	0x00000002	/* Asynchronous Memory Enable, 010 - banks 0&1 enabled, 011 - banks 0-3 enabled */
#define AMBEN_P2	0x00000003	/* Asynchronous Memory Enable, 1xx - All banks (bank 0, 1, 2, and 3) enabled */
#define B0_PEN_P	0x00000004	/* Enable 16-bit packing Bank 0 */
#define B1_PEN_P	0x00000005	/* Enable 16-bit packing Bank 1 */
#define B2_PEN_P	0x00000006	/* Enable 16-bit packing Bank 2 */
#define B3_PEN_P	0x00000007	/* Enable 16-bit packing Bank 3 */
#define CDPRIO_P	0x00000008	/* Core has priority over DMA for external accesses */

/* EBIU_AMBCTL0 Masks */
#define B0RDYEN		0x00000001	/* Bank 0 RDY Enable, 0=disable, 1=enable */
#define B0RDYPOL	0x00000002	/* Bank 0 RDY Active high, 0=active low, 1=active high */
#define B0TT_1		0x00000004	/* Bank 0 Transition Time from Read to Write = 1 cycle */
#define B0TT_2		0x00000008	/* Bank 0 Transition Time from Read to Write = 2 cycles */
#define B0TT_3		0x0000000C	/* Bank 0 Transition Time from Read to Write = 3 cycles */
#define B0TT_4		0x00000000	/* Bank 0 Transition Time from Read to Write = 4 cycles */
#define B0ST_1		0x00000010	/* Bank 0 Setup Time from AOE asserted to Read/Write asserted=1 cycle */
#define B0ST_2		0x00000020	/* Bank 0 Setup Time from AOE asserted to Read/Write asserted=2 cycles */
#define B0ST_3		0x00000030	/* Bank 0 Setup Time from AOE asserted to Read/Write asserted=3 cycles */
#define B0ST_4		0x00000000	/* Bank 0 Setup Time from AOE asserted to Read/Write asserted=4 cycles */
#define B0HT_1		0x00000040	/* Bank 0 Hold Time from Read/Write deasserted to AOE deasserted = 1 cycle */
#define B0HT_2		0x00000080	/* Bank 0 Hold Time from Read/Write deasserted to AOE deasserted = 2 cycles */
#define B0HT_3		0x000000C0	/* Bank 0 Hold Time from Read/Write deasserted to AOE deasserted = 3 cycles */
#define B0HT_0		0x00000000	/* Bank 0 Hold Time from Read/Write deasserted to AOE deasserted = 0 cycles */
#define B0RAT_1		0x00000100	/* Bank 0 Read Access Time = 1 cycle */
#define B0RAT_2		0x00000200	/* Bank 0 Read Access Time = 2 cycles */
#define B0RAT_3		0x00000300	/* Bank 0 Read Access Time = 3 cycles */
#define B0RAT_4		0x00000400	/* Bank 0 Read Access Time = 4 cycles */
#define B0RAT_5		0x00000500	/* Bank 0 Read Access Time = 5 cycles */
#define B0RAT_6		0x00000600	/* Bank 0 Read Access Time = 6 cycles */
#define B0RAT_7		0x00000700	/* Bank 0 Read Access Time = 7 cycles */
#define B0RAT_8		0x00000800	/* Bank 0 Read Access Time = 8 cycles */
#define B0RAT_9		0x00000900	/* Bank 0 Read Access Time = 9 cycles */
#define B0RAT_10	0x00000A00	/* Bank 0 Read Access Time = 10 cycles */
#define B0RAT_11	0x00000B00	/* Bank 0 Read Access Time = 11 cycles */
#define B0RAT_12	0x00000C00	/* Bank 0 Read Access Time = 12 cycles */
#define B0RAT_13	0x00000D00	/* Bank 0 Read Access Time = 13 cycles */
#define B0RAT_14	0x00000E00	/* Bank 0 Read Access Time = 14 cycles */
#define B0RAT_15	0x00000F00	/* Bank 0 Read Access Time = 15 cycles */
#define B0WAT_1		0x00001000	/* Bank 0 Write Access Time = 1 cycle */
#define B0WAT_2		0x00002000	/* Bank 0 Write Access Time = 2 cycles */
#define B0WAT_3		0x00003000	/* Bank 0 Write Access Time = 3 cycles */
#define B0WAT_4		0x00004000	/* Bank 0 Write Access Time = 4 cycles */
#define B0WAT_5		0x00005000	/* Bank 0 Write Access Time = 5 cycles */
#define B0WAT_6		0x00006000	/* Bank 0 Write Access Time = 6 cycles */
#define B0WAT_7		0x00007000	/* Bank 0 Write Access Time = 7 cycles */
#define B0WAT_8		0x00008000	/* Bank 0 Write Access Time = 8 cycles */
#define B0WAT_9		0x00009000	/* Bank 0 Write Access Time = 9 cycles */
#define B0WAT_10	0x0000A000	/* Bank 0 Write Access Time = 10 cycles */
#define B0WAT_11	0x0000B000	/* Bank 0 Write Access Time = 11 cycles */
#define B0WAT_12	0x0000C000	/* Bank 0 Write Access Time = 12 cycles */
#define B0WAT_13	0x0000D000	/* Bank 0 Write Access Time = 13 cycles */
#define B0WAT_14	0x0000E000	/* Bank 0 Write Access Time = 14 cycles */
#define B0WAT_15	0x0000F000	/* Bank 0 Write Access Time = 15 cycles */
#define B1RDYEN		0x00010000	/* Bank 1 RDY enable, 0=disable, 1=enable */
#define B1RDYPOL	0x00020000	/* Bank 1 RDY Active high, 0=active low, 1=active high */
#define B1TT_1		0x00040000	/* Bank 1 Transition Time from Read to Write = 1 cycle */
#define B1TT_2		0x00080000	/* Bank 1 Transition Time from Read to Write = 2 cycles */
#define B1TT_3		0x000C0000	/* Bank 1 Transition Time from Read to Write = 3 cycles */
#define B1TT_4		0x00000000	/* Bank 1 Transition Time from Read to Write = 4 cycles */
#define B1ST_1		0x00100000	/* Bank 1 Setup Time from AOE asserted to Read or Write asserted = 1 cycle */
#define B1ST_2		0x00200000	/* Bank 1 Setup Time from AOE asserted to Read or Write asserted = 2 cycles */
#define B1ST_3		0x00300000	/* Bank 1 Setup Time from AOE asserted to Read or Write asserted = 3 cycles */
#define B1ST_4		0x00000000	/* Bank 1 Setup Time from AOE asserted to Read or Write asserted = 4 cycles */
#define B1HT_1		0x00400000	/* Bank 1 Hold Time from Read or Write deasserted to AOE deasserted = 1 cycle */
#define B1HT_2		0x00800000	/* Bank 1 Hold Time from Read or Write deasserted to AOE deasserted = 2 cycles */
#define B1HT_3		0x00C00000	/* Bank 1 Hold Time from Read or Write deasserted to AOE deasserted = 3 cycles */
#define B1HT_0		0x00000000	/* Bank 1 Hold Time from Read or Write deasserted to AOE deasserted = 0 cycles */
#define B1RAT_1		0x01000000	/* Bank 1 Read Access Time = 1 cycle */
#define B1RAT_2		0x02000000	/* Bank 1 Read Access Time = 2 cycles */
#define B1RAT_3		0x03000000	/* Bank 1 Read Access Time = 3 cycles */
#define B1RAT_4		0x04000000	/* Bank 1 Read Access Time = 4 cycles */
#define B1RAT_5		0x05000000	/* Bank 1 Read Access Time = 5 cycles */
#define B1RAT_6		0x06000000	/* Bank 1 Read Access Time = 6 cycles */
#define B1RAT_7		0x07000000	/* Bank 1 Read Access Time = 7 cycles */
#define B1RAT_8		0x08000000	/* Bank 1 Read Access Time = 8 cycles */
#define B1RAT_9		0x09000000	/* Bank 1 Read Access Time = 9 cycles */
#define B1RAT_10	0x0A000000	/* Bank 1 Read Access Time = 10 cycles */
#define B1RAT_11	0x0B000000	/* Bank 1 Read Access Time = 11 cycles */
#define B1RAT_12	0x0C000000	/* Bank 1 Read Access Time = 12 cycles */
#define B1RAT_13	0x0D000000	/* Bank 1 Read Access Time = 13 cycles */
#define B1RAT_14	0x0E000000	/* Bank 1 Read Access Time = 14 cycles */
#define B1RAT_15	0x0F000000	/* Bank 1 Read Access Time = 15 cycles */
#define B1WAT_1		0x10000000	/* Bank 1 Write Access Time = 1 cycle */
#define B1WAT_2		0x20000000	/* Bank 1 Write Access Time = 2 cycles */
#define B1WAT_3		0x30000000	/* Bank 1 Write Access Time = 3 cycles */
#define B1WAT_4		0x40000000	/* Bank 1 Write Access Time = 4 cycles */
#define B1WAT_5		0x50000000	/* Bank 1 Write Access Time = 5 cycles */
#define B1WAT_6		0x60000000	/* Bank 1 Write Access Time = 6 cycles */
#define B1WAT_7		0x70000000	/* Bank 1 Write Access Time = 7 cycles */
#define B1WAT_8		0x80000000	/* Bank 1 Write Access Time = 8 cycles */
#define B1WAT_9		0x90000000	/* Bank 1 Write Access Time = 9 cycles */
#define B1WAT_10	0xA0000000	/* Bank 1 Write Access Time = 10 cycles */
#define B1WAT_11	0xB0000000	/* Bank 1 Write Access Time = 11 cycles */
#define B1WAT_12	0xC0000000	/* Bank 1 Write Access Time = 12 cycles */
#define B1WAT_13	0xD0000000	/* Bank 1 Write Access Time = 13 cycles */
#define B1WAT_14	0xE0000000	/* Bank 1 Write Access Time = 14 cycles */
#define B1WAT_15	0xF0000000	/* Bank 1 Write Access Time = 15 cycles */

/* EBIU_AMBCTL1 Masks */
#define B2RDYEN		0x00000001	/* Bank 2 RDY Enable, 0=disable, 1=enable */
#define B2RDYPOL	0x00000002	/* Bank 2 RDY Active high, 0=active low, 1=active high */
#define B2TT_1		0x00000004	/* Bank 2 Transition Time from Read to Write = 1 cycle */
#define B2TT_2		0x00000008	/* Bank 2 Transition Time from Read to Write = 2 cycles */
#define B2TT_3		0x0000000C	/* Bank 2 Transition Time from Read to Write = 3 cycles */
#define B2TT_4		0x00000000	/* Bank 2 Transition Time from Read to Write = 4 cycles */
#define B2ST_1		0x00000010	/* Bank 2 Setup Time from AOE asserted to Read or Write asserted = 1 cycle */
#define B2ST_2		0x00000020	/* Bank 2 Setup Time from AOE asserted to Read or Write asserted = 2 cycles */
#define B2ST_3		0x00000030	/* Bank 2 Setup Time from AOE asserted to Read or Write asserted = 3 cycles */
#define B2ST_4		0x00000000	/* Bank 2 Setup Time from AOE asserted to Read or Write asserted = 4 cycles */
#define B2HT_1		0x00000040	/* Bank 2 Hold Time from Read or Write deasserted to AOE deasserted = 1 cycle */
#define B2HT_2		0x00000080	/* Bank 2 Hold Time from Read or Write deasserted to AOE deasserted = 2 cycles */
#define B2HT_3		0x000000C0	/* Bank 2 Hold Time from Read or Write deasserted to AOE deasserted = 3 cycles */
#define B2HT_0		0x00000000	/* Bank 2 Hold Time from Read or Write deasserted to AOE deasserted = 0 cycles */
#define B2RAT_1		0x00000100	/* Bank 2 Read Access Time = 1 cycle */
#define B2RAT_2		0x00000200	/* Bank 2 Read Access Time = 2 cycles */
#define B2RAT_3		0x00000300	/* Bank 2 Read Access Time = 3 cycles */
#define B2RAT_4		0x00000400	/* Bank 2 Read Access Time = 4 cycles */
#define B2RAT_5		0x00000500	/* Bank 2 Read Access Time = 5 cycles */
#define B2RAT_6		0x00000600	/* Bank 2 Read Access Time = 6 cycles */
#define B2RAT_7		0x00000700	/* Bank 2 Read Access Time = 7 cycles */
#define B2RAT_8		0x00000800	/* Bank 2 Read Access Time = 8 cycles */
#define B2RAT_9		0x00000900	/* Bank 2 Read Access Time = 9 cycles */
#define B2RAT_10	0x00000A00	/* Bank 2 Read Access Time = 10 cycles */
#define B2RAT_11	0x00000B00	/* Bank 2 Read Access Time = 11 cycles */
#define B2RAT_12	0x00000C00	/* Bank 2 Read Access Time = 12 cycles */
#define B2RAT_13	0x00000D00	/* Bank 2 Read Access Time = 13 cycles */
#define B2RAT_14	0x00000E00	/* Bank 2 Read Access Time = 14 cycles */
#define B2RAT_15	0x00000F00	/* Bank 2 Read Access Time = 15 cycles */
#define B2WAT_1		0x00001000	/* Bank 2 Write Access Time = 1 cycle */
#define B2WAT_2		0x00002000	/* Bank 2 Write Access Time = 2 cycles */
#define B2WAT_3		0x00003000	/* Bank 2 Write Access Time = 3 cycles */
#define B2WAT_4		0x00004000	/* Bank 2 Write Access Time = 4 cycles */
#define B2WAT_5		0x00005000	/* Bank 2 Write Access Time = 5 cycles */
#define B2WAT_6		0x00006000	/* Bank 2 Write Access Time = 6 cycles */
#define B2WAT_7		0x00007000	/* Bank 2 Write Access Time = 7 cycles */
#define B2WAT_8		0x00008000	/* Bank 2 Write Access Time = 8 cycles */
#define B2WAT_9		0x00009000	/* Bank 2 Write Access Time = 9 cycles */
#define B2WAT_10	0x0000A000	/* Bank 2 Write Access Time = 10 cycles */
#define B2WAT_11	0x0000B000	/* Bank 2 Write Access Time = 11 cycles */
#define B2WAT_12	0x0000C000	/* Bank 2 Write Access Time = 12 cycles */
#define B2WAT_13	0x0000D000	/* Bank 2 Write Access Time = 13 cycles */
#define B2WAT_14	0x0000E000	/* Bank 2 Write Access Time = 14 cycles */
#define B2WAT_15	0x0000F000	/* Bank 2 Write Access Time = 15 cycles */
#define B3RDYEN		0x00010000	/* Bank 3 RDY enable, 0=disable, 1=enable */
#define B3RDYPOL	0x00020000	/* Bank 3 RDY Active high, 0=active low, 1=active high */
#define B3TT_1		0x00040000	/* Bank 3 Transition Time from Read to Write = 1 cycle */
#define B3TT_2		0x00080000	/* Bank 3 Transition Time from Read to Write = 2 cycles */
#define B3TT_3		0x000C0000	/* Bank 3 Transition Time from Read to Write = 3 cycles */
#define B3TT_4		0x00000000	/* Bank 3 Transition Time from Read to Write = 4 cycles */
#define B3ST_1		0x00100000	/* Bank 3 Setup Time from AOE asserted to Read or Write asserted = 1 cycle */
#define B3ST_2		0x00200000	/* Bank 3 Setup Time from AOE asserted to Read or Write asserted = 2 cycles */
#define B3ST_3		0x00300000	/* Bank 3 Setup Time from AOE asserted to Read or Write asserted = 3 cycles */
#define B3ST_4		0x00000000	/* Bank 3 Setup Time from AOE asserted to Read or Write asserted = 4 cycles */
#define B3HT_1		0x00400000	/* Bank 3 Hold Time from Read or Write deasserted to AOE deasserted = 1 cycle */
#define B3HT_2		0x00800000	/* Bank 3 Hold Time from Read or Write deasserted to AOE deasserted = 2 cycles */
#define B3HT_3		0x00C00000	/* Bank 3 Hold Time from Read or Write deasserted to AOE deasserted = 3 cycles */
#define B3HT_0		0x00000000	/* Bank 3 Hold Time from Read or Write deasserted to AOE deasserted = 0 cycles */
#define B3RAT_1		0x01000000	/* Bank 3 Read Access Time = 1 cycle */
#define B3RAT_2		0x02000000	/* Bank 3 Read Access Time = 2 cycles */
#define B3RAT_3		0x03000000	/* Bank 3 Read Access Time = 3 cycles */
#define B3RAT_4		0x04000000	/* Bank 3 Read Access Time = 4 cycles */
#define B3RAT_5		0x05000000	/* Bank 3 Read Access Time = 5 cycles */
#define B3RAT_6		0x06000000	/* Bank 3 Read Access Time = 6 cycles */
#define B3RAT_7		0x07000000	/* Bank 3 Read Access Time = 7 cycles */
#define B3RAT_8		0x08000000	/* Bank 3 Read Access Time = 8 cycles */
#define B3RAT_9		0x09000000	/* Bank 3 Read Access Time = 9 cycles */
#define B3RAT_10	0x0A000000	/* Bank 3 Read Access Time = 10 cycles */
#define B3RAT_11	0x0B000000	/* Bank 3 Read Access Time = 11 cycles */
#define B3RAT_12	0x0C000000	/* Bank 3 Read Access Time = 12 cycles */
#define B3RAT_13	0x0D000000	/* Bank 3 Read Access Time = 13 cycles */
#define B3RAT_14	0x0E000000	/* Bank 3 Read Access Time = 14 cycles */
#define B3RAT_15	0x0F000000	/* Bank 3 Read Access Time = 15 cycles */
#define B3WAT_1		0x10000000	/* Bank 3 Write Access Time = 1 cycle */
#define B3WAT_2		0x20000000	/* Bank 3 Write Access Time = 2 cycles */
#define B3WAT_3		0x30000000	/* Bank 3 Write Access Time = 3 cycles */
#define B3WAT_4		0x40000000	/* Bank 3 Write Access Time = 4 cycles */
#define B3WAT_5		0x50000000	/* Bank 3 Write Access Time = 5 cycles */
#define B3WAT_6		0x60000000	/* Bank 3 Write Access Time = 6 cycles */
#define B3WAT_7		0x70000000	/* Bank 3 Write Access Time = 7 cycles */
#define B3WAT_8		0x80000000	/* Bank 3 Write Access Time = 8 cycles */
#define B3WAT_9		0x90000000	/* Bank 3 Write Access Time = 9 cycles */
#define B3WAT_10	0xA0000000	/* Bank 3 Write Access Time = 10 cycles */
#define B3WAT_11	0xB0000000	/* Bank 3 Write Access Time = 11 cycles */
#define B3WAT_12	0xC0000000	/* Bank 3 Write Access Time = 12 cycles */
#define B3WAT_13	0xD0000000	/* Bank 3 Write Access Time = 13 cycles */
#define B3WAT_14	0xE0000000	/* Bank 3 Write Access Time = 14 cycles */
#define B3WAT_15	0xF0000000	/* Bank 3 Write Access Time = 15 cycles */

/* Only available on newer parts */
#ifdef EBIU_MODE

/* EBIU_MBSCTL Bit Positions */
#define AMSB0CTL_P	0
#define AMSB1CTL_P	2
#define AMSB2CTL_P	4
#define AMSB3CTL_P	6

/* EBIU_MBSCTL Masks */
#define AMSB0CTL_MASK	(0x3 << AMSB0CTL_P)	/* Async Memory Bank 0 Control Modes */
#define AMSB0CTL_NONE	(0x0 << AMSB0CTL_P)	/* Control Mode - 00 - No logic */
#define AMSB0CTL_ARE	(0x1 << AMSB0CTL_P)	/* Control Mode - 01 - OR-ed with /ARE */
#define AMSB0CTL_AOE	(0x2 << AMSB0CTL_P)	/* Control Mode - 02 - OR-ed with /AOE */
#define AMSB0CTL_AWE	(0x3 << AMSB0CTL_P)	/* Control Mode - 03 - OR-ed with /AWE */
#define AMSB1CTL_MASK	(0x3 << AMSB1CTL_P)	/* Async Memory Bank 1 Control Modes */
#define AMSB1CTL_NONE	(0x0 << AMSB1CTL_P)	/* Control Mode - 00 - No logic */
#define AMSB1CTL_ARE	(0x1 << AMSB1CTL_P)	/* Control Mode - 01 - OR-ed with /ARE */
#define AMSB1CTL_AOE	(0x2 << AMSB1CTL_P)	/* Control Mode - 02 - OR-ed with /AOE */
#define AMSB1CTL_AWE	(0x3 << AMSB1CTL_P)	/* Control Mode - 03 - OR-ed with /AWE */
#define AMSB2CTL_MASK	(0x3 << AMSB2CTL_P)	/* Async Memory Bank 2 Control Modes */
#define AMSB2CTL_NONE	(0x0 << AMSB2CTL_P)	/* Control Mode - 00 - No logic */
#define AMSB2CTL_ARE	(0x1 << AMSB2CTL_P)	/* Control Mode - 01 - OR-ed with /ARE */
#define AMSB2CTL_AOE	(0x2 << AMSB2CTL_P)	/* Control Mode - 02 - OR-ed with /AOE */
#define AMSB2CTL_AWE	(0x3 << AMSB2CTL_P)	/* Control Mode - 03 - OR-ed with /AWE */
#define AMSB3CTL_MASK	(0x3 << AMSB3CTL_P)	/* Async Memory Bank 3 Control Modes */
#define AMSB3CTL_NONE	(0x0 << AMSB3CTL_P)	/* Control Mode - 00 - No logic */
#define AMSB3CTL_ARE	(0x1 << AMSB3CTL_P)	/* Control Mode - 01 - OR-ed with /ARE */
#define AMSB3CTL_AOE	(0x2 << AMSB3CTL_P)	/* Control Mode - 02 - OR-ed with /AOE */
#define AMSB3CTL_AWE	(0x3 << AMSB3CTL_P)	/* Control Mode - 03 - OR-ed with /AWE */

/* EBIU_MODE Bit Positions */
#define B0MODE_P	0
#define B1MODE_P	2
#define B2MODE_P	4
#define B3MODE_P	6

/* EBIU_MODE Masks */
#define B0MODE_MASK	(0x3 << B0MODE_P)	/* Async Memory Bank 0 Access Mode */
#define B0MODE_ASYNC	(0x0 << B0MODE_P)	/* Access Mode - 00 - Asynchronous Mode */
#define B0MODE_FLASH	(0x1 << B0MODE_P)	/* Access Mode - 01 - Asynchronous Flash Mode */
#define B0MODE_PAGE	(0x2 << B0MODE_P)	/* Access Mode - 10 - Asynchronous Page Mode */
#define B0MODE_BURST	(0x3 << B0MODE_P)	/* Access Mode - 11 - Synchronous (Burst) Mode */
#define B1MODE_MASK	(0x3 << B1MODE_P)	/* Async Memory Bank 1 Access Mode */
#define B1MODE_ASYNC	(0x0 << B1MODE_P)	/* Access Mode - 00 - Asynchronous Mode */
#define B1MODE_FLASH	(0x1 << B1MODE_P)	/* Access Mode - 01 - Asynchronous Flash Mode */
#define B1MODE_PAGE	(0x2 << B1MODE_P)	/* Access Mode - 10 - Asynchronous Page Mode */
#define B1MODE_BURST	(0x3 << B1MODE_P)	/* Access Mode - 11 - Synchronous (Burst) Mode */
#define B2MODE_MASK	(0x3 << B2MODE_P)	/* Async Memory Bank 2 Access Mode */
#define B2MODE_ASYNC	(0x0 << B2MODE_P)	/* Access Mode - 00 - Asynchronous Mode */
#define B2MODE_FLASH	(0x1 << B2MODE_P)	/* Access Mode - 01 - Asynchronous Flash Mode */
#define B2MODE_PAGE	(0x2 << B2MODE_P)	/* Access Mode - 10 - Asynchronous Page Mode */
#define B2MODE_BURST	(0x3 << B2MODE_P)	/* Access Mode - 11 - Synchronous (Burst) Mode */
#define B3MODE_MASK	(0x3 << B3MODE_P)	/* Async Memory Bank 3 Access Mode */
#define B3MODE_ASYNC	(0x0 << B3MODE_P)	/* Access Mode - 00 - Asynchronous Mode */
#define B3MODE_FLASH	(0x1 << B3MODE_P)	/* Access Mode - 01 - Asynchronous Flash Mode */
#define B3MODE_PAGE	(0x2 << B3MODE_P)	/* Access Mode - 10 - Asynchronous Page Mode */
#define B3MODE_BURST	(0x3 << B3MODE_P)	/* Access Mode - 11 - Synchronous (Burst) Mode */

/* EBIU_FCTL Bit Positions */
#define TESTSETLOCK_P	0
#define BCLK_P		1
#define PGWS_P		3
#define PGSZ_P		6
#define RDDL_P		7

/* EBIU_FCTL Masks */
#define TESTSETLOCK	(0x1 << TESTSETLOCK_P)	/* Test set lock */
#define BCLK_MASK	(0x3 << BCLK_P)		/* Burst clock frequency */
#define BCLK_2		(0x1 << BCLK_P)		/* Burst clock frequency - SCLK/2 */
#define BCLK_3		(0x2 << BCLK_P)		/* Burst clock frequency - SCLK/3 */
#define BCLK_4		(0x3 << BCLK_P)		/* Burst clock frequency - SCLK/4 */
#define PGWS_MASK	(0x7 << PGWS_P)		/* Page wait states */
#define PGWS_0		(0x0 << PGWS_P)		/* Page wait states - 0 cycles */
#define PGWS_1		(0x1 << PGWS_P)		/* Page wait states - 1 cycles */
#define PGWS_2		(0x2 << PGWS_P)		/* Page wait states - 2 cycles */
#define PGWS_3		(0x3 << PGWS_P)		/* Page wait states - 3 cycles */
#define PGWS_4		(0x4 << PGWS_P)		/* Page wait states - 4 cycles */
#define PGSZ		(0x1 << PGSZ_P)		/* Page size */
#define PGSZ_4		(0x0 << PGSZ_P)		/* Page size - 4 words */
#define PGSZ_8		(0x1 << PGSZ_P)		/* Page size - 8 words */
#define RDDL		(0x38 << RDDL_P)	/* Read data delay */

/* EBIU_ARBSTAT Masks */
#define ARBSTAT		0x00000001	/* Arbitration status */
#define BGSTAT		0x00000002	/* External Bus grant status */

#endif /* EBIU_MODE */

/* Only available on SDRAM based-parts */
#ifdef EBIU_SDGCTL

/* EBIU_SDGCTL Masks */
#define SCTLE		0x00000001	/* Enable SCLK[0], /SRAS, /SCAS, /SWE, SDQM[3:0] */
#define SCK1E		0x00000002	/* Enable CLKOUT, /SCLK1 */
#define CL_2		0x00000008	/* SDRAM CAS latency = 2 cycles */
#define CL_3		0x0000000C	/* SDRAM CAS latency = 3 cycles */
#define PASR_ALL	0x00000000	/* All 4 SDRAM Banks Refreshed In Self-Refresh */
#define PASR_B0_B1	0x00000010	/* SDRAM Banks 0 and 1 Are Refreshed In Self-Refresh */
#define PASR_B0		0x00000020	/* Only SDRAM Bank 0 Is Refreshed In Self-Refresh */
#define TRAS_1		0x00000040	/* SDRAM tRAS = 1 cycle */
#define TRAS_2		0x00000080	/* SDRAM tRAS = 2 cycles */
#define TRAS_3		0x000000C0	/* SDRAM tRAS = 3 cycles */
#define TRAS_4		0x00000100	/* SDRAM tRAS = 4 cycles */
#define TRAS_5		0x00000140	/* SDRAM tRAS = 5 cycles */
#define TRAS_6		0x00000180	/* SDRAM tRAS = 6 cycles */
#define TRAS_7		0x000001C0	/* SDRAM tRAS = 7 cycles */
#define TRAS_8		0x00000200	/* SDRAM tRAS = 8 cycles */
#define TRAS_9		0x00000240	/* SDRAM tRAS = 9 cycles */
#define TRAS_10		0x00000280	/* SDRAM tRAS = 10 cycles */
#define TRAS_11		0x000002C0	/* SDRAM tRAS = 11 cycles */
#define TRAS_12		0x00000300	/* SDRAM tRAS = 12 cycles */
#define TRAS_13		0x00000340	/* SDRAM tRAS = 13 cycles */
#define TRAS_14		0x00000380	/* SDRAM tRAS = 14 cycles */
#define TRAS_15		0x000003C0	/* SDRAM tRAS = 15 cycles */
#define TRP_1		0x00000800	/* SDRAM tRP = 1 cycle */
#define TRP_2		0x00001000	/* SDRAM tRP = 2 cycles */
#define TRP_3		0x00001800	/* SDRAM tRP = 3 cycles */
#define TRP_4		0x00002000	/* SDRAM tRP = 4 cycles */
#define TRP_5		0x00002800	/* SDRAM tRP = 5 cycles */
#define TRP_6		0x00003000	/* SDRAM tRP = 6 cycles */
#define TRP_7		0x00003800	/* SDRAM tRP = 7 cycles */
#define TRCD_1		0x00008000	/* SDRAM tRCD = 1 cycle */
#define TRCD_2		0x00010000	/* SDRAM tRCD = 2 cycles */
#define TRCD_3		0x00018000	/* SDRAM tRCD = 3 cycles */
#define TRCD_4		0x00020000	/* SDRAM tRCD = 4 cycles */
#define TRCD_5		0x00028000	/* SDRAM tRCD = 5 cycles */
#define TRCD_6		0x00030000	/* SDRAM tRCD = 6 cycles */
#define TRCD_7		0x00038000	/* SDRAM tRCD = 7 cycles */
#define TWR_1		0x00080000	/* SDRAM tWR = 1 cycle */
#define TWR_2		0x00100000	/* SDRAM tWR = 2 cycles */
#define TWR_3		0x00180000	/* SDRAM tWR = 3 cycles */
#define PUPSD		0x00200000	/* Power-up start delay */
#define PSM		0x00400000	/* SDRAM power-up sequence = Precharge, mode register set, 8 CBR refresh cycles */
#define PSS		0x00800000	/* enable SDRAM power-up sequence on next SDRAM access */
#define SRFS		0x01000000	/* Start SDRAM self-refresh mode */
#define EBUFE		0x02000000	/* Enable external buffering timing */
#define FBBRW		0x04000000	/* Fast back-to-back read write enable */
#define EMREN		0x10000000	/* Extended mode register enable */
#define TCSR		0x20000000	/* Temp compensated self refresh value 85 deg C */
#define CDDBG		0x40000000	/* Tristate SDRAM controls during bus grant */

/* EBIU_SDBCTL Masks */
#define EBE		0x0001		/* Enable SDRAM External Bank */
#define EBSZ_16		0x0000		/* SDRAM External Bank Size = 16MB */
#define EBSZ_32		0x0002		/* SDRAM External Bank Size = 32MB */
#define EBSZ_64		0x0004		/* SDRAM External Bank Size = 64MB */
#define EBSZ_128	0x0006		/* SDRAM External Bank Size = 128MB */
#define EBSZ_256	0x0008		/* SDRAM External Bank Size = 256MB */
#define EBSZ_512	0x000A		/* SDRAM External Bank Size = 512MB */
#define EBCAW_8		0x0000		/* SDRAM External Bank Column Address Width = 8 Bits */
#define EBCAW_9		0x0010		/* SDRAM External Bank Column Address Width = 9 Bits */
#define EBCAW_10	0x0020		/* SDRAM External Bank Column Address Width = 10 Bits */
#define EBCAW_11	0x0030		/* SDRAM External Bank Column Address Width = 11 Bits */

#ifdef __ADSPBF561__

#define EB0E		(EBE<<0)	/* Enable SDRAM external bank 0 */
#define EB0SZ_16	(EBSZ_16<<0)	/* SDRAM external bank size = 16MB */
#define EB0SZ_32	(EBSZ_32<<0)	/* SDRAM external bank size = 32MB */
#define EB0SZ_64	(EBSZ_64<<0)	/* SDRAM external bank size = 64MB */
#define EB0SZ_128	(EBSZ_128<<0)	/* SDRAM external bank size = 128MB */
#define EB0CAW_8	(EBCAW_8<<0)	/* SDRAM external bank column address width = 8 bits */
#define EB0CAW_9	(EBCAW_9<<0)	/* SDRAM external bank column address width = 9 bits */
#define EB0CAW_10	(EBCAW_10<<0)	/* SDRAM external bank column address width = 9 bits */
#define EB0CAW_11	(EBCAW_11<<0)	/* SDRAM external bank column address width = 9 bits */

#define EB1E		(EBE<<8)	/* Enable SDRAM external bank 0 */
#define EB1SZ_16	(EBSZ_16<<8)	/* SDRAM external bank size = 16MB */
#define EB1SZ_32	(EBSZ_32<<8)	/* SDRAM external bank size = 32MB */
#define EB1SZ_64	(EBSZ_64<<8)	/* SDRAM external bank size = 64MB */
#define EB1SZ_128	(EBSZ_128<<8)	/* SDRAM external bank size = 128MB */
#define EB1CAW_8	(EBCAW_8<<8)	/* SDRAM external bank column address width = 8 bits */
#define EB1CAW_9	(EBCAW_9<<8)	/* SDRAM external bank column address width = 9 bits */
#define EB1CAW_10	(EBCAW_10<<8)	/* SDRAM external bank column address width = 9 bits */
#define EB1CAW_11	(EBCAW_11<<8)	/* SDRAM external bank column address width = 9 bits */

#define EB2E		(EBE<<16)	/* Enable SDRAM external bank 0 */
#define EB2SZ_16	(EBSZ_16<<16)	/* SDRAM external bank size = 16MB */
#define EB2SZ_32	(EBSZ_32<<16)	/* SDRAM external bank size = 32MB */
#define EB2SZ_64	(EBSZ_64<<16)	/* SDRAM external bank size = 64MB */
#define EB2SZ_128	(EBSZ_128<<16)	/* SDRAM external bank size = 128MB */
#define EB2CAW_8	(EBCAW_8<<16)	/* SDRAM external bank column address width = 8 bits */
#define EB2CAW_9	(EBCAW_9<<16)	/* SDRAM external bank column address width = 9 bits */
#define EB2CAW_10	(EBCAW_10<<16)	/* SDRAM external bank column address width = 9 bits */
#define EB2CAW_11	(EBCAW_11<<16)	/* SDRAM external bank column address width = 9 bits */

#define EB3E		(EBE<<24)	/* Enable SDRAM external bank 0 */
#define EB3SZ_16	(EBSZ_16<<24)	/* SDRAM external bank size = 16MB */
#define EB3SZ_32	(EBSZ_32<<24)	/* SDRAM external bank size = 32MB */
#define EB3SZ_64	(EBSZ_64<<24)	/* SDRAM external bank size = 64MB */
#define EB3SZ_128	(EBSZ_128<<24)	/* SDRAM external bank size = 128MB */
#define EB3CAW_8	(EBCAW_8<<24)	/* SDRAM external bank column address width = 8 bits */
#define EB3CAW_9	(EBCAW_9<<24)	/* SDRAM external bank column address width = 9 bits */
#define EB3CAW_10	(EBCAW_10<<24)	/* SDRAM external bank column address width = 9 bits */
#define EB3CAW_11	(EBCAW_11<<24)	/* SDRAM external bank column address width = 9 bits */

#endif /* BF561 */

/* EBIU_SDSTAT Masks */
#define SDCI		0x0001		/* SDRAM controller is idle */
#define SDSRA		0x0002		/* SDRAM self refresh is active */
#define SDPUA		0x0004		/* SDRAM power up active */
#define SDRS		0x0008		/* SDRAM is in reset state */
#define SDEASE		0x0010		/* SDRAM EAB sticky error status - W1C */
#define BGSTAT		0x0020		/* Bus granted */

/* Only available on DDR based-parts */
#else

/* EBIU_ERRMST Masks */
#define DEB0_ERROR	0x0001		/* DEB0 access on reserved memory */
#define DEB1_ERROR	0x0002		/* DEB1 access on reserved memory */
#define DEB2_ERROR	0x0004		/* DEB2 (USB) access on reserved memory */
#define CORE_ERROR	0x0008		/* Core access on reserved memory */
#define DEB0_MERROR	0x0010		/* DEB0 access on reserved memory and DEB0_ERROR is set */
#define DEB1_MERROR	0x0020		/* DEB1 access on reserved memory and DEB1_ERROR is set */
#define DEB2_MERROR	0x0040		/* DEB2 access on reserved memory and DEB2_ERROR is set */
#define CORE_MERROR	0x0080		/* Core access on reserved memory and CORE_ERROR is set */

/* EBIU_RSTCTL Masks */
#define DDR_SRESET	0x0001		/* Reset Control to DDR Controller */
#define SRREQ		0x0008		/* Self Refresh Request */
#define SRACK		0x0010		/* Self Refresh Request Acknowledgement */
#define MDDRENABLE	0x0020		/* Mobile DDR Enable */

#endif /* EBIU_SDGCTL */

#endif