mm: hugetlb: fix hugepage memory leak caused by wrong reserve count
[linux/fpc-iii.git] / arch / arm / mach-omap2 / omap_hwmod_33xx_43xx_interconnect_data.c
blob1c210cb2b8c1ec1ce956b0946027fe9b6dc6607c
1 /*
3 * Copyright (C) 2013 Texas Instruments Incorporated
5 * Interconnects common for AM335x and AM43x
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation version 2.
11 * This program is distributed "as is" WITHOUT ANY WARRANTY of any
12 * kind, whether express or implied; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
17 #include <linux/sizes.h>
18 #include "omap_hwmod.h"
19 #include "omap_hwmod_33xx_43xx_common_data.h"
21 /* mpu -> l3 main */
22 struct omap_hwmod_ocp_if am33xx_mpu__l3_main = {
23 .master = &am33xx_mpu_hwmod,
24 .slave = &am33xx_l3_main_hwmod,
25 .clk = "dpll_mpu_m2_ck",
26 .user = OCP_USER_MPU,
29 /* l3 main -> l3 s */
30 struct omap_hwmod_ocp_if am33xx_l3_main__l3_s = {
31 .master = &am33xx_l3_main_hwmod,
32 .slave = &am33xx_l3_s_hwmod,
33 .clk = "l3s_gclk",
34 .user = OCP_USER_MPU | OCP_USER_SDMA,
37 /* l3 s -> l4 per/ls */
38 struct omap_hwmod_ocp_if am33xx_l3_s__l4_ls = {
39 .master = &am33xx_l3_s_hwmod,
40 .slave = &am33xx_l4_ls_hwmod,
41 .clk = "l3s_gclk",
42 .user = OCP_USER_MPU | OCP_USER_SDMA,
45 /* l3 s -> l4 wkup */
46 struct omap_hwmod_ocp_if am33xx_l3_s__l4_wkup = {
47 .master = &am33xx_l3_s_hwmod,
48 .slave = &am33xx_l4_wkup_hwmod,
49 .clk = "l3s_gclk",
50 .user = OCP_USER_MPU | OCP_USER_SDMA,
53 /* l3 main -> l3 instr */
54 struct omap_hwmod_ocp_if am33xx_l3_main__l3_instr = {
55 .master = &am33xx_l3_main_hwmod,
56 .slave = &am33xx_l3_instr_hwmod,
57 .clk = "l3s_gclk",
58 .user = OCP_USER_MPU | OCP_USER_SDMA,
61 /* mpu -> prcm */
62 struct omap_hwmod_ocp_if am33xx_mpu__prcm = {
63 .master = &am33xx_mpu_hwmod,
64 .slave = &am33xx_prcm_hwmod,
65 .clk = "dpll_mpu_m2_ck",
66 .user = OCP_USER_MPU | OCP_USER_SDMA,
69 /* l3 s -> l3 main*/
70 struct omap_hwmod_ocp_if am33xx_l3_s__l3_main = {
71 .master = &am33xx_l3_s_hwmod,
72 .slave = &am33xx_l3_main_hwmod,
73 .clk = "l3s_gclk",
74 .user = OCP_USER_MPU | OCP_USER_SDMA,
77 /* pru-icss -> l3 main */
78 struct omap_hwmod_ocp_if am33xx_pruss__l3_main = {
79 .master = &am33xx_pruss_hwmod,
80 .slave = &am33xx_l3_main_hwmod,
81 .clk = "l3_gclk",
82 .user = OCP_USER_MPU | OCP_USER_SDMA,
85 /* gfx -> l3 main */
86 struct omap_hwmod_ocp_if am33xx_gfx__l3_main = {
87 .master = &am33xx_gfx_hwmod,
88 .slave = &am33xx_l3_main_hwmod,
89 .clk = "dpll_core_m4_ck",
90 .user = OCP_USER_MPU | OCP_USER_SDMA,
93 /* l3 main -> gfx */
94 struct omap_hwmod_ocp_if am33xx_l3_main__gfx = {
95 .master = &am33xx_l3_main_hwmod,
96 .slave = &am33xx_gfx_hwmod,
97 .clk = "dpll_core_m4_ck",
98 .user = OCP_USER_MPU | OCP_USER_SDMA,
101 /* l4 wkup -> rtc */
102 struct omap_hwmod_ocp_if am33xx_l4_wkup__rtc = {
103 .master = &am33xx_l4_wkup_hwmod,
104 .slave = &am33xx_rtc_hwmod,
105 .clk = "clkdiv32k_ick",
106 .user = OCP_USER_MPU,
109 /* l4 per/ls -> DCAN0 */
110 struct omap_hwmod_ocp_if am33xx_l4_per__dcan0 = {
111 .master = &am33xx_l4_ls_hwmod,
112 .slave = &am33xx_dcan0_hwmod,
113 .clk = "l4ls_gclk",
114 .user = OCP_USER_MPU | OCP_USER_SDMA,
117 /* l4 per/ls -> DCAN1 */
118 struct omap_hwmod_ocp_if am33xx_l4_per__dcan1 = {
119 .master = &am33xx_l4_ls_hwmod,
120 .slave = &am33xx_dcan1_hwmod,
121 .clk = "l4ls_gclk",
122 .user = OCP_USER_MPU | OCP_USER_SDMA,
125 /* l4 per/ls -> GPIO2 */
126 struct omap_hwmod_ocp_if am33xx_l4_per__gpio1 = {
127 .master = &am33xx_l4_ls_hwmod,
128 .slave = &am33xx_gpio1_hwmod,
129 .clk = "l4ls_gclk",
130 .user = OCP_USER_MPU | OCP_USER_SDMA,
133 /* l4 per/ls -> gpio3 */
134 struct omap_hwmod_ocp_if am33xx_l4_per__gpio2 = {
135 .master = &am33xx_l4_ls_hwmod,
136 .slave = &am33xx_gpio2_hwmod,
137 .clk = "l4ls_gclk",
138 .user = OCP_USER_MPU | OCP_USER_SDMA,
141 /* l4 per/ls -> gpio4 */
142 struct omap_hwmod_ocp_if am33xx_l4_per__gpio3 = {
143 .master = &am33xx_l4_ls_hwmod,
144 .slave = &am33xx_gpio3_hwmod,
145 .clk = "l4ls_gclk",
146 .user = OCP_USER_MPU | OCP_USER_SDMA,
149 struct omap_hwmod_ocp_if am33xx_cpgmac0__mdio = {
150 .master = &am33xx_cpgmac0_hwmod,
151 .slave = &am33xx_mdio_hwmod,
152 .user = OCP_USER_MPU,
155 struct omap_hwmod_ocp_if am33xx_l4_ls__elm = {
156 .master = &am33xx_l4_ls_hwmod,
157 .slave = &am33xx_elm_hwmod,
158 .clk = "l4ls_gclk",
159 .user = OCP_USER_MPU,
162 static struct omap_hwmod_addr_space am33xx_epwmss0_addr_space[] = {
164 .pa_start = 0x48300000,
165 .pa_end = 0x48300000 + SZ_16 - 1,
166 .flags = ADDR_TYPE_RT
171 struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss0 = {
172 .master = &am33xx_l4_ls_hwmod,
173 .slave = &am33xx_epwmss0_hwmod,
174 .clk = "l4ls_gclk",
175 .addr = am33xx_epwmss0_addr_space,
176 .user = OCP_USER_MPU,
179 struct omap_hwmod_ocp_if am33xx_epwmss0__ecap0 = {
180 .master = &am33xx_epwmss0_hwmod,
181 .slave = &am33xx_ecap0_hwmod,
182 .clk = "l4ls_gclk",
183 .user = OCP_USER_MPU,
186 struct omap_hwmod_ocp_if am33xx_epwmss0__eqep0 = {
187 .master = &am33xx_epwmss0_hwmod,
188 .slave = &am33xx_eqep0_hwmod,
189 .clk = "l4ls_gclk",
190 .user = OCP_USER_MPU,
193 struct omap_hwmod_ocp_if am33xx_epwmss0__ehrpwm0 = {
194 .master = &am33xx_epwmss0_hwmod,
195 .slave = &am33xx_ehrpwm0_hwmod,
196 .clk = "l4ls_gclk",
197 .user = OCP_USER_MPU,
201 static struct omap_hwmod_addr_space am33xx_epwmss1_addr_space[] = {
203 .pa_start = 0x48302000,
204 .pa_end = 0x48302000 + SZ_16 - 1,
205 .flags = ADDR_TYPE_RT
210 struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss1 = {
211 .master = &am33xx_l4_ls_hwmod,
212 .slave = &am33xx_epwmss1_hwmod,
213 .clk = "l4ls_gclk",
214 .addr = am33xx_epwmss1_addr_space,
215 .user = OCP_USER_MPU,
218 struct omap_hwmod_ocp_if am33xx_epwmss1__ecap1 = {
219 .master = &am33xx_epwmss1_hwmod,
220 .slave = &am33xx_ecap1_hwmod,
221 .clk = "l4ls_gclk",
222 .user = OCP_USER_MPU,
225 struct omap_hwmod_ocp_if am33xx_epwmss1__eqep1 = {
226 .master = &am33xx_epwmss1_hwmod,
227 .slave = &am33xx_eqep1_hwmod,
228 .clk = "l4ls_gclk",
229 .user = OCP_USER_MPU,
232 struct omap_hwmod_ocp_if am33xx_epwmss1__ehrpwm1 = {
233 .master = &am33xx_epwmss1_hwmod,
234 .slave = &am33xx_ehrpwm1_hwmod,
235 .clk = "l4ls_gclk",
236 .user = OCP_USER_MPU,
239 static struct omap_hwmod_addr_space am33xx_epwmss2_addr_space[] = {
241 .pa_start = 0x48304000,
242 .pa_end = 0x48304000 + SZ_16 - 1,
243 .flags = ADDR_TYPE_RT
248 struct omap_hwmod_ocp_if am33xx_l4_ls__epwmss2 = {
249 .master = &am33xx_l4_ls_hwmod,
250 .slave = &am33xx_epwmss2_hwmod,
251 .clk = "l4ls_gclk",
252 .addr = am33xx_epwmss2_addr_space,
253 .user = OCP_USER_MPU,
256 struct omap_hwmod_ocp_if am33xx_epwmss2__ecap2 = {
257 .master = &am33xx_epwmss2_hwmod,
258 .slave = &am33xx_ecap2_hwmod,
259 .clk = "l4ls_gclk",
260 .user = OCP_USER_MPU,
263 struct omap_hwmod_ocp_if am33xx_epwmss2__eqep2 = {
264 .master = &am33xx_epwmss2_hwmod,
265 .slave = &am33xx_eqep2_hwmod,
266 .clk = "l4ls_gclk",
267 .user = OCP_USER_MPU,
270 struct omap_hwmod_ocp_if am33xx_epwmss2__ehrpwm2 = {
271 .master = &am33xx_epwmss2_hwmod,
272 .slave = &am33xx_ehrpwm2_hwmod,
273 .clk = "l4ls_gclk",
274 .user = OCP_USER_MPU,
277 /* l3s cfg -> gpmc */
278 struct omap_hwmod_ocp_if am33xx_l3_s__gpmc = {
279 .master = &am33xx_l3_s_hwmod,
280 .slave = &am33xx_gpmc_hwmod,
281 .clk = "l3s_gclk",
282 .user = OCP_USER_MPU,
285 /* i2c2 */
286 struct omap_hwmod_ocp_if am33xx_l4_per__i2c2 = {
287 .master = &am33xx_l4_ls_hwmod,
288 .slave = &am33xx_i2c2_hwmod,
289 .clk = "l4ls_gclk",
290 .user = OCP_USER_MPU,
293 struct omap_hwmod_ocp_if am33xx_l4_per__i2c3 = {
294 .master = &am33xx_l4_ls_hwmod,
295 .slave = &am33xx_i2c3_hwmod,
296 .clk = "l4ls_gclk",
297 .user = OCP_USER_MPU,
300 /* l4 ls -> mailbox */
301 struct omap_hwmod_ocp_if am33xx_l4_per__mailbox = {
302 .master = &am33xx_l4_ls_hwmod,
303 .slave = &am33xx_mailbox_hwmod,
304 .clk = "l4ls_gclk",
305 .user = OCP_USER_MPU,
308 /* l4 ls -> spinlock */
309 struct omap_hwmod_ocp_if am33xx_l4_ls__spinlock = {
310 .master = &am33xx_l4_ls_hwmod,
311 .slave = &am33xx_spinlock_hwmod,
312 .clk = "l4ls_gclk",
313 .user = OCP_USER_MPU,
316 /* l4 ls -> mcasp0 */
317 static struct omap_hwmod_addr_space am33xx_mcasp0_addr_space[] = {
319 .pa_start = 0x48038000,
320 .pa_end = 0x48038000 + SZ_8K - 1,
321 .flags = ADDR_TYPE_RT
326 struct omap_hwmod_ocp_if am33xx_l4_ls__mcasp0 = {
327 .master = &am33xx_l4_ls_hwmod,
328 .slave = &am33xx_mcasp0_hwmod,
329 .clk = "l4ls_gclk",
330 .addr = am33xx_mcasp0_addr_space,
331 .user = OCP_USER_MPU,
334 /* l4 ls -> mcasp1 */
335 static struct omap_hwmod_addr_space am33xx_mcasp1_addr_space[] = {
337 .pa_start = 0x4803C000,
338 .pa_end = 0x4803C000 + SZ_8K - 1,
339 .flags = ADDR_TYPE_RT
344 struct omap_hwmod_ocp_if am33xx_l4_ls__mcasp1 = {
345 .master = &am33xx_l4_ls_hwmod,
346 .slave = &am33xx_mcasp1_hwmod,
347 .clk = "l4ls_gclk",
348 .addr = am33xx_mcasp1_addr_space,
349 .user = OCP_USER_MPU,
352 /* l4 ls -> mmc0 */
353 static struct omap_hwmod_addr_space am33xx_mmc0_addr_space[] = {
355 .pa_start = 0x48060100,
356 .pa_end = 0x48060100 + SZ_4K - 1,
357 .flags = ADDR_TYPE_RT,
362 struct omap_hwmod_ocp_if am33xx_l4_ls__mmc0 = {
363 .master = &am33xx_l4_ls_hwmod,
364 .slave = &am33xx_mmc0_hwmod,
365 .clk = "l4ls_gclk",
366 .addr = am33xx_mmc0_addr_space,
367 .user = OCP_USER_MPU,
370 /* l4 ls -> mmc1 */
371 static struct omap_hwmod_addr_space am33xx_mmc1_addr_space[] = {
373 .pa_start = 0x481d8100,
374 .pa_end = 0x481d8100 + SZ_4K - 1,
375 .flags = ADDR_TYPE_RT,
380 struct omap_hwmod_ocp_if am33xx_l4_ls__mmc1 = {
381 .master = &am33xx_l4_ls_hwmod,
382 .slave = &am33xx_mmc1_hwmod,
383 .clk = "l4ls_gclk",
384 .addr = am33xx_mmc1_addr_space,
385 .user = OCP_USER_MPU,
388 /* l3 s -> mmc2 */
389 static struct omap_hwmod_addr_space am33xx_mmc2_addr_space[] = {
391 .pa_start = 0x47810100,
392 .pa_end = 0x47810100 + SZ_64K - 1,
393 .flags = ADDR_TYPE_RT,
398 struct omap_hwmod_ocp_if am33xx_l3_s__mmc2 = {
399 .master = &am33xx_l3_s_hwmod,
400 .slave = &am33xx_mmc2_hwmod,
401 .clk = "l3s_gclk",
402 .addr = am33xx_mmc2_addr_space,
403 .user = OCP_USER_MPU,
406 /* l4 ls -> mcspi0 */
407 struct omap_hwmod_ocp_if am33xx_l4_ls__mcspi0 = {
408 .master = &am33xx_l4_ls_hwmod,
409 .slave = &am33xx_spi0_hwmod,
410 .clk = "l4ls_gclk",
411 .user = OCP_USER_MPU,
414 /* l4 ls -> mcspi1 */
415 struct omap_hwmod_ocp_if am33xx_l4_ls__mcspi1 = {
416 .master = &am33xx_l4_ls_hwmod,
417 .slave = &am33xx_spi1_hwmod,
418 .clk = "l4ls_gclk",
419 .user = OCP_USER_MPU,
422 /* l4 per -> timer2 */
423 struct omap_hwmod_ocp_if am33xx_l4_ls__timer2 = {
424 .master = &am33xx_l4_ls_hwmod,
425 .slave = &am33xx_timer2_hwmod,
426 .clk = "l4ls_gclk",
427 .user = OCP_USER_MPU,
430 /* l4 per -> timer3 */
431 struct omap_hwmod_ocp_if am33xx_l4_ls__timer3 = {
432 .master = &am33xx_l4_ls_hwmod,
433 .slave = &am33xx_timer3_hwmod,
434 .clk = "l4ls_gclk",
435 .user = OCP_USER_MPU,
438 /* l4 per -> timer4 */
439 struct omap_hwmod_ocp_if am33xx_l4_ls__timer4 = {
440 .master = &am33xx_l4_ls_hwmod,
441 .slave = &am33xx_timer4_hwmod,
442 .clk = "l4ls_gclk",
443 .user = OCP_USER_MPU,
446 /* l4 per -> timer5 */
447 struct omap_hwmod_ocp_if am33xx_l4_ls__timer5 = {
448 .master = &am33xx_l4_ls_hwmod,
449 .slave = &am33xx_timer5_hwmod,
450 .clk = "l4ls_gclk",
451 .user = OCP_USER_MPU,
454 /* l4 per -> timer6 */
455 struct omap_hwmod_ocp_if am33xx_l4_ls__timer6 = {
456 .master = &am33xx_l4_ls_hwmod,
457 .slave = &am33xx_timer6_hwmod,
458 .clk = "l4ls_gclk",
459 .user = OCP_USER_MPU,
462 /* l4 per -> timer7 */
463 struct omap_hwmod_ocp_if am33xx_l4_ls__timer7 = {
464 .master = &am33xx_l4_ls_hwmod,
465 .slave = &am33xx_timer7_hwmod,
466 .clk = "l4ls_gclk",
467 .user = OCP_USER_MPU,
470 /* l3 main -> tpcc */
471 struct omap_hwmod_ocp_if am33xx_l3_main__tpcc = {
472 .master = &am33xx_l3_main_hwmod,
473 .slave = &am33xx_tpcc_hwmod,
474 .clk = "l3_gclk",
475 .user = OCP_USER_MPU,
478 /* l3 main -> tpcc0 */
479 static struct omap_hwmod_addr_space am33xx_tptc0_addr_space[] = {
481 .pa_start = 0x49800000,
482 .pa_end = 0x49800000 + SZ_8K - 1,
483 .flags = ADDR_TYPE_RT,
488 struct omap_hwmod_ocp_if am33xx_l3_main__tptc0 = {
489 .master = &am33xx_l3_main_hwmod,
490 .slave = &am33xx_tptc0_hwmod,
491 .clk = "l3_gclk",
492 .addr = am33xx_tptc0_addr_space,
493 .user = OCP_USER_MPU,
496 /* l3 main -> tpcc1 */
497 static struct omap_hwmod_addr_space am33xx_tptc1_addr_space[] = {
499 .pa_start = 0x49900000,
500 .pa_end = 0x49900000 + SZ_8K - 1,
501 .flags = ADDR_TYPE_RT,
506 struct omap_hwmod_ocp_if am33xx_l3_main__tptc1 = {
507 .master = &am33xx_l3_main_hwmod,
508 .slave = &am33xx_tptc1_hwmod,
509 .clk = "l3_gclk",
510 .addr = am33xx_tptc1_addr_space,
511 .user = OCP_USER_MPU,
514 /* l3 main -> tpcc2 */
515 static struct omap_hwmod_addr_space am33xx_tptc2_addr_space[] = {
517 .pa_start = 0x49a00000,
518 .pa_end = 0x49a00000 + SZ_8K - 1,
519 .flags = ADDR_TYPE_RT,
524 struct omap_hwmod_ocp_if am33xx_l3_main__tptc2 = {
525 .master = &am33xx_l3_main_hwmod,
526 .slave = &am33xx_tptc2_hwmod,
527 .clk = "l3_gclk",
528 .addr = am33xx_tptc2_addr_space,
529 .user = OCP_USER_MPU,
532 /* l4 ls -> uart2 */
533 struct omap_hwmod_ocp_if am33xx_l4_ls__uart2 = {
534 .master = &am33xx_l4_ls_hwmod,
535 .slave = &am33xx_uart2_hwmod,
536 .clk = "l4ls_gclk",
537 .user = OCP_USER_MPU,
540 /* l4 ls -> uart3 */
541 struct omap_hwmod_ocp_if am33xx_l4_ls__uart3 = {
542 .master = &am33xx_l4_ls_hwmod,
543 .slave = &am33xx_uart3_hwmod,
544 .clk = "l4ls_gclk",
545 .user = OCP_USER_MPU,
548 /* l4 ls -> uart4 */
549 struct omap_hwmod_ocp_if am33xx_l4_ls__uart4 = {
550 .master = &am33xx_l4_ls_hwmod,
551 .slave = &am33xx_uart4_hwmod,
552 .clk = "l4ls_gclk",
553 .user = OCP_USER_MPU,
556 /* l4 ls -> uart5 */
557 struct omap_hwmod_ocp_if am33xx_l4_ls__uart5 = {
558 .master = &am33xx_l4_ls_hwmod,
559 .slave = &am33xx_uart5_hwmod,
560 .clk = "l4ls_gclk",
561 .user = OCP_USER_MPU,
564 /* l4 ls -> uart6 */
565 struct omap_hwmod_ocp_if am33xx_l4_ls__uart6 = {
566 .master = &am33xx_l4_ls_hwmod,
567 .slave = &am33xx_uart6_hwmod,
568 .clk = "l4ls_gclk",
569 .user = OCP_USER_MPU,
572 /* l3 main -> ocmc */
573 struct omap_hwmod_ocp_if am33xx_l3_main__ocmc = {
574 .master = &am33xx_l3_main_hwmod,
575 .slave = &am33xx_ocmcram_hwmod,
576 .user = OCP_USER_MPU | OCP_USER_SDMA,
579 /* l3 main -> sha0 HIB2 */
580 static struct omap_hwmod_addr_space am33xx_sha0_addrs[] = {
582 .pa_start = 0x53100000,
583 .pa_end = 0x53100000 + SZ_512 - 1,
584 .flags = ADDR_TYPE_RT
589 struct omap_hwmod_ocp_if am33xx_l3_main__sha0 = {
590 .master = &am33xx_l3_main_hwmod,
591 .slave = &am33xx_sha0_hwmod,
592 .clk = "sha0_fck",
593 .addr = am33xx_sha0_addrs,
594 .user = OCP_USER_MPU | OCP_USER_SDMA,
597 /* l3 main -> AES0 HIB2 */
598 static struct omap_hwmod_addr_space am33xx_aes0_addrs[] = {
600 .pa_start = 0x53500000,
601 .pa_end = 0x53500000 + SZ_1M - 1,
602 .flags = ADDR_TYPE_RT
607 struct omap_hwmod_ocp_if am33xx_l3_main__aes0 = {
608 .master = &am33xx_l3_main_hwmod,
609 .slave = &am33xx_aes0_hwmod,
610 .clk = "aes0_fck",
611 .addr = am33xx_aes0_addrs,
612 .user = OCP_USER_MPU | OCP_USER_SDMA,