1 // SPDX-License-Identifier: GPL-2.0-only
3 * Hardware modules present on the OMAP44xx chips
5 * Copyright (C) 2009-2012 Texas Instruments, Inc.
6 * Copyright (C) 2009-2010 Nokia Corporation
11 * This file is automatically generated from the OMAP hardware databases.
12 * We respectfully ask that any modifications to this file be coordinated
13 * with the public linux-omap@vger.kernel.org mailing list and the
14 * authors above to ensure that the autogeneration scripts are kept
15 * up-to-date with the file contents.
16 * Note that this file is currently not in sync with autogeneration scripts.
17 * The above note to be removed, once it is synced up.
22 #include "omap_hwmod.h"
23 #include "omap_hwmod_common_data.h"
27 #include "prm-regbits-44xx.h"
29 /* Base offset for all OMAP4 interrupts external to MPUSS */
30 #define OMAP44XX_IRQ_GIC_START 32
40 static struct omap_hwmod_class omap44xx_dmm_hwmod_class
= {
45 static struct omap_hwmod omap44xx_dmm_hwmod
= {
47 .class = &omap44xx_dmm_hwmod_class
,
48 .clkdm_name
= "l3_emif_clkdm",
51 .clkctrl_offs
= OMAP4_CM_MEMIF_DMM_CLKCTRL_OFFSET
,
52 .context_offs
= OMAP4_RM_MEMIF_DMM_CONTEXT_OFFSET
,
59 * instance(s): l3_instr, l3_main_1, l3_main_2, l3_main_3
61 static struct omap_hwmod_class omap44xx_l3_hwmod_class
= {
66 static struct omap_hwmod omap44xx_l3_instr_hwmod
= {
68 .class = &omap44xx_l3_hwmod_class
,
69 .clkdm_name
= "l3_instr_clkdm",
72 .clkctrl_offs
= OMAP4_CM_L3INSTR_L3_INSTR_CLKCTRL_OFFSET
,
73 .context_offs
= OMAP4_RM_L3INSTR_L3_INSTR_CONTEXT_OFFSET
,
74 .modulemode
= MODULEMODE_HWCTRL
,
80 static struct omap_hwmod omap44xx_l3_main_1_hwmod
= {
82 .class = &omap44xx_l3_hwmod_class
,
83 .clkdm_name
= "l3_1_clkdm",
86 .clkctrl_offs
= OMAP4_CM_L3_1_L3_1_CLKCTRL_OFFSET
,
87 .context_offs
= OMAP4_RM_L3_1_L3_1_CONTEXT_OFFSET
,
93 static struct omap_hwmod omap44xx_l3_main_2_hwmod
= {
95 .class = &omap44xx_l3_hwmod_class
,
96 .clkdm_name
= "l3_2_clkdm",
99 .clkctrl_offs
= OMAP4_CM_L3_2_L3_2_CLKCTRL_OFFSET
,
100 .context_offs
= OMAP4_RM_L3_2_L3_2_CONTEXT_OFFSET
,
106 static struct omap_hwmod omap44xx_l3_main_3_hwmod
= {
108 .class = &omap44xx_l3_hwmod_class
,
109 .clkdm_name
= "l3_instr_clkdm",
112 .clkctrl_offs
= OMAP4_CM_L3INSTR_L3_3_CLKCTRL_OFFSET
,
113 .context_offs
= OMAP4_RM_L3INSTR_L3_3_CONTEXT_OFFSET
,
114 .modulemode
= MODULEMODE_HWCTRL
,
121 * instance(s): l4_abe, l4_cfg, l4_per, l4_wkup
123 static struct omap_hwmod_class omap44xx_l4_hwmod_class
= {
128 static struct omap_hwmod omap44xx_l4_cfg_hwmod
= {
130 .class = &omap44xx_l4_hwmod_class
,
131 .clkdm_name
= "l4_cfg_clkdm",
134 .clkctrl_offs
= OMAP4_CM_L4CFG_L4_CFG_CLKCTRL_OFFSET
,
135 .context_offs
= OMAP4_RM_L4CFG_L4_CFG_CONTEXT_OFFSET
,
141 static struct omap_hwmod omap44xx_l4_per_hwmod
= {
143 .class = &omap44xx_l4_hwmod_class
,
144 .clkdm_name
= "l4_per_clkdm",
147 .clkctrl_offs
= OMAP4_CM_L4PER_L4PER_CLKCTRL_OFFSET
,
148 .context_offs
= OMAP4_RM_L4PER_L4_PER_CONTEXT_OFFSET
,
154 static struct omap_hwmod omap44xx_l4_wkup_hwmod
= {
156 .class = &omap44xx_l4_hwmod_class
,
157 .clkdm_name
= "l4_wkup_clkdm",
160 .clkctrl_offs
= OMAP4_CM_WKUP_L4WKUP_CLKCTRL_OFFSET
,
161 .context_offs
= OMAP4_RM_WKUP_L4WKUP_CONTEXT_OFFSET
,
168 * instance(s): mpu_private
170 static struct omap_hwmod_class omap44xx_mpu_bus_hwmod_class
= {
175 static struct omap_hwmod omap44xx_mpu_private_hwmod
= {
176 .name
= "mpu_private",
177 .class = &omap44xx_mpu_bus_hwmod_class
,
178 .clkdm_name
= "mpuss_clkdm",
181 .flags
= HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT
,
188 * instance(s): ocp_wp_noc
190 static struct omap_hwmod_class omap44xx_ocp_wp_noc_hwmod_class
= {
191 .name
= "ocp_wp_noc",
195 static struct omap_hwmod omap44xx_ocp_wp_noc_hwmod
= {
196 .name
= "ocp_wp_noc",
197 .class = &omap44xx_ocp_wp_noc_hwmod_class
,
198 .clkdm_name
= "l3_instr_clkdm",
201 .clkctrl_offs
= OMAP4_CM_L3INSTR_OCP_WP1_CLKCTRL_OFFSET
,
202 .context_offs
= OMAP4_RM_L3INSTR_OCP_WP1_CONTEXT_OFFSET
,
203 .modulemode
= MODULEMODE_HWCTRL
,
209 * Modules omap_hwmod structures
211 * The following IPs are excluded for the moment because:
212 * - They do not need an explicit SW control using omap_hwmod API.
213 * - They still need to be validated with the driver
214 * properly adapted to omap_hwmod / omap_device
220 * 'ctrl_module' class
221 * attila core control module + core pad control module + wkup pad control
222 * module + attila wkup control module
225 static struct omap_hwmod_class_sysconfig omap44xx_ctrl_module_sysc
= {
228 .sysc_flags
= SYSC_HAS_SIDLEMODE
,
229 .idlemodes
= (SIDLE_FORCE
| SIDLE_NO
| SIDLE_SMART
|
231 .sysc_fields
= &omap_hwmod_sysc_type2
,
234 static struct omap_hwmod_class omap44xx_ctrl_module_hwmod_class
= {
235 .name
= "ctrl_module",
236 .sysc
= &omap44xx_ctrl_module_sysc
,
239 /* ctrl_module_core */
240 static struct omap_hwmod omap44xx_ctrl_module_core_hwmod
= {
241 .name
= "ctrl_module_core",
242 .class = &omap44xx_ctrl_module_hwmod_class
,
243 .clkdm_name
= "l4_cfg_clkdm",
246 .flags
= HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT
,
251 /* ctrl_module_pad_core */
252 static struct omap_hwmod omap44xx_ctrl_module_pad_core_hwmod
= {
253 .name
= "ctrl_module_pad_core",
254 .class = &omap44xx_ctrl_module_hwmod_class
,
255 .clkdm_name
= "l4_cfg_clkdm",
258 .flags
= HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT
,
263 /* ctrl_module_wkup */
264 static struct omap_hwmod omap44xx_ctrl_module_wkup_hwmod
= {
265 .name
= "ctrl_module_wkup",
266 .class = &omap44xx_ctrl_module_hwmod_class
,
267 .clkdm_name
= "l4_wkup_clkdm",
270 .flags
= HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT
,
275 /* ctrl_module_pad_wkup */
276 static struct omap_hwmod omap44xx_ctrl_module_pad_wkup_hwmod
= {
277 .name
= "ctrl_module_pad_wkup",
278 .class = &omap44xx_ctrl_module_hwmod_class
,
279 .clkdm_name
= "l4_wkup_clkdm",
282 .flags
= HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT
,
289 * debug and emulation sub system
292 static struct omap_hwmod_class omap44xx_debugss_hwmod_class
= {
297 static struct omap_hwmod omap44xx_debugss_hwmod
= {
299 .class = &omap44xx_debugss_hwmod_class
,
300 .clkdm_name
= "emu_sys_clkdm",
301 .main_clk
= "trace_clk_div_ck",
304 .clkctrl_offs
= OMAP4_CM_EMU_DEBUGSS_CLKCTRL_OFFSET
,
305 .context_offs
= OMAP4_RM_EMU_DEBUGSS_CONTEXT_OFFSET
,
312 * external memory interface no1
315 static struct omap_hwmod_class_sysconfig omap44xx_emif_sysc
= {
319 static struct omap_hwmod_class omap44xx_emif_hwmod_class
= {
321 .sysc
= &omap44xx_emif_sysc
,
325 static struct omap_hwmod omap44xx_emif1_hwmod
= {
327 .class = &omap44xx_emif_hwmod_class
,
328 .clkdm_name
= "l3_emif_clkdm",
329 .flags
= HWMOD_INIT_NO_IDLE
,
330 .main_clk
= "ddrphy_ck",
333 .clkctrl_offs
= OMAP4_CM_MEMIF_EMIF_1_CLKCTRL_OFFSET
,
334 .context_offs
= OMAP4_RM_MEMIF_EMIF_1_CONTEXT_OFFSET
,
335 .modulemode
= MODULEMODE_HWCTRL
,
341 static struct omap_hwmod omap44xx_emif2_hwmod
= {
343 .class = &omap44xx_emif_hwmod_class
,
344 .clkdm_name
= "l3_emif_clkdm",
345 .flags
= HWMOD_INIT_NO_IDLE
,
346 .main_clk
= "ddrphy_ck",
349 .clkctrl_offs
= OMAP4_CM_MEMIF_EMIF_2_CLKCTRL_OFFSET
,
350 .context_offs
= OMAP4_RM_MEMIF_EMIF_2_CONTEXT_OFFSET
,
351 .modulemode
= MODULEMODE_HWCTRL
,
358 * external images sensor pixel data processor
361 static struct omap_hwmod_class_sysconfig omap44xx_iss_sysc
= {
365 * ISS needs 100 OCP clk cycles delay after a softreset before
366 * accessing sysconfig again.
367 * The lowest frequency at the moment for L3 bus is 100 MHz, so
368 * 1usec delay is needed. Add an x2 margin to be safe (2 usecs).
370 * TODO: Indicate errata when available.
373 .sysc_flags
= (SYSC_HAS_MIDLEMODE
| SYSC_HAS_RESET_STATUS
|
374 SYSC_HAS_SIDLEMODE
| SYSC_HAS_SOFTRESET
),
375 .idlemodes
= (SIDLE_FORCE
| SIDLE_NO
| SIDLE_SMART
|
376 SIDLE_SMART_WKUP
| MSTANDBY_FORCE
| MSTANDBY_NO
|
377 MSTANDBY_SMART
| MSTANDBY_SMART_WKUP
),
378 .sysc_fields
= &omap_hwmod_sysc_type2
,
381 static struct omap_hwmod_class omap44xx_iss_hwmod_class
= {
383 .sysc
= &omap44xx_iss_sysc
,
387 static struct omap_hwmod_opt_clk iss_opt_clks
[] = {
388 { .role
= "ctrlclk", .clk
= "iss_ctrlclk" },
391 static struct omap_hwmod omap44xx_iss_hwmod
= {
393 .class = &omap44xx_iss_hwmod_class
,
394 .clkdm_name
= "iss_clkdm",
395 .main_clk
= "ducati_clk_mux_ck",
398 .clkctrl_offs
= OMAP4_CM_CAM_ISS_CLKCTRL_OFFSET
,
399 .context_offs
= OMAP4_RM_CAM_ISS_CONTEXT_OFFSET
,
400 .modulemode
= MODULEMODE_SWCTRL
,
403 .opt_clks
= iss_opt_clks
,
404 .opt_clks_cnt
= ARRAY_SIZE(iss_opt_clks
),
412 static struct omap_hwmod_class omap44xx_mpu_hwmod_class
= {
417 static struct omap_hwmod omap44xx_mpu_hwmod
= {
419 .class = &omap44xx_mpu_hwmod_class
,
420 .clkdm_name
= "mpuss_clkdm",
421 .flags
= HWMOD_INIT_NO_IDLE
,
422 .main_clk
= "dpll_mpu_m2_ck",
425 .clkctrl_offs
= OMAP4_CM_MPU_MPU_CLKCTRL_OFFSET
,
426 .context_offs
= OMAP4_RM_MPU_MPU_CONTEXT_OFFSET
,
433 * top-level core on-chip ram
436 static struct omap_hwmod_class omap44xx_ocmc_ram_hwmod_class
= {
441 static struct omap_hwmod omap44xx_ocmc_ram_hwmod
= {
443 .class = &omap44xx_ocmc_ram_hwmod_class
,
444 .clkdm_name
= "l3_2_clkdm",
447 .clkctrl_offs
= OMAP4_CM_L3_2_OCMC_RAM_CLKCTRL_OFFSET
,
448 .context_offs
= OMAP4_RM_L3_2_OCMC_RAM_CONTEXT_OFFSET
,
456 * power and reset manager (part of the prcm infrastructure) + clock manager 2
457 * + clock manager 1 (in always on power domain) + local prm in mpu
460 static struct omap_hwmod_class omap44xx_prcm_hwmod_class
= {
465 static struct omap_hwmod omap44xx_prcm_mpu_hwmod
= {
467 .class = &omap44xx_prcm_hwmod_class
,
468 .clkdm_name
= "l4_wkup_clkdm",
469 .flags
= HWMOD_NO_IDLEST
,
472 .flags
= HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT
,
478 static struct omap_hwmod omap44xx_cm_core_aon_hwmod
= {
479 .name
= "cm_core_aon",
480 .class = &omap44xx_prcm_hwmod_class
,
481 .flags
= HWMOD_NO_IDLEST
,
484 .flags
= HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT
,
490 static struct omap_hwmod omap44xx_cm_core_hwmod
= {
492 .class = &omap44xx_prcm_hwmod_class
,
493 .flags
= HWMOD_NO_IDLEST
,
496 .flags
= HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT
,
502 static struct omap_hwmod_rst_info omap44xx_prm_resets
[] = {
503 { .name
= "rst_global_warm_sw", .rst_shift
= 0 },
504 { .name
= "rst_global_cold_sw", .rst_shift
= 1 },
507 static struct omap_hwmod omap44xx_prm_hwmod
= {
509 .class = &omap44xx_prcm_hwmod_class
,
510 .rst_lines
= omap44xx_prm_resets
,
511 .rst_lines_cnt
= ARRAY_SIZE(omap44xx_prm_resets
),
516 * system clock and reset manager
519 static struct omap_hwmod_class omap44xx_scrm_hwmod_class
= {
524 static struct omap_hwmod omap44xx_scrm_hwmod
= {
526 .class = &omap44xx_scrm_hwmod_class
,
527 .clkdm_name
= "l4_wkup_clkdm",
530 .flags
= HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT
,
537 * shared level 2 memory interface
540 static struct omap_hwmod_class omap44xx_sl2if_hwmod_class
= {
545 static struct omap_hwmod omap44xx_sl2if_hwmod
= {
547 .class = &omap44xx_sl2if_hwmod_class
,
548 .clkdm_name
= "ivahd_clkdm",
551 .clkctrl_offs
= OMAP4_CM_IVAHD_SL2_CLKCTRL_OFFSET
,
552 .context_offs
= OMAP4_RM_IVAHD_SL2_CONTEXT_OFFSET
,
553 .modulemode
= MODULEMODE_HWCTRL
,
562 /* l3_main_1 -> dmm */
563 static struct omap_hwmod_ocp_if omap44xx_l3_main_1__dmm
= {
564 .master
= &omap44xx_l3_main_1_hwmod
,
565 .slave
= &omap44xx_dmm_hwmod
,
567 .user
= OCP_USER_SDMA
,
571 static struct omap_hwmod_ocp_if omap44xx_mpu__dmm
= {
572 .master
= &omap44xx_mpu_hwmod
,
573 .slave
= &omap44xx_dmm_hwmod
,
575 .user
= OCP_USER_MPU
,
578 /* l3_main_3 -> l3_instr */
579 static struct omap_hwmod_ocp_if omap44xx_l3_main_3__l3_instr
= {
580 .master
= &omap44xx_l3_main_3_hwmod
,
581 .slave
= &omap44xx_l3_instr_hwmod
,
583 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
586 /* ocp_wp_noc -> l3_instr */
587 static struct omap_hwmod_ocp_if omap44xx_ocp_wp_noc__l3_instr
= {
588 .master
= &omap44xx_ocp_wp_noc_hwmod
,
589 .slave
= &omap44xx_l3_instr_hwmod
,
591 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
594 /* l3_main_2 -> l3_main_1 */
595 static struct omap_hwmod_ocp_if omap44xx_l3_main_2__l3_main_1
= {
596 .master
= &omap44xx_l3_main_2_hwmod
,
597 .slave
= &omap44xx_l3_main_1_hwmod
,
599 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
602 /* l4_cfg -> l3_main_1 */
603 static struct omap_hwmod_ocp_if omap44xx_l4_cfg__l3_main_1
= {
604 .master
= &omap44xx_l4_cfg_hwmod
,
605 .slave
= &omap44xx_l3_main_1_hwmod
,
607 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
610 /* mpu -> l3_main_1 */
611 static struct omap_hwmod_ocp_if omap44xx_mpu__l3_main_1
= {
612 .master
= &omap44xx_mpu_hwmod
,
613 .slave
= &omap44xx_l3_main_1_hwmod
,
615 .user
= OCP_USER_MPU
,
618 /* debugss -> l3_main_2 */
619 static struct omap_hwmod_ocp_if omap44xx_debugss__l3_main_2
= {
620 .master
= &omap44xx_debugss_hwmod
,
621 .slave
= &omap44xx_l3_main_2_hwmod
,
622 .clk
= "dbgclk_mux_ck",
623 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
626 /* iss -> l3_main_2 */
627 static struct omap_hwmod_ocp_if omap44xx_iss__l3_main_2
= {
628 .master
= &omap44xx_iss_hwmod
,
629 .slave
= &omap44xx_l3_main_2_hwmod
,
631 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
634 /* l3_main_1 -> l3_main_2 */
635 static struct omap_hwmod_ocp_if omap44xx_l3_main_1__l3_main_2
= {
636 .master
= &omap44xx_l3_main_1_hwmod
,
637 .slave
= &omap44xx_l3_main_2_hwmod
,
639 .user
= OCP_USER_MPU
,
642 /* l4_cfg -> l3_main_2 */
643 static struct omap_hwmod_ocp_if omap44xx_l4_cfg__l3_main_2
= {
644 .master
= &omap44xx_l4_cfg_hwmod
,
645 .slave
= &omap44xx_l3_main_2_hwmod
,
647 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
650 /* l3_main_1 -> l3_main_3 */
651 static struct omap_hwmod_ocp_if omap44xx_l3_main_1__l3_main_3
= {
652 .master
= &omap44xx_l3_main_1_hwmod
,
653 .slave
= &omap44xx_l3_main_3_hwmod
,
655 .user
= OCP_USER_MPU
,
658 /* l3_main_2 -> l3_main_3 */
659 static struct omap_hwmod_ocp_if omap44xx_l3_main_2__l3_main_3
= {
660 .master
= &omap44xx_l3_main_2_hwmod
,
661 .slave
= &omap44xx_l3_main_3_hwmod
,
663 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
666 /* l4_cfg -> l3_main_3 */
667 static struct omap_hwmod_ocp_if omap44xx_l4_cfg__l3_main_3
= {
668 .master
= &omap44xx_l4_cfg_hwmod
,
669 .slave
= &omap44xx_l3_main_3_hwmod
,
671 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
674 /* l3_main_1 -> l4_cfg */
675 static struct omap_hwmod_ocp_if omap44xx_l3_main_1__l4_cfg
= {
676 .master
= &omap44xx_l3_main_1_hwmod
,
677 .slave
= &omap44xx_l4_cfg_hwmod
,
679 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
682 /* l3_main_2 -> l4_per */
683 static struct omap_hwmod_ocp_if omap44xx_l3_main_2__l4_per
= {
684 .master
= &omap44xx_l3_main_2_hwmod
,
685 .slave
= &omap44xx_l4_per_hwmod
,
687 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
690 /* l4_cfg -> l4_wkup */
691 static struct omap_hwmod_ocp_if omap44xx_l4_cfg__l4_wkup
= {
692 .master
= &omap44xx_l4_cfg_hwmod
,
693 .slave
= &omap44xx_l4_wkup_hwmod
,
695 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
698 /* mpu -> mpu_private */
699 static struct omap_hwmod_ocp_if omap44xx_mpu__mpu_private
= {
700 .master
= &omap44xx_mpu_hwmod
,
701 .slave
= &omap44xx_mpu_private_hwmod
,
703 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
706 /* l4_cfg -> ocp_wp_noc */
707 static struct omap_hwmod_ocp_if omap44xx_l4_cfg__ocp_wp_noc
= {
708 .master
= &omap44xx_l4_cfg_hwmod
,
709 .slave
= &omap44xx_ocp_wp_noc_hwmod
,
711 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
714 /* l4_cfg -> ctrl_module_core */
715 static struct omap_hwmod_ocp_if omap44xx_l4_cfg__ctrl_module_core
= {
716 .master
= &omap44xx_l4_cfg_hwmod
,
717 .slave
= &omap44xx_ctrl_module_core_hwmod
,
719 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
722 /* l4_cfg -> ctrl_module_pad_core */
723 static struct omap_hwmod_ocp_if omap44xx_l4_cfg__ctrl_module_pad_core
= {
724 .master
= &omap44xx_l4_cfg_hwmod
,
725 .slave
= &omap44xx_ctrl_module_pad_core_hwmod
,
727 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
730 /* l4_wkup -> ctrl_module_wkup */
731 static struct omap_hwmod_ocp_if omap44xx_l4_wkup__ctrl_module_wkup
= {
732 .master
= &omap44xx_l4_wkup_hwmod
,
733 .slave
= &omap44xx_ctrl_module_wkup_hwmod
,
734 .clk
= "l4_wkup_clk_mux_ck",
735 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
738 /* l4_wkup -> ctrl_module_pad_wkup */
739 static struct omap_hwmod_ocp_if omap44xx_l4_wkup__ctrl_module_pad_wkup
= {
740 .master
= &omap44xx_l4_wkup_hwmod
,
741 .slave
= &omap44xx_ctrl_module_pad_wkup_hwmod
,
742 .clk
= "l4_wkup_clk_mux_ck",
743 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
746 /* l3_instr -> debugss */
747 static struct omap_hwmod_ocp_if omap44xx_l3_instr__debugss
= {
748 .master
= &omap44xx_l3_instr_hwmod
,
749 .slave
= &omap44xx_debugss_hwmod
,
751 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
754 /* l3_main_2 -> iss */
755 static struct omap_hwmod_ocp_if omap44xx_l3_main_2__iss
= {
756 .master
= &omap44xx_l3_main_2_hwmod
,
757 .slave
= &omap44xx_iss_hwmod
,
759 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
762 /* l3_main_2 -> ocmc_ram */
763 static struct omap_hwmod_ocp_if omap44xx_l3_main_2__ocmc_ram
= {
764 .master
= &omap44xx_l3_main_2_hwmod
,
765 .slave
= &omap44xx_ocmc_ram_hwmod
,
767 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
770 /* mpu_private -> prcm_mpu */
771 static struct omap_hwmod_ocp_if omap44xx_mpu_private__prcm_mpu
= {
772 .master
= &omap44xx_mpu_private_hwmod
,
773 .slave
= &omap44xx_prcm_mpu_hwmod
,
775 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
778 /* l4_wkup -> cm_core_aon */
779 static struct omap_hwmod_ocp_if omap44xx_l4_wkup__cm_core_aon
= {
780 .master
= &omap44xx_l4_wkup_hwmod
,
781 .slave
= &omap44xx_cm_core_aon_hwmod
,
782 .clk
= "l4_wkup_clk_mux_ck",
783 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
786 /* l4_cfg -> cm_core */
787 static struct omap_hwmod_ocp_if omap44xx_l4_cfg__cm_core
= {
788 .master
= &omap44xx_l4_cfg_hwmod
,
789 .slave
= &omap44xx_cm_core_hwmod
,
791 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
795 static struct omap_hwmod_ocp_if omap44xx_l4_wkup__prm
= {
796 .master
= &omap44xx_l4_wkup_hwmod
,
797 .slave
= &omap44xx_prm_hwmod
,
798 .clk
= "l4_wkup_clk_mux_ck",
799 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
802 /* l4_wkup -> scrm */
803 static struct omap_hwmod_ocp_if omap44xx_l4_wkup__scrm
= {
804 .master
= &omap44xx_l4_wkup_hwmod
,
805 .slave
= &omap44xx_scrm_hwmod
,
806 .clk
= "l4_wkup_clk_mux_ck",
807 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
810 /* l3_main_2 -> sl2if */
811 static struct omap_hwmod_ocp_if __maybe_unused omap44xx_l3_main_2__sl2if
= {
812 .master
= &omap44xx_l3_main_2_hwmod
,
813 .slave
= &omap44xx_sl2if_hwmod
,
815 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
819 static struct omap_hwmod_ocp_if omap44xx_mpu__emif1
= {
820 .master
= &omap44xx_mpu_hwmod
,
821 .slave
= &omap44xx_emif1_hwmod
,
823 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
827 static struct omap_hwmod_ocp_if omap44xx_mpu__emif2
= {
828 .master
= &omap44xx_mpu_hwmod
,
829 .slave
= &omap44xx_emif2_hwmod
,
831 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
834 static struct omap_hwmod_ocp_if
*omap44xx_hwmod_ocp_ifs
[] __initdata
= {
835 &omap44xx_l3_main_1__dmm
,
837 &omap44xx_l3_main_3__l3_instr
,
838 &omap44xx_ocp_wp_noc__l3_instr
,
839 &omap44xx_l3_main_2__l3_main_1
,
840 &omap44xx_l4_cfg__l3_main_1
,
841 &omap44xx_mpu__l3_main_1
,
842 &omap44xx_debugss__l3_main_2
,
843 &omap44xx_iss__l3_main_2
,
844 &omap44xx_l3_main_1__l3_main_2
,
845 &omap44xx_l4_cfg__l3_main_2
,
846 &omap44xx_l3_main_1__l3_main_3
,
847 &omap44xx_l3_main_2__l3_main_3
,
848 &omap44xx_l4_cfg__l3_main_3
,
849 &omap44xx_l3_main_1__l4_cfg
,
850 &omap44xx_l3_main_2__l4_per
,
851 &omap44xx_l4_cfg__l4_wkup
,
852 &omap44xx_mpu__mpu_private
,
853 &omap44xx_l4_cfg__ocp_wp_noc
,
854 &omap44xx_l4_cfg__ctrl_module_core
,
855 &omap44xx_l4_cfg__ctrl_module_pad_core
,
856 &omap44xx_l4_wkup__ctrl_module_wkup
,
857 &omap44xx_l4_wkup__ctrl_module_pad_wkup
,
858 &omap44xx_l3_instr__debugss
,
859 &omap44xx_l3_main_2__iss
,
860 &omap44xx_l3_main_2__ocmc_ram
,
861 &omap44xx_mpu_private__prcm_mpu
,
862 &omap44xx_l4_wkup__cm_core_aon
,
863 &omap44xx_l4_cfg__cm_core
,
864 &omap44xx_l4_wkup__prm
,
865 &omap44xx_l4_wkup__scrm
,
866 /* &omap44xx_l3_main_2__sl2if, */
867 &omap44xx_mpu__emif1
,
868 &omap44xx_mpu__emif2
,
872 int __init
omap44xx_hwmod_init(void)
875 return omap_hwmod_register_links(omap44xx_hwmod_ocp_ifs
);