~funderscore blog cgit wiki get in touch
aboutsummaryrefslogtreecommitdiff
blob: 708d0db755a847e5175534e12f8d641326056212 (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
/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * MCF5441x Internal Memory Map
 *
 * Copyright 2010-2012 Freescale Semiconductor, Inc.
 * TsiChung Liew (Tsi-Chung.Liew@freescale.com)
 */

#ifndef __IMMAP_5441X__
#define __IMMAP_5441X__

/* Module Base Addresses */
#define MMAP_XBS	0xFC004000
#define MMAP_FBCS	0xFC008000
#define MMAP_CAN0	0xFC020000
#define MMAP_CAN1	0xFC024000
#define MMAP_I2C1	0xFC038000
#define MMAP_DSPI1	0xFC03C000
#define MMAP_SCM	0xFC040000
#define MMAP_PM		0xFC04002C
#define MMAP_EDMA	0xFC044000
#define MMAP_INTC0	0xFC048000
#define MMAP_INTC1	0xFC04C000
#define MMAP_INTC2	0xFC050000
#define MMAP_IACK	0xFC054000
#define MMAP_I2C0	0xFC058000
#define MMAP_DSPI0	0xFC05C000
#define MMAP_UART0	0xFC060000
#define MMAP_UART1	0xFC064000
#define MMAP_UART2	0xFC068000
#define MMAP_UART3	0xFC06C000
#define MMAP_DTMR0	0xFC070000
#define MMAP_DTMR1	0xFC074000
#define MMAP_DTMR2	0xFC078000
#define MMAP_DTMR3	0xFC07C000
#define MMAP_PIT0	0xFC080000
#define MMAP_PIT1	0xFC084000
#define MMAP_PIT2	0xFC088000
#define MMAP_PIT3	0xFC08C000
#define MMAP_EPORT0	0xFC090000
#define MMAP_ADC	0xFC094000
#define MMAP_DAC0	0xFC098000
#define MMAP_DAC1	0xFC09C000
#define MMAP_RRTC	0xFC0A8000
#define MMAP_SIM	0xFC0AC000
#define MMAP_USBOTG	0xFC0B0000
#define MMAP_USBEHCI	0xFC0B4000
#define MMAP_SDRAM	0xFC0B8000
#define MMAP_SSI0	0xFC0BC000
#define MMAP_PLL	0xFC0C0000
#define MMAP_RNG	0xFC0C4000
#define MMAP_SSI1	0xFC0C8000
#define MMAP_ESDHC	0xFC0CC000
#define MMAP_FEC0	0xFC0D4000
#define MMAP_FEC1	0xFC0D8000
#define MMAP_L2_SW0	0xFC0DC000
#define MMAP_L2_SW1	0xFC0E0000

#define MMAP_NFC_RAM	0xFC0FC000
#define MMAP_NFC	0xFC0FF000

#define MMAP_1WIRE	0xEC008000
#define MMAP_I2C2	0xEC010000
#define MMAP_I2C3	0xEC014000
#define MMAP_I2C4	0xEC018000
#define MMAP_I2C5	0xEC01C000
#define MMAP_DSPI2	0xEC038000
#define MMAP_DSPI3	0xEC03C000
#define MMAP_UART4	0xEC060000
#define MMAP_UART5	0xEC064000
#define MMAP_UART6	0xEC068000
#define MMAP_UART7	0xEC06C000
#define MMAP_UART8	0xEC070000
#define MMAP_UART9	0xEC074000
#define MMAP_RCM	0xEC090000
#define MMAP_CCM	0xEC090000
#define MMAP_GPIO	0xEC094000

#include <asm/coldfire/crossbar.h>
#include <asm/coldfire/dspi.h>
#include <asm/coldfire/edma.h>
#include <asm/coldfire/eport.h>
#include <asm/coldfire/flexbus.h>
#include <asm/coldfire/flexcan.h>
#include <asm/coldfire/intctrl.h>
#include <asm/coldfire/ssi.h>

/* Serial Boot Facility (SBF) */
typedef struct sbf {
	u8 resv0[0x18];
	u16 sbfsr;		/* Serial Boot Facility Status */
	u8 resv1[0x6];
	u16 sbfcr;		/* Serial Boot Facility Control */
} sbf_t;

/* Reset Controller Module (RCM) */
typedef struct rcm {
	u8 rcr;
	u8 rsr;
} rcm_t;

/* Chip Configuration Module (CCM) */
typedef struct ccm {
	u8 ccm_resv0[0x4];	/* 0x00 */
	u16 ccr;		/* 0x04 Chip Configuration */
	u8 resv1[0x2];		/* 0x06 */
	u16 rcon;		/* 0x08 Reset Configuration */
	u16 cir;		/* 0x0A Chip Identification */
	u8 resv2[0x2];		/* 0x0C */
	u16 misccr;		/* 0x0E Miscellaneous Control */
	u16 cdrh;		/* 0x10 Clock Divider */
	u16 cdrl;		/* 0x12 Clock Divider */
	u16 uocsr;		/* 0x14 USB On-the-Go Controller Status */
	u16 uhcsr;		/* 0x16 */
	u16 misccr3;		/* 0x18 */
	u16 misccr2;		/* 0x1A */
	u16 adctsr;		/* 0x1C */
	u16 dactsr;		/* 0x1E */
	u16 sbfsr;		/* 0x20 */
	u16 sbfcr;		/* 0x22 */
	u32 fnacr;		/* 0x24 */
} ccm_t;

/* General Purpose I/O Module (GPIO) */
typedef struct gpio {
	u8 podr_a;		/* 0x00 */
	u8 podr_b;		/* 0x01 */
	u8 podr_c;		/* 0x02 */
	u8 podr_d;		/* 0x03 */
	u8 podr_e;		/* 0x04 */
	u8 podr_f;		/* 0x05 */
	u8 podr_g;		/* 0x06 */
	u8 podr_h;		/* 0x07 */
	u8 podr_i;		/* 0x08 */
	u8 podr_j;		/* 0x09 */
	u8 podr_k;		/* 0x0A */
	u8 rsvd0;		/* 0x0B */

	u8 pddr_a;		/* 0x0C */
	u8 pddr_b;		/* 0x0D */
	u8 pddr_c;		/* 0x0E */
	u8 pddr_d;		/* 0x0F */
	u8 pddr_e;		/* 0x10 */
	u8 pddr_f;		/* 0x11 */
	u8 pddr_g;		/* 0x12 */
	u8 pddr_h;		/* 0x13 */
	u8 pddr_i;		/* 0x14 */
	u8 pddr_j;		/* 0x15 */
	u8 pddr_k;		/* 0x16 */
	u8 rsvd1;		/* 0x17 */

	u8 ppdsdr_a;		/* 0x18 */
	u8 ppdsdr_b;		/* 0x19 */
	u8 ppdsdr_c;		/* 0x1A */
	u8 ppdsdr_d;		/* 0x1B */
	u8 ppdsdr_e;		/* 0x1C */
	u8 ppdsdr_f;		/* 0x1D */
	u8 ppdsdr_g;		/* 0x1E */
	u8 ppdsdr_h;		/* 0x1F */
	u8 ppdsdr_i;		/* 0x20 */
	u8 ppdsdr_j;		/* 0x21 */
	u8 ppdsdr_k;		/* 0x22 */
	u8 rsvd2;		/* 0x23 */

	u8 pclrr_a;		/* 0x24 */
	u8 pclrr_b;		/* 0x25 */
	u8 pclrr_c;		/* 0x26 */
	u8 pclrr_d;		/* 0x27 */
	u8 pclrr_e;		/* 0x28 */
	u8 pclrr_f;		/* 0x29 */
	u8 pclrr_g;		/* 0x2A */
	u8 pclrr_h;		/* 0x2B */
	u8 pclrr_i;		/* 0x2C */
	u8 pclrr_j;		/* 0x2D */
	u8 pclrr_k;		/* 0x2E */
	u8 rsvd3;		/* 0x2F */

	u16 pcr_a;		/* 0x30 */
	u16 pcr_b;		/* 0x32 */
	u16 pcr_c;		/* 0x34 */
	u16 pcr_d;		/* 0x36 */
	u16 pcr_e;		/* 0x38 */
	u16 pcr_f;		/* 0x3A */
	u16 pcr_g;		/* 0x3C */
	u16 pcr_h;		/* 0x3E */
	u16 pcr_i;		/* 0x40 */
	u16 pcr_j;		/* 0x42 */
	u16 pcr_k;		/* 0x44 */
	u16 rsvd4;		/* 0x46 */

	u8 par_fbctl;		/* 0x48 */
	u8 par_be;		/* 0x49 */
	u8 par_cs;		/* 0x4A */
	u8 par_cani2c;		/* 0x4B */
	u8 par_irqh;		/* 0x4C */
	u8 par_irql;		/* 0x4D */
	u8 par_dspi0;		/* 0x4E */
	u8 par_dspiow;		/* 0x4F */
	u8 par_timer;		/* 0x50 */
	u8 par_uart2;		/* 0x51 */
	u8 par_uart1;		/* 0x52 */
	u8 par_uart0;		/* 0x53 */
	u8 par_sdhch;		/* 0x54 */
	u8 par_sdhcl;		/* 0x55 */
	u8 par_simp0h;		/* 0x56 */
	u8 par_simp1h;		/* 0x57 */
	u8 par_ssi0h;		/* 0x58 */
	u8 par_ssi0l;		/* 0x59 */
	u8 par_dbg1h;		/* 0x5A */
	u8 par_dbg0h;		/* 0x5B */
	u8 par_dbgl;		/* 0x5C */
	u8 rsvd5;		/* 0x5D */
	u8 par_fec;		/* 0x5E */
	u8 rsvd6;		/* 0x5F */

	u8 mscr_sdram;		/* 0x60 */
	u8 rsvd7[3];		/* 0x61-0x63 */

	u8 srcr_fb1;		/* 0x64 */
	u8 srcr_fb2;		/* 0x65 */
	u8 srcr_fb3;		/* 0x66 */
	u8 srcr_fb4;		/* 0x67 */
	u8 srcr_dspiow;		/* 0x68 */
	u8 srcr_cani2c;		/* 0x69 */
	u8 srcr_irq;		/* 0x6A */
	u8 srcr_timer;		/* 0x6B */
	u8 srcr_uart;		/* 0x6C */
	u8 srcr_fec;		/* 0x6D */
	u8 srcr_sdhc;		/* 0x6E */
	u8 srcr_simp0;		/* 0x6F */
	u8 srcr_ssi0;		/* 0x70 */
	u8 rsvd8[3];		/* 0x71-0x73 */

	u16 urts_pol;		/* 0x74 */
	u16 ucts_pol;		/* 0x76 */
	u16 utxd_wom;		/* 0x78 */
	u32 urxd_wom;		/* 0x7c */

	u32 hcr1;		/* 0x80 */
	u32 hcr0;		/* 0x84 */
} gpio_t;

/* SDRAM Controller (SDRAMC) */
typedef struct sdramc {
	u32 cr00;		/* 0x00 */
	u32 cr01;		/* 0x04 */
	u32 cr02;		/* 0x08 */
	u32 cr03;		/* 0x0C */
	u32 cr04;		/* 0x10 */
	u32 cr05;		/* 0x14 */
	u32 cr06;		/* 0x18 */
	u32 cr07;		/* 0x1C */

	u32 cr08;		/* 0x20 */
	u32 cr09;		/* 0x24 */
	u32 cr10;		/* 0x28 */
	u32 cr11;		/* 0x2C */
	u32 cr12;		/* 0x30 */
	u32 cr13;		/* 0x34 */
	u32 cr14;		/* 0x38 */
	u32 cr15;		/* 0x3C */

	u32 cr16;		/* 0x40 */
	u32 cr17;		/* 0x44 */
	u32 cr18;		/* 0x48 */
	u32 cr19;		/* 0x4C */
	u32 cr20;		/* 0x50 */
	u32 cr21;		/* 0x54 */
	u32 cr22;		/* 0x58 */
	u32 cr23;		/* 0x5C */

	u32 cr24;		/* 0x60 */
	u32 cr25;		/* 0x64 */
	u32 cr26;		/* 0x68 */
	u32 cr27;		/* 0x6C */
	u32 cr28;		/* 0x70 */
	u32 cr29;		/* 0x74 */
	u32 cr30;		/* 0x78 */
	u32 cr31;		/* 0x7C */

	u32 cr32;		/* 0x80 */
	u32 cr33;		/* 0x84 */
	u32 cr34;		/* 0x88 */
	u32 cr35;		/* 0x8C */
	u32 cr36;		/* 0x90 */
	u32 cr37;		/* 0x94 */
	u32 cr38;		/* 0x98 */
	u32 cr39;		/* 0x9C */

	u32 cr40;		/* 0xA0 */
	u32 cr41;		/* 0xA4 */
	u32 cr42;		/* 0xA8 */
	u32 cr43;		/* 0xAC */
	u32 cr44;		/* 0xB0 */
	u32 cr45;		/* 0xB4 */
	u32 cr46;		/* 0xB8 */
	u32 cr47;		/* 0xBC */
	u32 cr48;		/* 0xC0 */
	u32 cr49;		/* 0xC4 */
	u32 cr50;		/* 0xC8 */
	u32 cr51;		/* 0xCC */
	u32 cr52;		/* 0xD0 */
	u32 cr53;		/* 0xD4 */
	u32 cr54;		/* 0xD8 */
	u32 cr55;		/* 0xDC */
	u32 cr56;		/* 0xE0 */
	u32 cr57;		/* 0xE4 */
	u32 cr58;		/* 0xE8 */
	u32 cr59;		/* 0xEC */
	u32 cr60;		/* 0xF0 */
	u32 cr61;		/* 0xF4 */
	u32 cr62;		/* 0xF8 */
	u32 cr63;		/* 0xFC */

	u32 rsvd3[32];		/* 0xF4-0x1A8 */

	u32 rcrcr;		/* 0x180 */
	u32 swrcr;		/* 0x184 */
	u32 rcr;		/* 0x188 */
	u32 msovr;		/* 0x18C */
	u32 rcrdbg;		/* 0x190 */
	u32 sl0adj;		/* 0x194 */
	u32 sl1adj;		/* 0x198 */
	u32 sl2adj;		/* 0x19C */
	u32 sl3adj;		/* 0x1A0 */
	u32 sl4adj;		/* 0x1A4 */
	u32 flight_tm;		/* 0x1A8 */
	u32 padcr;		/* 0x1AC */
} sdramc_t;

/* Phase Locked Loop (PLL) */
typedef struct pll {
	u32 pcr;		/* Control */
	u32 pdr;		/* Divider */
	u32 psr;		/* Status */
} pll_t;

typedef struct scm {
	u8 rsvd1[19];		/* 0x00 - 0x12 */
	u8 wcr;			/* 0x13 */
	u16 rsvd2;		/* 0x14 - 0x15 */
	u16 cwcr;		/* 0x16 */
	u8 rsvd3[3];		/* 0x18 - 0x1A */
	u8 cwsr;		/* 0x1B */
	u8 rsvd4[3];		/* 0x1C - 0x1E */
	u8 scmisr;		/* 0x1F */
	u32 rsvd5;		/* 0x20 - 0x23 */
	u32 bcr;		/* 0x24 */
	u8 rsvd6[72];		/* 0x28 - 0x6F */
	u32 cfadr;		/* 0x70 */
	u8 rsvd7;		/* 0x74 */
	u8 cfier;		/* 0x75 */
	u8 cfloc;		/* 0x76 */
	u8 cfatr;		/* 0x77 */
	u32 rsvd8;		/* 0x78 - 0x7B */
	u32 cfdtr;		/* 0x7C */
} scm_t;

typedef struct pm {
	u8 pmsr0;		/* */
	u8 pmcr0;
	u8 pmsr1;
	u8 pmcr1;
	u32 pmhr0;
	u32 pmlr0;
	u32 pmhr1;
	u32 pmlr1;
} pm_t;

#endif				/* __IMMAP_5441X__ */