1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * MCF5272 Internal Memory Map
4  *
5  * Copyright (c) 2003 Josef Baumgartner <josef.baumgartner@telex.de>
6  */
7 
8 #ifndef __IMMAP_5272__
9 #define __IMMAP_5272__
10 
11 #define MMAP_CFG	(CONFIG_SYS_MBAR + 0x00000000)
12 #define MMAP_INTC	(CONFIG_SYS_MBAR + 0x00000020)
13 #define MMAP_FBCS	(CONFIG_SYS_MBAR + 0x00000040)
14 #define MMAP_GPIO	(CONFIG_SYS_MBAR + 0x00000080)
15 #define MMAP_QSPI	(CONFIG_SYS_MBAR + 0x000000A0)
16 #define MMAP_PWM	(CONFIG_SYS_MBAR + 0x000000C0)
17 #define MMAP_DMA0	(CONFIG_SYS_MBAR + 0x000000E0)
18 #define MMAP_UART0	(CONFIG_SYS_MBAR + 0x00000100)
19 #define MMAP_UART1	(CONFIG_SYS_MBAR + 0x00000140)
20 #define MMAP_SDRAM	(CONFIG_SYS_MBAR + 0x00000180)
21 #define MMAP_TMR0	(CONFIG_SYS_MBAR + 0x00000200)
22 #define MMAP_TMR1	(CONFIG_SYS_MBAR + 0x00000220)
23 #define MMAP_TMR2	(CONFIG_SYS_MBAR + 0x00000240)
24 #define MMAP_TMR3	(CONFIG_SYS_MBAR + 0x00000260)
25 #define MMAP_WDOG	(CONFIG_SYS_MBAR + 0x00000280)
26 #define MMAP_PLIC	(CONFIG_SYS_MBAR + 0x00000300)
27 #define MMAP_FEC	(CONFIG_SYS_MBAR + 0x00000840)
28 #define MMAP_USB	(CONFIG_SYS_MBAR + 0x00001000)
29 
30 #include <asm/coldfire/pwm.h>
31 
32 /* System configuration registers */
33 typedef struct sys_ctrl {
34 	uint sc_mbar;
35 	ushort sc_scr;
36 	ushort sc_spr;
37 	uint sc_pmr;
38 	char res1[2];
39 	ushort sc_alpr;
40 	uint sc_dir;
41 	char res2[12];
42 } sysctrl_t;
43 
44 /* Interrupt module registers */
45 typedef struct int_ctrl {
46 	uint int_icr1;
47 	uint int_icr2;
48 	uint int_icr3;
49 	uint int_icr4;
50 	uint int_isr;
51 	uint int_pitr;
52 	uint int_piwr;
53 	uchar res1[3];
54 	uchar int_pivr;
55 } intctrl_t;
56 
57 /* Chip select module registers */
58 typedef struct cs_ctlr {
59 	uint cs_br0;
60 	uint cs_or0;
61 	uint cs_br1;
62 	uint cs_or1;
63 	uint cs_br2;
64 	uint cs_or2;
65 	uint cs_br3;
66 	uint cs_or3;
67 	uint cs_br4;
68 	uint cs_or4;
69 	uint cs_br5;
70 	uint cs_or5;
71 	uint cs_br6;
72 	uint cs_or6;
73 	uint cs_br7;
74 	uint cs_or7;
75 } csctrl_t;
76 
77 /* GPIO port registers */
78 typedef struct gpio_ctrl {
79 	uint gpio_pacnt;
80 	ushort gpio_paddr;
81 	ushort gpio_padat;
82 	uint gpio_pbcnt;
83 	ushort gpio_pbddr;
84 	ushort gpio_pbdat;
85 	uchar res1[4];
86 	ushort gpio_pcddr;
87 	ushort gpio_pcdat;
88 	uint gpio_pdcnt;
89 	uchar res2[4];
90 } gpio_t;
91 
92 /* DMA module registers */
93 typedef struct dma_ctrl {
94 	ulong dma_dmr;
95 	uchar res1[2];
96 	ushort dma_dir;
97 	ulong dma_dbcr;
98 	ulong dma_dsar;
99 	ulong dma_ddar;
100 	uchar res2[12];
101 } dma_t;
102 
103 /* SDRAM controller registers, offset: 0x180 */
104 typedef struct sdram_ctrl {
105 	uchar res1[2];
106 	ushort sdram_sdcr;
107 	uchar res2[2];
108 	ushort sdram_sdtr;
109 	uchar res3[120];
110 } sdramctrl_t;
111 
112 /* Watchdog registers */
113 typedef struct wdog_ctrl {
114 	ushort wdog_wrrr;
115 	ushort res1;
116 	ushort wdog_wirr;
117 	ushort res2;
118 	ushort wdog_wcr;
119 	ushort res3;
120 	ushort wdog_wer;
121 	uchar res4[114];
122 } wdog_t;
123 
124 /* PLIC module registers */
125 typedef struct plic_ctrl {
126 	ulong plic_p0b1rr;
127 	ulong plic_p1b1rr;
128 	ulong plic_p2b1rr;
129 	ulong plic_p3b1rr;
130 	ulong plic_p0b2rr;
131 	ulong plic_p1b2rr;
132 	ulong plic_p2b2rr;
133 	ulong plic_p3b2rr;
134 	uchar plic_p0drr;
135 	uchar plic_p1drr;
136 	uchar plic_p2drr;
137 	uchar plic_p3drr;
138 	uchar res1[4];
139 	ulong plic_p0b1tr;
140 	ulong plic_p1b1tr;
141 	ulong plic_p2b1tr;
142 	ulong plic_p3b1tr;
143 	ulong plic_p0b2tr;
144 	ulong plic_p1b2tr;
145 	ulong plic_p2b2tr;
146 	ulong plic_p3b2tr;
147 	uchar plic_p0dtr;
148 	uchar plic_p1dtr;
149 	uchar plic_p2dtr;
150 	uchar plic_p3dtr;
151 	uchar res2[4];
152 	ushort plic_p0cr;
153 	ushort plic_p1cr;
154 	ushort plic_p2cr;
155 	ushort plic_p3cr;
156 	ushort plic_p0icr;
157 	ushort plic_p1icr;
158 	ushort plic_p2icr;
159 	ushort plic_p3icr;
160 	ushort plic_p0gmr;
161 	ushort plic_p1gmr;
162 	ushort plic_p2gmr;
163 	ushort plic_p3gmr;
164 	ushort plic_p0gmt;
165 	ushort plic_p1gmt;
166 	ushort plic_p2gmt;
167 	ushort plic_p3gmt;
168 	uchar res3;
169 	uchar plic_pgmts;
170 	uchar plic_pgmta;
171 	uchar res4;
172 	uchar plic_p0gcir;
173 	uchar plic_p1gcir;
174 	uchar plic_p2gcir;
175 	uchar plic_p3gcir;
176 	uchar plic_p0gcit;
177 	uchar plic_p1gcit;
178 	uchar plic_p2gcit;
179 	uchar plic_p3gcit;
180 	uchar res5[3];
181 	uchar plic_pgcitsr;
182 	uchar res6[3];
183 	uchar plic_pdcsr;
184 	ushort plic_p0psr;
185 	ushort plic_p1psr;
186 	ushort plic_p2psr;
187 	ushort plic_p3psr;
188 	ushort plic_pasr;
189 	uchar res7;
190 	uchar plic_plcr;
191 	ushort res8;
192 	ushort plic_pdrqr;
193 	ushort plic_p0sdr;
194 	ushort plic_p1sdr;
195 	ushort plic_p2sdr;
196 	ushort plic_p3sdr;
197 	ushort res9;
198 	ushort plic_pcsr;
199 	uchar res10[1184];
200 } plic_t;
201 
202 /* USB module registers */
203 typedef struct usb {
204 	ushort res1;
205 	ushort usb_fnr;
206 	ushort res2;
207 	ushort usb_fnmr;
208 	ushort res3;
209 	ushort usb_rfmr;
210 	ushort res4;
211 	ushort usb_rfmmr;
212 	uchar res5[3];
213 	uchar usb_far;
214 	ulong usb_asr;
215 	ulong usb_drr1;
216 	ulong usb_drr2;
217 	ushort res6;
218 	ushort usb_specr;
219 	ushort res7;
220 	ushort usb_ep0sr;
221 	ulong usb_iep0cfg;
222 	ulong usb_oep0cfg;
223 	ulong usb_ep1cfg;
224 	ulong usb_ep2cfg;
225 	ulong usb_ep3cfg;
226 	ulong usb_ep4cfg;
227 	ulong usb_ep5cfg;
228 	ulong usb_ep6cfg;
229 	ulong usb_ep7cfg;
230 	ulong usb_ep0ctl;
231 	ushort res8;
232 	ushort usb_ep1ctl;
233 	ushort res9;
234 	ushort usb_ep2ctl;
235 	ushort res10;
236 	ushort usb_ep3ctl;
237 	ushort res11;
238 	ushort usb_ep4ctl;
239 	ushort res12;
240 	ushort usb_ep5ctl;
241 	ushort res13;
242 	ushort usb_ep6ctl;
243 	ushort res14;
244 	ushort usb_ep7ctl;
245 	ulong usb_ep0isr;
246 	ushort res15;
247 	ushort usb_ep1isr;
248 	ushort res16;
249 	ushort usb_ep2isr;
250 	ushort res17;
251 	ushort usb_ep3isr;
252 	ushort res18;
253 	ushort usb_ep4isr;
254 	ushort res19;
255 	ushort usb_ep5isr;
256 	ushort res20;
257 	ushort usb_ep6isr;
258 	ushort res21;
259 	ushort usb_ep7isr;
260 	ulong usb_ep0imr;
261 	ushort res22;
262 	ushort usb_ep1imr;
263 	ushort res23;
264 	ushort usb_ep2imr;
265 	ushort res24;
266 	ushort usb_ep3imr;
267 	ushort res25;
268 	ushort usb_ep4imr;
269 	ushort res26;
270 	ushort usb_ep5imr;
271 	ushort res27;
272 	ushort usb_ep6imr;
273 	ushort res28;
274 	ushort usb_ep7imr;
275 	ulong usb_ep0dr;
276 	ulong usb_ep1dr;
277 	ulong usb_ep2dr;
278 	ulong usb_ep3dr;
279 	ulong usb_ep4dr;
280 	ulong usb_ep5dr;
281 	ulong usb_ep6dr;
282 	ulong usb_ep7dr;
283 	ushort res29;
284 	ushort usb_ep0dpr;
285 	ushort res30;
286 	ushort usb_ep1dpr;
287 	ushort res31;
288 	ushort usb_ep2dpr;
289 	ushort res32;
290 	ushort usb_ep3dpr;
291 	ushort res33;
292 	ushort usb_ep4dpr;
293 	ushort res34;
294 	ushort usb_ep5dpr;
295 	ushort res35;
296 	ushort usb_ep6dpr;
297 	ushort res36;
298 	ushort usb_ep7dpr;
299 	uchar res37[788];
300 	uchar usb_cfgram[1024];
301 } usb_t;
302 
303 #endif				/* __IMMAP_5272__ */
304