Blame view

include/asm-ppc/immap_83xx.h 26 KB
f046ccd15   Eran Liberty   * Patch by Eran L...
1
  /*
03051c3d3   Dave Liu   mpc83xx: Add the ...
2
   * (C) Copyright 2004-2007 Freescale Semiconductor, Inc.
f6eda7f80   Dave Liu   mpc83xx: Changed ...
3
4
5
   *
   * MPC83xx Internal Memory Map
   *
e080313c3   Dave Liu   mpc83xx: streamli...
6
7
8
9
10
   * Contributors:
   *	Dave Liu <daveliu@freescale.com>
   *	Tanya Jiang <tanya.jiang@freescale.com>
   *	Mandy Lavi <mandy.lavi@freescale.com>
   *	Eran Liberty <liberty@freescale.com>
f6eda7f80   Dave Liu   mpc83xx: Changed ...
11
12
13
14
15
16
17
18
   *
   * This program is free software; you can redistribute it and/or
   * modify it under the terms of the GNU General Public License as
   * published by the Free Software Foundation; either version 2 of
   * the License, or (at your option) any later version.
   *
   * This program is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
e080313c3   Dave Liu   mpc83xx: streamli...
19
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
f6eda7f80   Dave Liu   mpc83xx: Changed ...
20
21
22
23
24
25
   * GNU General Public License for more details.
   *
   * You should have received a copy of the GNU General Public License
   * along with this program; if not, write to the Free Software
   * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
   * MA 02111-1307 USA
de1d0a699   Jon Loeliger   Fix style issues ...
26
   *
f046ccd15   Eran Liberty   * Patch by Eran L...
27
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
28
29
  #ifndef __IMMAP_83xx__
  #define __IMMAP_83xx__
f046ccd15   Eran Liberty   * Patch by Eran L...
30
31
  
  #include <asm/types.h>
be5e61815   Timur Tabi   mpc83xx: Update 8...
32
  #include <asm/fsl_i2c.h>
04a9e1180   Ben Warren   Add support for a...
33
  #include <asm/mpc8xxx_spi.h>
f046ccd15   Eran Liberty   * Patch by Eran L...
34

de1d0a699   Jon Loeliger   Fix style issues ...
35
  /*
e080313c3   Dave Liu   mpc83xx: streamli...
36
   * Local Access Window
f046ccd15   Eran Liberty   * Patch by Eran L...
37
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
38
  typedef struct law83xx {
b701652a4   Dave Liu   mpc83xx: Add 8360...
39
  	u32 bar;		/* LBIU local access window base address register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
40
  	u32 ar;			/* LBIU local access window attribute register */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
41
  } law83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
42

de1d0a699   Jon Loeliger   Fix style issues ...
43
  /*
e080313c3   Dave Liu   mpc83xx: streamli...
44
   * System configuration registers
f046ccd15   Eran Liberty   * Patch by Eran L...
45
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
46
  typedef struct sysconf83xx {
b701652a4   Dave Liu   mpc83xx: Add 8360...
47
  	u32 immrbar;		/* Internal memory map base address register */
f046ccd15   Eran Liberty   * Patch by Eran L...
48
  	u8 res0[0x04];
b701652a4   Dave Liu   mpc83xx: Add 8360...
49
  	u32 altcbar;		/* Alternate configuration base address register */
f046ccd15   Eran Liberty   * Patch by Eran L...
50
  	u8 res1[0x14];
b701652a4   Dave Liu   mpc83xx: Add 8360...
51
  	law83xx_t lblaw[4];	/* LBIU local access window */
f046ccd15   Eran Liberty   * Patch by Eran L...
52
  	u8 res2[0x20];
b701652a4   Dave Liu   mpc83xx: Add 8360...
53
  	law83xx_t pcilaw[2];	/* PCI local access window */
f046ccd15   Eran Liberty   * Patch by Eran L...
54
  	u8 res3[0x30];
b701652a4   Dave Liu   mpc83xx: Add 8360...
55
  	law83xx_t ddrlaw[2];	/* DDR local access window */
f046ccd15   Eran Liberty   * Patch by Eran L...
56
  	u8 res4[0x50];
b701652a4   Dave Liu   mpc83xx: Add 8360...
57
58
59
  	u32 sgprl;		/* System General Purpose Register Low */
  	u32 sgprh;		/* System General Purpose Register High */
  	u32 spridr;		/* System Part and Revision ID Register */
f046ccd15   Eran Liberty   * Patch by Eran L...
60
  	u8 res5[0x04];
b701652a4   Dave Liu   mpc83xx: Add 8360...
61
  	u32 spcr;		/* System Priority Configuration Register */
e080313c3   Dave Liu   mpc83xx: streamli...
62
63
  	u32 sicrl;		/* System I/O Configuration Register Low */
  	u32 sicrh;		/* System I/O Configuration Register High */
24c3aca3f   Dave Liu   mpc83xx: Add supp...
64
65
66
  	u8 res6[0x0C];
  	u32 ddrcdr;		/* DDR Control Driver Register */
  	u32 ddrdsr;		/* DDR Debug Status Register */
03051c3d3   Dave Liu   mpc83xx: Add the ...
67
68
  	u32 obir;		/* Output Buffer Impedance Register */
  	u8 res7[0xCC];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
69
  } sysconf83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
70

de1d0a699   Jon Loeliger   Fix style issues ...
71
  /*
f046ccd15   Eran Liberty   * Patch by Eran L...
72
73
   * Watch Dog Timer (WDT) Registers
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
74
  typedef struct wdt83xx {
de1d0a699   Jon Loeliger   Fix style issues ...
75
  	u8 res0[4];
b701652a4   Dave Liu   mpc83xx: Add 8360...
76
77
  	u32 swcrr;		/* System watchdog control register */
  	u32 swcnr;		/* System watchdog count register */
de1d0a699   Jon Loeliger   Fix style issues ...
78
  	u8 res1[2];
b701652a4   Dave Liu   mpc83xx: Add 8360...
79
  	u16 swsrr;		/* System watchdog service register */
f046ccd15   Eran Liberty   * Patch by Eran L...
80
  	u8 res2[0xF0];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
81
  } wdt83xx_t;
de1d0a699   Jon Loeliger   Fix style issues ...
82

f046ccd15   Eran Liberty   * Patch by Eran L...
83
84
85
  /*
   * RTC/PIT Module Registers
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
86
  typedef struct rtclk83xx {
b701652a4   Dave Liu   mpc83xx: Add 8360...
87
  	u32 cnr;		/* control register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
88
  	u32 ldr;		/* load register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
89
  	u32 psr;		/* prescale register */
e080313c3   Dave Liu   mpc83xx: streamli...
90
  	u32 ctr;		/* counter value field register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
91
  	u32 evr;		/* event register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
92
  	u32 alr;		/* alarm register */
f046ccd15   Eran Liberty   * Patch by Eran L...
93
  	u8 res0[0xE8];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
94
  } rtclk83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
95
96
  
  /*
e080313c3   Dave Liu   mpc83xx: streamli...
97
   * Global timer module
f046ccd15   Eran Liberty   * Patch by Eran L...
98
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
99
  typedef struct gtm83xx {
e080313c3   Dave Liu   mpc83xx: streamli...
100
  	u8 cfr1;		/* Timer1/2 Configuration */
b701652a4   Dave Liu   mpc83xx: Add 8360...
101
  	u8 res0[3];
e080313c3   Dave Liu   mpc83xx: streamli...
102
  	u8 cfr2;		/* Timer3/4 Configuration */
b701652a4   Dave Liu   mpc83xx: Add 8360...
103
  	u8 res1[10];
e080313c3   Dave Liu   mpc83xx: streamli...
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
  	u16 mdr1;		/* Timer1 Mode Register */
  	u16 mdr2;		/* Timer2 Mode Register */
  	u16 rfr1;		/* Timer1 Reference Register */
  	u16 rfr2;		/* Timer2 Reference Register */
  	u16 cpr1;		/* Timer1 Capture Register */
  	u16 cpr2;		/* Timer2 Capture Register */
  	u16 cnr1;		/* Timer1 Counter Register */
  	u16 cnr2;		/* Timer2 Counter Register */
  	u16 mdr3;		/* Timer3 Mode Register */
  	u16 mdr4;		/* Timer4 Mode Register */
  	u16 rfr3;		/* Timer3 Reference Register */
  	u16 rfr4;		/* Timer4 Reference Register */
  	u16 cpr3;		/* Timer3 Capture Register */
  	u16 cpr4;		/* Timer4 Capture Register */
  	u16 cnr3;		/* Timer3 Counter Register */
  	u16 cnr4;		/* Timer4 Counter Register */
  	u16 evr1;		/* Timer1 Event Register */
  	u16 evr2;		/* Timer2 Event Register */
  	u16 evr3;		/* Timer3 Event Register */
  	u16 evr4;		/* Timer4 Event Register */
  	u16 psr1;		/* Timer1 Prescaler Register */
  	u16 psr2;		/* Timer2 Prescaler Register */
  	u16 psr3;		/* Timer3 Prescaler Register */
  	u16 psr4;		/* Timer4 Prescaler Register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
128
  	u8 res[0xC0];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
129
  } gtm83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
130
131
132
133
  
  /*
   * Integrated Programmable Interrupt Controller
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
134
  typedef struct ipic83xx {
e080313c3   Dave Liu   mpc83xx: streamli...
135
136
137
138
139
  	u32 sicfr;		/* System Global Interrupt Configuration Register */
  	u32 sivcr;		/* System Global Interrupt Vector Register */
  	u32 sipnr_h;		/* System Internal Interrupt Pending Register - High */
  	u32 sipnr_l;		/* System Internal Interrupt Pending Register - Low */
  	u32 siprr_a;		/* System Internal Interrupt Group A Priority Register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
140
  	u8 res0[8];
e080313c3   Dave Liu   mpc83xx: streamli...
141
142
143
  	u32 siprr_d;		/* System Internal Interrupt Group D Priority Register */
  	u32 simsr_h;		/* System Internal Interrupt Mask Register - High */
  	u32 simsr_l;		/* System Internal Interrupt Mask Register - Low */
b701652a4   Dave Liu   mpc83xx: Add 8360...
144
  	u8 res1[4];
e080313c3   Dave Liu   mpc83xx: streamli...
145
146
147
148
149
150
151
152
  	u32 sepnr;		/* System External Interrupt Pending Register */
  	u32 smprr_a;		/* System Mixed Interrupt Group A Priority Register */
  	u32 smprr_b;		/* System Mixed Interrupt Group B Priority Register */
  	u32 semsr;		/* System External Interrupt Mask Register */
  	u32 secnr;		/* System External Interrupt Control Register */
  	u32 sersr;		/* System Error Status Register */
  	u32 sermr;		/* System Error Mask Register */
  	u32 sercr;		/* System Error Control Register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
153
  	u8 res2[4];
e080313c3   Dave Liu   mpc83xx: streamli...
154
155
156
157
  	u32 sifcr_h;		/* System Internal Interrupt Force Register - High */
  	u32 sifcr_l;		/* System Internal Interrupt Force Register - Low */
  	u32 sefcr;		/* System External Interrupt Force Register */
  	u32 serfr;		/* System Error Force Register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
158
  	u32 scvcr;		/* System Critical Interrupt Vector Register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
159
  	u32 smvcr;		/* System Management Interrupt Vector Register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
160
  	u8 res3[0x98];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
161
  } ipic83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
162
163
164
165
  
  /*
   * System Arbiter Registers
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
166
  typedef struct arbiter83xx {
b701652a4   Dave Liu   mpc83xx: Add 8360...
167
  	u32 acr;		/* Arbiter Configuration Register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
168
  	u32 atr;		/* Arbiter Timers Register */
f046ccd15   Eran Liberty   * Patch by Eran L...
169
  	u8 res[4];
e080313c3   Dave Liu   mpc83xx: streamli...
170
171
172
  	u32 aer;		/* Arbiter Event Register */
  	u32 aidr;		/* Arbiter Interrupt Definition Register */
  	u32 amr;		/* Arbiter Mask Register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
173
  	u32 aeatr;		/* Arbiter Event Attributes Register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
174
  	u32 aeadr;		/* Arbiter Event Address Register */
e080313c3   Dave Liu   mpc83xx: streamli...
175
  	u32 aerr;		/* Arbiter Event Response Register */
f046ccd15   Eran Liberty   * Patch by Eran L...
176
  	u8 res1[0xDC];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
177
  } arbiter83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
178
179
180
181
  
  /*
   * Reset Module
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
182
  typedef struct reset83xx {
e080313c3   Dave Liu   mpc83xx: streamli...
183
184
  	u32 rcwl;		/* Reset Configuration Word Low Register */
  	u32 rcwh;		/* Reset Configuration Word High Register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
185
  	u8 res0[8];
e080313c3   Dave Liu   mpc83xx: streamli...
186
187
188
189
190
  	u32 rsr;		/* Reset Status Register */
  	u32 rmr;		/* Reset Mode Register */
  	u32 rpr;		/* Reset protection Register */
  	u32 rcr;		/* Reset Control Register */
  	u32 rcer;		/* Reset Control Enable Register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
191
  	u8 res1[0xDC];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
192
  } reset83xx_t;
de1d0a699   Jon Loeliger   Fix style issues ...
193

e080313c3   Dave Liu   mpc83xx: streamli...
194
195
196
  /*
   * Clock Module
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
197
  typedef struct clk83xx {
e080313c3   Dave Liu   mpc83xx: streamli...
198
199
200
  	u32 spmr;		/* system PLL mode Register */
  	u32 occr;		/* output clock control Register */
  	u32 sccr;		/* system clock control Register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
201
  	u8 res0[0xF4];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
202
  } clk83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
203
204
205
206
  
  /*
   * Power Management Control Module
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
207
  typedef struct pmc83xx {
e080313c3   Dave Liu   mpc83xx: streamli...
208
209
210
  	u32 pmccr;		/* PMC Configuration Register */
  	u32 pmcer;		/* PMC Event Register */
  	u32 pmcmr;		/* PMC Mask Register */
d87c57b20   Scott Wood   mpc83xx: Add regi...
211
212
213
  	u32 pmccr1;		/* PMC Configuration Register 1 */
  	u32 pmccr2;		/* PMC Configuration Register 2 */
  	u8 res0[0xEC];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
214
  } pmc83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
215
216
  
  /*
e080313c3   Dave Liu   mpc83xx: streamli...
217
   * General purpose I/O module
f046ccd15   Eran Liberty   * Patch by Eran L...
218
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
219
  typedef struct gpio83xx {
b701652a4   Dave Liu   mpc83xx: Add 8360...
220
221
222
223
224
225
  	u32 dir;		/* direction register */
  	u32 odr;		/* open drain register */
  	u32 dat;		/* data register */
  	u32 ier;		/* interrupt event register */
  	u32 imr;		/* interrupt mask register */
  	u32 icr;		/* external interrupt control register */
f046ccd15   Eran Liberty   * Patch by Eran L...
226
  	u8 res0[0xE8];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
227
  } gpio83xx_t;
b701652a4   Dave Liu   mpc83xx: Add 8360...
228

b701652a4   Dave Liu   mpc83xx: Add 8360...
229
230
231
232
233
234
  /*
   * QE Ports Interrupts Registers
   */
  typedef struct qepi83xx {
  	u8 res0[0xC];
  	u32 qepier;		/* QE Ports Interrupt Event Register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
235
  	u32 qepimr;		/* QE Ports Interrupt Mask Register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
236
  	u32 qepicr;		/* QE Ports Interrupt Control Register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
237
238
239
240
  	u8 res1[0xE8];
  } qepi83xx_t;
  
  /*
e080313c3   Dave Liu   mpc83xx: streamli...
241
   * QE Parallel I/O Ports
b701652a4   Dave Liu   mpc83xx: Add 8360...
242
243
244
245
246
247
248
249
250
   */
  typedef struct gpio_n {
  	u32 podr;		/* Open Drain Register */
  	u32 pdat;		/* Data Register */
  	u32 dir1;		/* direction register 1 */
  	u32 dir2;		/* direction register 2 */
  	u32 ppar1;		/* Pin Assignment Register 1 */
  	u32 ppar2;		/* Pin Assignment Register 2 */
  } gpio_n_t;
e080313c3   Dave Liu   mpc83xx: streamli...
251
  typedef struct qegpio83xx {
b701652a4   Dave Liu   mpc83xx: Add 8360...
252
253
  	gpio_n_t ioport[0x7];
  	u8 res0[0x358];
e080313c3   Dave Liu   mpc83xx: streamli...
254
  } qepio83xx_t;
b701652a4   Dave Liu   mpc83xx: Add 8360...
255
256
257
258
  
  /*
   * QE Secondary Bus Access Windows
   */
b701652a4   Dave Liu   mpc83xx: Add 8360...
259
260
  typedef struct qesba83xx {
  	u32 lbmcsar;		/* Local bus memory controller start address */
b701652a4   Dave Liu   mpc83xx: Add 8360...
261
  	u32 sdmcsar;		/* Secondary DDR memory controller start address */
b701652a4   Dave Liu   mpc83xx: Add 8360...
262
263
  	u8 res0[0x38];
  	u32 lbmcear;		/* Local bus memory controller end address */
b701652a4   Dave Liu   mpc83xx: Add 8360...
264
  	u32 sdmcear;		/* Secondary DDR memory controller end address */
b701652a4   Dave Liu   mpc83xx: Add 8360...
265
  	u8 res1[0x38];
e080313c3   Dave Liu   mpc83xx: streamli...
266
  	u32 lbmcar;		/* Local bus memory controller attributes */
b701652a4   Dave Liu   mpc83xx: Add 8360...
267
  	u32 sdmcar;		/* Secondary DDR memory controller attributes */
e080313c3   Dave Liu   mpc83xx: streamli...
268
  	u8 res2[0x378];
b701652a4   Dave Liu   mpc83xx: Add 8360...
269
  } qesba83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
270

de1d0a699   Jon Loeliger   Fix style issues ...
271
  /*
f046ccd15   Eran Liberty   * Patch by Eran L...
272
273
   * DDR Memory Controller Memory Map
   */
b701652a4   Dave Liu   mpc83xx: Add 8360...
274
  typedef struct ddr_cs_bnds {
de1d0a699   Jon Loeliger   Fix style issues ...
275
  	u32 csbnds;
b701652a4   Dave Liu   mpc83xx: Add 8360...
276
  	u8 res0[4];
f046ccd15   Eran Liberty   * Patch by Eran L...
277
  } ddr_cs_bnds_t;
f6eda7f80   Dave Liu   mpc83xx: Changed ...
278
  typedef struct ddr83xx {
e080313c3   Dave Liu   mpc83xx: streamli...
279
  	ddr_cs_bnds_t csbnds[4];/* Chip Select x Memory Bounds */
de1d0a699   Jon Loeliger   Fix style issues ...
280
  	u8 res0[0x60];
e080313c3   Dave Liu   mpc83xx: streamli...
281
  	u32 cs_config[4];	/* Chip Select x Configuration */
24c3aca3f   Dave Liu   mpc83xx: Add supp...
282
283
284
  	u8 res1[0x70];
  	u32 timing_cfg_3;	/* SDRAM Timing Configuration 3 */
  	u32 timing_cfg_0;	/* SDRAM Timing Configuration 0 */
e080313c3   Dave Liu   mpc83xx: streamli...
285
286
287
  	u32 timing_cfg_1;	/* SDRAM Timing Configuration 1 */
  	u32 timing_cfg_2;	/* SDRAM Timing Configuration 2 */
  	u32 sdram_cfg;		/* SDRAM Control Configuration */
24c3aca3f   Dave Liu   mpc83xx: Add supp...
288
  	u32 sdram_cfg2;		/* SDRAM Control Configuration 2 */
e080313c3   Dave Liu   mpc83xx: streamli...
289
  	u32 sdram_mode;		/* SDRAM Mode Configuration */
24c3aca3f   Dave Liu   mpc83xx: Add supp...
290
291
  	u32 sdram_mode2;	/* SDRAM Mode Configuration 2 */
  	u32 sdram_md_cntl;	/* SDRAM Mode Control */
e080313c3   Dave Liu   mpc83xx: streamli...
292
  	u32 sdram_interval;	/* SDRAM Interval Configuration */
24c3aca3f   Dave Liu   mpc83xx: Add supp...
293
294
295
296
297
298
299
300
301
302
  	u32 ddr_data_init;	/* SDRAM Data Initialization */
  	u8 res2[4];
  	u32 sdram_clk_cntl;	/* SDRAM Clock Control */
  	u8 res3[0x14];
  	u32 ddr_init_addr;	/* DDR training initialization address */
  	u32 ddr_init_ext_addr;	/* DDR training initialization extended address */
  	u8 res4[0xAA8];
  	u32 ddr_ip_rev1;	/* DDR IP block revision 1 */
  	u32 ddr_ip_rev2;	/* DDR IP block revision 2 */
  	u8 res5[0x200];
e080313c3   Dave Liu   mpc83xx: streamli...
303
304
305
  	u32 data_err_inject_hi;	/* Memory Data Path Error Injection Mask High */
  	u32 data_err_inject_lo;	/* Memory Data Path Error Injection Mask Low */
  	u32 ecc_err_inject;	/* Memory Data Path Error Injection Mask ECC */
24c3aca3f   Dave Liu   mpc83xx: Add supp...
306
  	u8 res6[0x14];
e080313c3   Dave Liu   mpc83xx: streamli...
307
308
309
  	u32 capture_data_hi;	/* Memory Data Path Read Capture High */
  	u32 capture_data_lo;	/* Memory Data Path Read Capture Low */
  	u32 capture_ecc;	/* Memory Data Path Read Capture ECC */
24c3aca3f   Dave Liu   mpc83xx: Add supp...
310
  	u8 res7[0x14];
e080313c3   Dave Liu   mpc83xx: streamli...
311
312
313
314
315
316
317
  	u32 err_detect;		/* Memory Error Detect */
  	u32 err_disable;	/* Memory Error Disable */
  	u32 err_int_en;		/* Memory Error Interrupt Enable */
  	u32 capture_attributes;	/* Memory Error Attributes Capture */
  	u32 capture_address;	/* Memory Error Address Capture */
  	u32 capture_ext_address;/* Memory Error Extended Address Capture */
  	u32 err_sbe;		/* Memory Single-Bit ECC Error Management */
24c3aca3f   Dave Liu   mpc83xx: Add supp...
318
  	u8 res8[0xA4];
f046ccd15   Eran Liberty   * Patch by Eran L...
319
  	u32 debug_reg;
24c3aca3f   Dave Liu   mpc83xx: Add supp...
320
  	u8 res9[0xFC];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
321
  } ddr83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
322
323
  
  /*
f046ccd15   Eran Liberty   * Patch by Eran L...
324
325
   * DUART
   */
b701652a4   Dave Liu   mpc83xx: Add 8360...
326
  typedef struct duart83xx {
e080313c3   Dave Liu   mpc83xx: streamli...
327
328
329
330
331
332
333
334
  	u8 urbr_ulcr_udlb;	/* combined register for URBR, UTHR and UDLB */
  	u8 uier_udmb;		/* combined register for UIER and UDMB */
  	u8 uiir_ufcr_uafr;	/* combined register for UIIR, UFCR and UAFR */
  	u8 ulcr;		/* line control register */
  	u8 umcr;		/* MODEM control register */
  	u8 ulsr;		/* line status register */
  	u8 umsr;		/* MODEM status register */
  	u8 uscr;		/* scratch register */
de1d0a699   Jon Loeliger   Fix style issues ...
335
  	u8 res0[8];
e080313c3   Dave Liu   mpc83xx: streamli...
336
  	u8 udsr;		/* DMA status register */
de1d0a699   Jon Loeliger   Fix style issues ...
337
338
  	u8 res1[3];
  	u8 res2[0xEC];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
339
  } duart83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
340
341
342
343
  
  /*
   * Local Bus Controller Registers
   */
b701652a4   Dave Liu   mpc83xx: Add 8360...
344
  typedef struct lbus_bank {
e080313c3   Dave Liu   mpc83xx: streamli...
345
346
  	u32 br;			/* Base Register */
  	u32 or;			/* Option Register */
f046ccd15   Eran Liberty   * Patch by Eran L...
347
  } lbus_bank_t;
f6eda7f80   Dave Liu   mpc83xx: Changed ...
348
  typedef struct lbus83xx {
de1d0a699   Jon Loeliger   Fix style issues ...
349
350
  	lbus_bank_t bank[8];
  	u8 res0[0x28];
e080313c3   Dave Liu   mpc83xx: streamli...
351
  	u32 mar;		/* UPM Address Register */
de1d0a699   Jon Loeliger   Fix style issues ...
352
  	u8 res1[0x4];
e080313c3   Dave Liu   mpc83xx: streamli...
353
354
355
  	u32 mamr;		/* UPMA Mode Register */
  	u32 mbmr;		/* UPMB Mode Register */
  	u32 mcmr;		/* UPMC Mode Register */
de1d0a699   Jon Loeliger   Fix style issues ...
356
  	u8 res2[0x8];
e080313c3   Dave Liu   mpc83xx: streamli...
357
358
  	u32 mrtpr;		/* Memory Refresh Timer Prescaler Register */
  	u32 mdr;		/* UPM Data Register */
d87c57b20   Scott Wood   mpc83xx: Add regi...
359
360
  	u8 res3[0x4];
  	u32 lsor;		/* Special Operation Initiation Register */
e080313c3   Dave Liu   mpc83xx: streamli...
361
  	u32 lsdmr;		/* SDRAM Mode Register */
de1d0a699   Jon Loeliger   Fix style issues ...
362
  	u8 res4[0x8];
e080313c3   Dave Liu   mpc83xx: streamli...
363
364
  	u32 lurt;		/* UPM Refresh Timer */
  	u32 lsrt;		/* SDRAM Refresh Timer */
de1d0a699   Jon Loeliger   Fix style issues ...
365
  	u8 res5[0x8];
e080313c3   Dave Liu   mpc83xx: streamli...
366
367
368
369
370
  	u32 ltesr;		/* Transfer Error Status Register */
  	u32 ltedr;		/* Transfer Error Disable Register */
  	u32 lteir;		/* Transfer Error Interrupt Register */
  	u32 lteatr;		/* Transfer Error Attributes Register */
  	u32 ltear;		/* Transfer Error Address Register */
de1d0a699   Jon Loeliger   Fix style issues ...
371
  	u8 res6[0xC];
e080313c3   Dave Liu   mpc83xx: streamli...
372
373
  	u32 lbcr;		/* Configuration Register */
  	u32 lcrr;		/* Clock Ratio Register */
d87c57b20   Scott Wood   mpc83xx: Add regi...
374
375
376
377
378
379
380
381
  	u8 res7[0x8];
  	u32 fmr;		/* Flash Mode Register */
  	u32 fir;		/* Flash Instruction Register */
  	u32 fcr;		/* Flash Command Register */
  	u32 fbar;		/* Flash Block Addr Register */
  	u32 fpar;		/* Flash Page Addr Register */
  	u32 fbcr;		/* Flash Byte Count Register */
  	u8 res8[0xF08];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
382
  } lbus83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
383
384
385
386
  
  /*
   * Serial Peripheral Interface
   */
b701652a4   Dave Liu   mpc83xx: Add 8360...
387
  typedef struct spi83xx {
e080313c3   Dave Liu   mpc83xx: streamli...
388
389
390
391
  	u32 mode;		/* mode register */
  	u32 event;		/* event register */
  	u32 mask;		/* mask register */
  	u32 com;		/* command register */
de1d0a699   Jon Loeliger   Fix style issues ...
392
  	u8 res0[0x10];
e080313c3   Dave Liu   mpc83xx: streamli...
393
394
395
  	u32 tx;			/* transmit register */
  	u32 rx;			/* receive register */
  	u8 res1[0xFD8];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
396
  } spi83xx_t;
61f25155a   Marian Balakowicz   Add DMA support f...
397
398
399
400
  
  /*
   * DMA/Messaging Unit
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
401
  typedef struct dma83xx {
b701652a4   Dave Liu   mpc83xx: Add 8360...
402
403
404
405
  	u32 res0[0xC];		/* 0x0-0x29 reseverd */
  	u32 omisr;		/* 0x30 Outbound message interrupt status register */
  	u32 omimr;		/* 0x34 Outbound message interrupt mask register */
  	u32 res1[0x6];		/* 0x38-0x49 reserved */
b701652a4   Dave Liu   mpc83xx: Add 8360...
406
407
408
409
  	u32 imr0;		/* 0x50 Inbound message register 0 */
  	u32 imr1;		/* 0x54 Inbound message register 1 */
  	u32 omr0;		/* 0x58 Outbound message register 0 */
  	u32 omr1;		/* 0x5C Outbound message register 1 */
b701652a4   Dave Liu   mpc83xx: Add 8360...
410
411
412
413
  	u32 odr;		/* 0x60 Outbound doorbell register */
  	u32 res2;		/* 0x64-0x67 reserved */
  	u32 idr;		/* 0x68 Inbound doorbell register */
  	u32 res3[0x5];		/* 0x6C-0x79 reserved */
b701652a4   Dave Liu   mpc83xx: Add 8360...
414
415
416
  	u32 imisr;		/* 0x80 Inbound message interrupt status register */
  	u32 imimr;		/* 0x84 Inbound message interrupt mask register */
  	u32 res4[0x1E];		/* 0x88-0x99 reserved */
b701652a4   Dave Liu   mpc83xx: Add 8360...
417
418
419
420
421
422
423
424
425
426
427
  	u32 dmamr0;		/* 0x100 DMA 0 mode register */
  	u32 dmasr0;		/* 0x104 DMA 0 status register */
  	u32 dmacdar0;		/* 0x108 DMA 0 current descriptor address register */
  	u32 res5;		/* 0x10C reserved */
  	u32 dmasar0;		/* 0x110 DMA 0 source address register */
  	u32 res6;		/* 0x114 reserved */
  	u32 dmadar0;		/* 0x118 DMA 0 destination address register */
  	u32 res7;		/* 0x11C reserved */
  	u32 dmabcr0;		/* 0x120 DMA 0 byte count register */
  	u32 dmandar0;		/* 0x124 DMA 0 next descriptor address register */
  	u32 res8[0x16];		/* 0x128-0x179 reserved */
b701652a4   Dave Liu   mpc83xx: Add 8360...
428
429
430
431
432
433
434
435
436
437
438
  	u32 dmamr1;		/* 0x180 DMA 1 mode register */
  	u32 dmasr1;		/* 0x184 DMA 1 status register */
  	u32 dmacdar1;		/* 0x188 DMA 1 current descriptor address register */
  	u32 res9;		/* 0x18C reserved */
  	u32 dmasar1;		/* 0x190 DMA 1 source address register */
  	u32 res10;		/* 0x194 reserved */
  	u32 dmadar1;		/* 0x198 DMA 1 destination address register */
  	u32 res11;		/* 0x19C reserved */
  	u32 dmabcr1;		/* 0x1A0 DMA 1 byte count register */
  	u32 dmandar1;		/* 0x1A4 DMA 1 next descriptor address register */
  	u32 res12[0x16];	/* 0x1A8-0x199 reserved */
b701652a4   Dave Liu   mpc83xx: Add 8360...
439
440
441
442
443
444
445
446
447
448
449
  	u32 dmamr2;		/* 0x200 DMA 2 mode register */
  	u32 dmasr2;		/* 0x204 DMA 2 status register */
  	u32 dmacdar2;		/* 0x208 DMA 2 current descriptor address register */
  	u32 res13;		/* 0x20C reserved */
  	u32 dmasar2;		/* 0x210 DMA 2 source address register */
  	u32 res14;		/* 0x214 reserved */
  	u32 dmadar2;		/* 0x218 DMA 2 destination address register */
  	u32 res15;		/* 0x21C reserved */
  	u32 dmabcr2;		/* 0x220 DMA 2 byte count register */
  	u32 dmandar2;		/* 0x224 DMA 2 next descriptor address register */
  	u32 res16[0x16];	/* 0x228-0x279 reserved */
b701652a4   Dave Liu   mpc83xx: Add 8360...
450
451
452
453
454
455
456
457
458
459
  	u32 dmamr3;		/* 0x280 DMA 3 mode register */
  	u32 dmasr3;		/* 0x284 DMA 3 status register */
  	u32 dmacdar3;		/* 0x288 DMA 3 current descriptor address register */
  	u32 res17;		/* 0x28C reserved */
  	u32 dmasar3;		/* 0x290 DMA 3 source address register */
  	u32 res18;		/* 0x294 reserved */
  	u32 dmadar3;		/* 0x298 DMA 3 destination address register */
  	u32 res19;		/* 0x29C reserved */
  	u32 dmabcr3;		/* 0x2A0 DMA 3 byte count register */
  	u32 dmandar3;		/* 0x2A4 DMA 3 next descriptor address register */
b701652a4   Dave Liu   mpc83xx: Add 8360...
460
461
  	u32 dmagsr;		/* 0x2A8 DMA general status register */
  	u32 res20[0x15];	/* 0x2AC-0x2FF reserved */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
462
  } dma83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
463
464
465
466
  
  /*
   * PCI Software Configuration Registers
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
467
  typedef struct pciconf83xx {
b701652a4   Dave Liu   mpc83xx: Add 8360...
468
  	u32 config_address;
f046ccd15   Eran Liberty   * Patch by Eran L...
469
470
  	u32 config_data;
  	u32 int_ack;
b701652a4   Dave Liu   mpc83xx: Add 8360...
471
  	u8 res[116];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
472
  } pciconf83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
473
474
475
476
477
  
  /*
   * PCI Outbound Translation Register
   */
  typedef struct pci_outbound_window {
b701652a4   Dave Liu   mpc83xx: Add 8360...
478
479
480
481
482
483
  	u32 potar;
  	u8 res0[4];
  	u32 pobar;
  	u8 res1[4];
  	u32 pocmr;
  	u8 res2[4];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
484
  } pot83xx_t;
b701652a4   Dave Liu   mpc83xx: Add 8360...
485

f046ccd15   Eran Liberty   * Patch by Eran L...
486
487
  /*
   * Sequencer
de1d0a699   Jon Loeliger   Fix style issues ...
488
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
489
  typedef struct ios83xx {
b701652a4   Dave Liu   mpc83xx: Add 8360...
490
  	pot83xx_t pot[6];
b701652a4   Dave Liu   mpc83xx: Add 8360...
491
492
493
494
495
  	u8 res0[0x60];
  	u32 pmcr;
  	u8 res1[4];
  	u32 dtcr;
  	u8 res2[4];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
496
  } ios83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
497
498
499
500
  
  /*
   * PCI Controller Control and Status Registers
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
501
  typedef struct pcictrl83xx {
b701652a4   Dave Liu   mpc83xx: Add 8360...
502
  	u32 esr;
b701652a4   Dave Liu   mpc83xx: Add 8360...
503
  	u32 ecdr;
f046ccd15   Eran Liberty   * Patch by Eran L...
504
  	u32 eer;
b701652a4   Dave Liu   mpc83xx: Add 8360...
505
  	u32 eatcr;
b701652a4   Dave Liu   mpc83xx: Add 8360...
506
507
  	u32 eacr;
  	u32 eeacr;
b701652a4   Dave Liu   mpc83xx: Add 8360...
508
509
  	u32 edlcr;
  	u32 edhcr;
b701652a4   Dave Liu   mpc83xx: Add 8360...
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
  	u32 gcr;
  	u32 ecr;
  	u32 gsr;
  	u8 res0[12];
  	u32 pitar2;
  	u8 res1[4];
  	u32 pibar2;
  	u32 piebar2;
  	u32 piwar2;
  	u8 res2[4];
  	u32 pitar1;
  	u8 res3[4];
  	u32 pibar1;
  	u32 piebar1;
  	u32 piwar1;
  	u8 res4[4];
  	u32 pitar0;
  	u8 res5[4];
  	u32 pibar0;
  	u8 res6[4];
  	u32 piwar0;
  	u8 res7[132];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
532
  } pcictrl83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
533
534
  
  /*
de1d0a699   Jon Loeliger   Fix style issues ...
535
   * USB
f046ccd15   Eran Liberty   * Patch by Eran L...
536
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
537
  typedef struct usb83xx {
d87c57b20   Scott Wood   mpc83xx: Add regi...
538
  	u8 fixme[0x1000];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
539
  } usb83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
540
541
542
543
  
  /*
   * TSEC
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
544
  typedef struct tsec83xx {
f046ccd15   Eran Liberty   * Patch by Eran L...
545
  	u8 fixme[0x1000];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
546
  } tsec83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
547
548
549
550
  
  /*
   * Security
   */
f6eda7f80   Dave Liu   mpc83xx: Changed ...
551
  typedef struct security83xx {
f046ccd15   Eran Liberty   * Patch by Eran L...
552
  	u8 fixme[0x10000];
f6eda7f80   Dave Liu   mpc83xx: Changed ...
553
  } security83xx_t;
f046ccd15   Eran Liberty   * Patch by Eran L...
554

03051c3d3   Dave Liu   mpc83xx: Add the ...
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
  /*
   *  PCI Express
   */
  typedef struct pex83xx {
  	u8 fixme[0x1000];
  } pex83xx_t;
  
  /*
   * SATA
   */
  typedef struct sata83xx {
  	u8 fixme[0x1000];
  } sata83xx_t;
  
  /*
   * eSDHC
   */
  typedef struct sdhc83xx {
  	u8 fixme[0x1000];
  } sdhc83xx_t;
  
  /*
   * SerDes
   */
  typedef struct serdes83xx {
  	u8 fixme[0x100];
  } serdes83xx_t;
  
  /*
   * On Chip ROM
   */
  typedef struct rom83xx {
  	u8 mem[0x10000];
  } rom83xx_t;
555da6170   Dave Liu   mpc83xx: Add the ...
589
590
591
592
593
594
595
596
597
598
599
600
601
  /*
   * TDM
   */
  typedef struct tdm83xx {
  	u8 fixme[0x200];
  } tdm83xx_t;
  
  /*
   * TDM DMAC
   */
  typedef struct tdmdmac83xx {
  	u8 fixme[0x2000];
  } tdmdmac83xx_t;
3e78a31cf   Kumar Gala   mpc83xx: Replace ...
602
  #if defined(CONFIG_MPC834X)
e080313c3   Dave Liu   mpc83xx: streamli...
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
  typedef struct immap {
  	sysconf83xx_t		sysconf;	/* System configuration */
  	wdt83xx_t		wdt;		/* Watch Dog Timer (WDT) Registers */
  	rtclk83xx_t		rtc;		/* Real Time Clock Module Registers */
  	rtclk83xx_t		pit;		/* Periodic Interval Timer */
  	gtm83xx_t		gtm[2];		/* Global Timers Module */
  	ipic83xx_t		ipic;		/* Integrated Programmable Interrupt Controller */
  	arbiter83xx_t		arbiter;	/* System Arbiter Registers */
  	reset83xx_t		reset;		/* Reset Module */
  	clk83xx_t		clk;		/* System Clock Module */
  	pmc83xx_t		pmc;		/* Power Management Control Module */
  	gpio83xx_t		gpio[2];	/* General purpose I/O module */
  	u8			res0[0x200];
  	u8			dll_ddr[0x100];
  	u8			dll_lbc[0x100];
  	u8			res1[0xE00];
  	ddr83xx_t		ddr;		/* DDR Memory Controller Memory */
  	fsl_i2c_t		i2c[2];		/* I2C Controllers */
  	u8			res2[0x1300];
  	duart83xx_t		duart[2];	/* DUART */
  	u8			res3[0x900];
  	lbus83xx_t		lbus;		/* Local Bus Controller Registers */
  	u8			res4[0x1000];
04a9e1180   Ben Warren   Add support for a...
626
  	spi8xxx_t		spi;		/* Serial Peripheral Interface */
e080313c3   Dave Liu   mpc83xx: streamli...
627
628
629
630
631
  	dma83xx_t		dma;		/* DMA */
  	pciconf83xx_t		pci_conf[2];	/* PCI Software Configuration Registers */
  	ios83xx_t		ios;		/* Sequencer */
  	pcictrl83xx_t		pci_ctrl[2];	/* PCI Controller Control and Status Registers */
  	u8			res5[0x19900];
d87c57b20   Scott Wood   mpc83xx: Add regi...
632
633
634
635
636
637
  	usb83xx_t		usb[2];
  	tsec83xx_t		tsec[2];
  	u8			res6[0xA000];
  	security83xx_t		security;
  	u8			res7[0xC0000];
  } immap_t;
555da6170   Dave Liu   mpc83xx: Add the ...
638
  #elif defined(CONFIG_MPC8313)
d87c57b20   Scott Wood   mpc83xx: Add regi...
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
  typedef struct immap {
  	sysconf83xx_t		sysconf;	/* System configuration */
  	wdt83xx_t		wdt;		/* Watch Dog Timer (WDT) Registers */
  	rtclk83xx_t		rtc;		/* Real Time Clock Module Registers */
  	rtclk83xx_t		pit;		/* Periodic Interval Timer */
  	gtm83xx_t		gtm[2];		/* Global Timers Module */
  	ipic83xx_t		ipic;		/* Integrated Programmable Interrupt Controller */
  	arbiter83xx_t		arbiter;	/* System Arbiter Registers */
  	reset83xx_t		reset;		/* Reset Module */
  	clk83xx_t		clk;		/* System Clock Module */
  	pmc83xx_t		pmc;		/* Power Management Control Module */
  	gpio83xx_t		gpio[1];	/* General purpose I/O module */
  	u8			res0[0x1300];
  	ddr83xx_t		ddr;		/* DDR Memory Controller Memory */
  	fsl_i2c_t		i2c[2];		/* I2C Controllers */
  	u8			res1[0x1300];
  	duart83xx_t		duart[2];	/* DUART */
  	u8			res2[0x900];
  	lbus83xx_t		lbus;		/* Local Bus Controller Registers */
  	u8			res3[0x1000];
04a9e1180   Ben Warren   Add support for a...
659
  	spi8xxx_t		spi;		/* Serial Peripheral Interface */
d87c57b20   Scott Wood   mpc83xx: Add regi...
660
661
662
663
664
665
666
  	dma83xx_t		dma;		/* DMA */
  	pciconf83xx_t		pci_conf[1];	/* PCI Software Configuration Registers */
  	u8			res4[0x80];
  	ios83xx_t		ios;		/* Sequencer */
  	pcictrl83xx_t		pci_ctrl[1];	/* PCI Controller Control and Status Registers */
  	u8			res5[0x1aa00];
  	usb83xx_t		usb[1];
e080313c3   Dave Liu   mpc83xx: streamli...
667
668
669
670
671
  	tsec83xx_t		tsec[2];
  	u8			res6[0xA000];
  	security83xx_t		security;
  	u8			res7[0xC0000];
  } immap_t;
b701652a4   Dave Liu   mpc83xx: Add 8360...
672

555da6170   Dave Liu   mpc83xx: Add the ...
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
  #elif defined(CONFIG_MPC8315)
  typedef struct immap {
  	sysconf83xx_t		sysconf;	/* System configuration */
  	wdt83xx_t		wdt;		/* Watch Dog Timer (WDT) Registers */
  	rtclk83xx_t		rtc;		/* Real Time Clock Module Registers */
  	rtclk83xx_t		pit;		/* Periodic Interval Timer */
  	gtm83xx_t		gtm[2];		/* Global Timers Module */
  	ipic83xx_t		ipic;		/* Integrated Programmable Interrupt Controller */
  	arbiter83xx_t		arbiter;	/* System Arbiter Registers */
  	reset83xx_t		reset;		/* Reset Module */
  	clk83xx_t		clk;		/* System Clock Module */
  	pmc83xx_t		pmc;		/* Power Management Control Module */
  	gpio83xx_t		gpio[1];	/* General purpose I/O module */
  	u8			res0[0x1300];
  	ddr83xx_t		ddr;		/* DDR Memory Controller Memory */
  	fsl_i2c_t		i2c[2];		/* I2C Controllers */
  	u8			res1[0x1300];
  	duart83xx_t		duart[2];	/* DUART */
  	u8			res2[0x900];
  	lbus83xx_t		lbus;		/* Local Bus Controller Registers */
  	u8			res3[0x1000];
04a9e1180   Ben Warren   Add support for a...
694
  	spi8xxx_t		spi;		/* Serial Peripheral Interface */
555da6170   Dave Liu   mpc83xx: Add the ...
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
  	dma83xx_t		dma;		/* DMA */
  	pciconf83xx_t		pci_conf[1];	/* PCI Software Configuration Registers */
  	u8			res4[0x80];
  	ios83xx_t		ios;		/* Sequencer */
  	pcictrl83xx_t		pci_ctrl[1];	/* PCI Controller Control and Status Registers */
  	u8			res5[0xa00];
  	pex83xx_t		pciexp[2];	/* PCI Express Controller */
  	u8			res6[0xb000];
  	tdm83xx_t		tdm;		/* TDM Controller */
  	u8			res7[0x1e00];
  	sata83xx_t		sata[2];	/* SATA Controller */
  	u8			res8[0x9000];
  	usb83xx_t		usb[1];		/* USB DR Controller */
  	tsec83xx_t		tsec[2];
  	u8			res9[0x6000];
  	tdmdmac83xx_t		tdmdmac;	/* TDM DMAC */
  	u8			res10[0x2000];
  	security83xx_t		security;
  	u8			res11[0xA3000];
  	serdes83xx_t		serdes[1];	/* SerDes Registers */
  	u8			res12[0x1CF00];
  } immap_t;
03051c3d3   Dave Liu   mpc83xx: Add the ...
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
  #elif defined(CONFIG_MPC837X)
  typedef struct immap {
  	sysconf83xx_t		sysconf;	/* System configuration */
  	wdt83xx_t		wdt;		/* Watch Dog Timer (WDT) Registers */
  	rtclk83xx_t		rtc;		/* Real Time Clock Module Registers */
  	rtclk83xx_t		pit;		/* Periodic Interval Timer */
  	gtm83xx_t		gtm[2];		/* Global Timers Module */
  	ipic83xx_t		ipic;		/* Integrated Programmable Interrupt Controller */
  	arbiter83xx_t		arbiter;	/* System Arbiter Registers */
  	reset83xx_t		reset;		/* Reset Module */
  	clk83xx_t		clk;		/* System Clock Module */
  	pmc83xx_t		pmc;		/* Power Management Control Module */
  	gpio83xx_t		gpio[2];	/* General purpose I/O module */
  	u8			res0[0x1200];
  	ddr83xx_t		ddr;		/* DDR Memory Controller Memory */
  	fsl_i2c_t		i2c[2];		/* I2C Controllers */
  	u8			res1[0x1300];
  	duart83xx_t		duart[2];	/* DUART */
  	u8			res2[0x900];
  	lbus83xx_t		lbus;		/* Local Bus Controller Registers */
  	u8			res3[0x1000];
04a9e1180   Ben Warren   Add support for a...
738
  	spi8xxx_t		spi;		/* Serial Peripheral Interface */
03051c3d3   Dave Liu   mpc83xx: Add the ...
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
  	dma83xx_t		dma;		/* DMA */
  	pciconf83xx_t		pci_conf[1];	/* PCI Software Configuration Registers */
  	u8			res4[0x80];
  	ios83xx_t		ios;		/* Sequencer */
  	pcictrl83xx_t		pci_ctrl[1];	/* PCI Controller Control and Status Registers */
  	u8			res5[0xa00];
  	pex83xx_t		pciexp[2];	/* PCI Express Controller */
  	u8			res6[0xd000];
  	sata83xx_t		sata[4];	/* SATA Controller */
  	u8			res7[0x7000];
  	usb83xx_t		usb[1];		/* USB DR Controller */
  	tsec83xx_t		tsec[2];
  	u8			res8[0x8000];
  	sdhc83xx_t		sdhc;		/* SDHC Controller */
  	u8			res9[0x1000];
  	security83xx_t		security;
  	u8			res10[0xA3000];
  	serdes83xx_t		serdes[2];	/* SerDes Registers */
  	u8			res11[0xCE00];
  	rom83xx_t		rom;		/* On Chip ROM */
  } immap_t;
e080313c3   Dave Liu   mpc83xx: streamli...
760
  #elif defined(CONFIG_MPC8360)
f046ccd15   Eran Liberty   * Patch by Eran L...
761
  typedef struct immap {
e080313c3   Dave Liu   mpc83xx: streamli...
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
  	sysconf83xx_t		sysconf;	/* System configuration */
  	wdt83xx_t		wdt;		/* Watch Dog Timer (WDT) Registers */
  	rtclk83xx_t		rtc;		/* Real Time Clock Module Registers */
  	rtclk83xx_t		pit;		/* Periodic Interval Timer */
  	u8			res0[0x200];
  	ipic83xx_t		ipic;		/* Integrated Programmable Interrupt Controller */
  	arbiter83xx_t		arbiter;	/* System Arbiter Registers */
  	reset83xx_t		reset;		/* Reset Module */
  	clk83xx_t		clk;		/* System Clock Module */
  	pmc83xx_t		pmc;		/* Power Management Control Module */
  	qepi83xx_t		qepi;		/* QE Ports Interrupts Registers */
  	u8			res1[0x300];
  	u8			dll_ddr[0x100];
  	u8			dll_lbc[0x100];
  	u8			res2[0x200];
  	qepio83xx_t		qepio;		/* QE Parallel I/O ports */
  	qesba83xx_t		qesba;		/* QE Secondary Bus Access Windows */
  	u8			res3[0x400];
  	ddr83xx_t		ddr;		/* DDR Memory Controller Memory */
  	fsl_i2c_t		i2c[2];		/* I2C Controllers */
  	u8			res4[0x1300];
  	duart83xx_t		duart[2];	/* DUART */
  	u8			res5[0x900];
  	lbus83xx_t		lbus;		/* Local Bus Controller Registers */
  	u8			res6[0x2000];
  	dma83xx_t		dma;		/* DMA */
  	pciconf83xx_t		pci_conf[1];	/* PCI Software Configuration Registers */
  	u8			res7[128];
  	ios83xx_t		ios;		/* Sequencer (IOS) */
  	pcictrl83xx_t		pci_ctrl[1];	/* PCI Controller Control and Status Registers */
  	u8			res8[0x4A00];
  	ddr83xx_t		ddr_secondary;	/* Secondary DDR Memory Controller Memory Map */
  	u8			res9[0x22000];
  	security83xx_t		security;
  	u8			res10[0xC0000];
  	u8			qe[0x100000];	/* QE block */
f046ccd15   Eran Liberty   * Patch by Eran L...
798
  } immap_t;
24c3aca3f   Dave Liu   mpc83xx: Add supp...
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
  
  #elif defined(CONFIG_MPC832X)
  typedef struct immap {
  	sysconf83xx_t		sysconf;	/* System configuration */
  	wdt83xx_t		wdt;		/* Watch Dog Timer (WDT) Registers */
  	rtclk83xx_t		rtc;		/* Real Time Clock Module Registers */
  	rtclk83xx_t		pit;		/* Periodic Interval Timer */
  	gtm83xx_t		gtm[2];		/* Global Timers Module */
  	ipic83xx_t		ipic;		/* Integrated Programmable Interrupt Controller */
  	arbiter83xx_t		arbiter;	/* System Arbiter Registers */
  	reset83xx_t		reset;		/* Reset Module */
  	clk83xx_t		clk;		/* System Clock Module */
  	pmc83xx_t		pmc;		/* Power Management Control Module */
  	qepi83xx_t		qepi;		/* QE Ports Interrupts Registers */
  	u8			res0[0x300];
  	u8			dll_ddr[0x100];
  	u8			dll_lbc[0x100];
  	u8			res1[0x200];
  	qepio83xx_t		qepio;		/* QE Parallel I/O ports */
  	u8			res2[0x800];
  	ddr83xx_t		ddr;		/* DDR Memory Controller Memory */
  	fsl_i2c_t		i2c[2];		/* I2C Controllers */
  	u8			res3[0x1300];
  	duart83xx_t		duart[2];	/* DUART */
  	u8			res4[0x900];
  	lbus83xx_t		lbus;		/* Local Bus Controller Registers */
  	u8			res5[0x2000];
  	dma83xx_t		dma;		/* DMA */
  	pciconf83xx_t		pci_conf[1];	/* PCI Software Configuration Registers */
  	u8			res6[128];
  	ios83xx_t		ios;		/* Sequencer (IOS) */
  	pcictrl83xx_t		pci_ctrl[1];	/* PCI Controller Control and Status Registers */
  	u8			res7[0x27A00];
  	security83xx_t		security;
  	u8			res8[0xC0000];
  	u8			qe[0x100000];	/* QE block */
  } immap_t;
e080313c3   Dave Liu   mpc83xx: streamli...
836
  #endif
f046ccd15   Eran Liberty   * Patch by Eran L...
837

b701652a4   Dave Liu   mpc83xx: Add 8360...
838
  #endif				/* __IMMAP_83xx__ */