1 // SPDX-License-Identifier: GPL-2.0-only
3 * Hardware modules present on the DRA7xx chips
5 * Copyright (C) 2013 Texas Instruments Incorporated - https://www.ti.com
10 * This file is automatically generated from the OMAP hardware databases.
11 * We respectfully ask that any modifications to this file be coordinated
12 * with the public linux-omap@vger.kernel.org mailing list and the
13 * authors above to ensure that the autogeneration scripts are kept
14 * up-to-date with the file contents.
19 #include "omap_hwmod.h"
20 #include "omap_hwmod_common_data.h"
26 /* Base offset for all DRA7XX interrupts external to MPUSS */
27 #define DRA7XX_IRQ_GIC_START 32
37 static struct omap_hwmod_class dra7xx_dmm_hwmod_class
= {
42 static struct omap_hwmod dra7xx_dmm_hwmod
= {
44 .class = &dra7xx_dmm_hwmod_class
,
45 .clkdm_name
= "emif_clkdm",
48 .clkctrl_offs
= DRA7XX_CM_EMIF_DMM_CLKCTRL_OFFSET
,
49 .context_offs
= DRA7XX_RM_EMIF_DMM_CONTEXT_OFFSET
,
56 * instance(s): l3_instr, l3_main_1, l3_main_2
58 static struct omap_hwmod_class dra7xx_l3_hwmod_class
= {
63 static struct omap_hwmod dra7xx_l3_instr_hwmod
= {
65 .class = &dra7xx_l3_hwmod_class
,
66 .clkdm_name
= "l3instr_clkdm",
69 .clkctrl_offs
= DRA7XX_CM_L3INSTR_L3_INSTR_CLKCTRL_OFFSET
,
70 .context_offs
= DRA7XX_RM_L3INSTR_L3_INSTR_CONTEXT_OFFSET
,
71 .modulemode
= MODULEMODE_HWCTRL
,
77 static struct omap_hwmod dra7xx_l3_main_1_hwmod
= {
79 .class = &dra7xx_l3_hwmod_class
,
80 .clkdm_name
= "l3main1_clkdm",
83 .clkctrl_offs
= DRA7XX_CM_L3MAIN1_L3_MAIN_1_CLKCTRL_OFFSET
,
84 .context_offs
= DRA7XX_RM_L3MAIN1_L3_MAIN_1_CONTEXT_OFFSET
,
90 static struct omap_hwmod dra7xx_l3_main_2_hwmod
= {
92 .class = &dra7xx_l3_hwmod_class
,
93 .clkdm_name
= "l3instr_clkdm",
96 .clkctrl_offs
= DRA7XX_CM_L3INSTR_L3_MAIN_2_CLKCTRL_OFFSET
,
97 .context_offs
= DRA7XX_RM_L3INSTR_L3_MAIN_2_CONTEXT_OFFSET
,
98 .modulemode
= MODULEMODE_HWCTRL
,
105 * instance(s): l4_cfg, l4_per1, l4_per2, l4_per3, l4_wkup
107 static struct omap_hwmod_class dra7xx_l4_hwmod_class
= {
112 static struct omap_hwmod dra7xx_l4_cfg_hwmod
= {
114 .class = &dra7xx_l4_hwmod_class
,
115 .clkdm_name
= "l4cfg_clkdm",
118 .clkctrl_offs
= DRA7XX_CM_L4CFG_L4_CFG_CLKCTRL_OFFSET
,
119 .context_offs
= DRA7XX_RM_L4CFG_L4_CFG_CONTEXT_OFFSET
,
125 static struct omap_hwmod dra7xx_l4_per1_hwmod
= {
127 .class = &dra7xx_l4_hwmod_class
,
128 .clkdm_name
= "l4per_clkdm",
131 .clkctrl_offs
= DRA7XX_CM_L4PER_L4_PER1_CLKCTRL_OFFSET
,
132 .flags
= HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT
,
138 static struct omap_hwmod dra7xx_l4_per2_hwmod
= {
140 .class = &dra7xx_l4_hwmod_class
,
141 .clkdm_name
= "l4per2_clkdm",
144 .clkctrl_offs
= DRA7XX_CM_L4PER2_L4_PER2_CLKCTRL_OFFSET
,
145 .flags
= HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT
,
151 static struct omap_hwmod dra7xx_l4_per3_hwmod
= {
153 .class = &dra7xx_l4_hwmod_class
,
154 .clkdm_name
= "l4per3_clkdm",
157 .clkctrl_offs
= DRA7XX_CM_L4PER3_L4_PER3_CLKCTRL_OFFSET
,
158 .flags
= HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT
,
164 static struct omap_hwmod dra7xx_l4_wkup_hwmod
= {
166 .class = &dra7xx_l4_hwmod_class
,
167 .clkdm_name
= "wkupaon_clkdm",
170 .clkctrl_offs
= DRA7XX_CM_WKUPAON_L4_WKUP_CLKCTRL_OFFSET
,
171 .context_offs
= DRA7XX_RM_WKUPAON_L4_WKUP_CONTEXT_OFFSET
,
181 static struct omap_hwmod_class dra7xx_atl_hwmod_class
= {
186 static struct omap_hwmod dra7xx_atl_hwmod
= {
188 .class = &dra7xx_atl_hwmod_class
,
189 .clkdm_name
= "atl_clkdm",
190 .main_clk
= "atl_gfclk_mux",
193 .clkctrl_offs
= DRA7XX_CM_ATL_ATL_CLKCTRL_OFFSET
,
194 .context_offs
= DRA7XX_RM_ATL_ATL_CONTEXT_OFFSET
,
195 .modulemode
= MODULEMODE_SWCTRL
,
205 static struct omap_hwmod_class dra7xx_bb2d_hwmod_class
= {
210 static struct omap_hwmod dra7xx_bb2d_hwmod
= {
212 .class = &dra7xx_bb2d_hwmod_class
,
213 .clkdm_name
= "dss_clkdm",
214 .main_clk
= "dpll_core_h24x2_ck",
217 .clkctrl_offs
= DRA7XX_CM_DSS_BB2D_CLKCTRL_OFFSET
,
218 .context_offs
= DRA7XX_RM_DSS_BB2D_CONTEXT_OFFSET
,
219 .modulemode
= MODULEMODE_SWCTRL
,
225 * 'ctrl_module' class
229 static struct omap_hwmod_class dra7xx_ctrl_module_hwmod_class
= {
230 .name
= "ctrl_module",
233 /* ctrl_module_wkup */
234 static struct omap_hwmod dra7xx_ctrl_module_wkup_hwmod
= {
235 .name
= "ctrl_module_wkup",
236 .class = &dra7xx_ctrl_module_hwmod_class
,
237 .clkdm_name
= "wkupaon_clkdm",
240 .flags
= HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT
,
250 static struct omap_hwmod_class dra7xx_mpu_hwmod_class
= {
255 static struct omap_hwmod dra7xx_mpu_hwmod
= {
257 .class = &dra7xx_mpu_hwmod_class
,
258 .clkdm_name
= "mpu_clkdm",
259 .flags
= HWMOD_INIT_NO_IDLE
| HWMOD_INIT_NO_RESET
,
260 .main_clk
= "dpll_mpu_m2_ck",
263 .clkctrl_offs
= DRA7XX_CM_MPU_MPU_CLKCTRL_OFFSET
,
264 .context_offs
= DRA7XX_RM_MPU_MPU_CONTEXT_OFFSET
,
276 * As noted in documentation for _reset() in omap_hwmod.c, the stock reset
277 * functionality of OMAP HWMOD layer does not deassert the hardreset lines
278 * associated with an IP automatically leaving the driver to handle that
279 * by itself. This does not work for PCIeSS which needs the reset lines
280 * deasserted for the driver to start accessing registers.
282 * We use a PCIeSS HWMOD class specific reset handler to deassert the hardreset
283 * lines after asserting them.
285 int dra7xx_pciess_reset(struct omap_hwmod
*oh
)
289 for (i
= 0; i
< oh
->rst_lines_cnt
; i
++) {
290 omap_hwmod_assert_hardreset(oh
, oh
->rst_lines
[i
].name
);
291 omap_hwmod_deassert_hardreset(oh
, oh
->rst_lines
[i
].name
);
297 static struct omap_hwmod_class dra7xx_pciess_hwmod_class
= {
299 .reset
= dra7xx_pciess_reset
,
303 static struct omap_hwmod_rst_info dra7xx_pciess1_resets
[] = {
304 { .name
= "pcie", .rst_shift
= 0 },
307 static struct omap_hwmod dra7xx_pciess1_hwmod
= {
309 .class = &dra7xx_pciess_hwmod_class
,
310 .clkdm_name
= "pcie_clkdm",
311 .rst_lines
= dra7xx_pciess1_resets
,
312 .rst_lines_cnt
= ARRAY_SIZE(dra7xx_pciess1_resets
),
313 .main_clk
= "l4_root_clk_div",
316 .clkctrl_offs
= DRA7XX_CM_L3INIT_PCIESS1_CLKCTRL_OFFSET
,
317 .rstctrl_offs
= DRA7XX_RM_L3INIT_PCIESS_RSTCTRL_OFFSET
,
318 .context_offs
= DRA7XX_RM_L3INIT_PCIESS1_CONTEXT_OFFSET
,
319 .modulemode
= MODULEMODE_SWCTRL
,
325 static struct omap_hwmod_rst_info dra7xx_pciess2_resets
[] = {
326 { .name
= "pcie", .rst_shift
= 1 },
330 static struct omap_hwmod dra7xx_pciess2_hwmod
= {
332 .class = &dra7xx_pciess_hwmod_class
,
333 .clkdm_name
= "pcie_clkdm",
334 .rst_lines
= dra7xx_pciess2_resets
,
335 .rst_lines_cnt
= ARRAY_SIZE(dra7xx_pciess2_resets
),
336 .main_clk
= "l4_root_clk_div",
339 .clkctrl_offs
= DRA7XX_CM_L3INIT_PCIESS2_CLKCTRL_OFFSET
,
340 .rstctrl_offs
= DRA7XX_RM_L3INIT_PCIESS_RSTCTRL_OFFSET
,
341 .context_offs
= DRA7XX_RM_L3INIT_PCIESS2_CONTEXT_OFFSET
,
342 .modulemode
= MODULEMODE_SWCTRL
,
352 static struct omap_hwmod_class_sysconfig dra7xx_qspi_sysc
= {
355 .sysc_flags
= SYSC_HAS_SIDLEMODE
,
356 .idlemodes
= (SIDLE_FORCE
| SIDLE_NO
| SIDLE_SMART
|
358 .sysc_fields
= &omap_hwmod_sysc_type2
,
361 static struct omap_hwmod_class dra7xx_qspi_hwmod_class
= {
363 .sysc
= &dra7xx_qspi_sysc
,
367 static struct omap_hwmod dra7xx_qspi_hwmod
= {
369 .class = &dra7xx_qspi_hwmod_class
,
370 .clkdm_name
= "l4per2_clkdm",
371 .main_clk
= "qspi_gfclk_div",
374 .clkctrl_offs
= DRA7XX_CM_L4PER2_QSPI_CLKCTRL_OFFSET
,
375 .context_offs
= DRA7XX_RM_L4PER2_QSPI_CONTEXT_OFFSET
,
376 .modulemode
= MODULEMODE_SWCTRL
,
386 static struct omap_hwmod_class_sysconfig dra7xx_sata_sysc
= {
389 .sysc_flags
= (SYSC_HAS_MIDLEMODE
| SYSC_HAS_SIDLEMODE
),
390 .idlemodes
= (SIDLE_FORCE
| SIDLE_NO
| SIDLE_SMART
|
391 SIDLE_SMART_WKUP
| MSTANDBY_FORCE
| MSTANDBY_NO
|
392 MSTANDBY_SMART
| MSTANDBY_SMART_WKUP
),
393 .sysc_fields
= &omap_hwmod_sysc_type2
,
396 static struct omap_hwmod_class dra7xx_sata_hwmod_class
= {
398 .sysc
= &dra7xx_sata_sysc
,
403 static struct omap_hwmod dra7xx_sata_hwmod
= {
405 .class = &dra7xx_sata_hwmod_class
,
406 .clkdm_name
= "l3init_clkdm",
407 .flags
= HWMOD_SWSUP_SIDLE
| HWMOD_SWSUP_MSTANDBY
,
408 .main_clk
= "func_48m_fclk",
412 .clkctrl_offs
= DRA7XX_CM_L3INIT_SATA_CLKCTRL_OFFSET
,
413 .context_offs
= DRA7XX_RM_L3INIT_SATA_CONTEXT_OFFSET
,
414 .modulemode
= MODULEMODE_SWCTRL
,
424 static struct omap_hwmod_class dra7xx_vcp_hwmod_class
= {
429 static struct omap_hwmod dra7xx_vcp1_hwmod
= {
431 .class = &dra7xx_vcp_hwmod_class
,
432 .clkdm_name
= "l3main1_clkdm",
433 .main_clk
= "l3_iclk_div",
436 .clkctrl_offs
= DRA7XX_CM_L3MAIN1_VCP1_CLKCTRL_OFFSET
,
437 .context_offs
= DRA7XX_RM_L3MAIN1_VCP1_CONTEXT_OFFSET
,
443 static struct omap_hwmod dra7xx_vcp2_hwmod
= {
445 .class = &dra7xx_vcp_hwmod_class
,
446 .clkdm_name
= "l3main1_clkdm",
447 .main_clk
= "l3_iclk_div",
450 .clkctrl_offs
= DRA7XX_CM_L3MAIN1_VCP2_CLKCTRL_OFFSET
,
451 .context_offs
= DRA7XX_RM_L3MAIN1_VCP2_CONTEXT_OFFSET
,
462 /* l3_main_1 -> dmm */
463 static struct omap_hwmod_ocp_if dra7xx_l3_main_1__dmm
= {
464 .master
= &dra7xx_l3_main_1_hwmod
,
465 .slave
= &dra7xx_dmm_hwmod
,
466 .clk
= "l3_iclk_div",
467 .user
= OCP_USER_SDMA
,
470 /* l3_main_2 -> l3_instr */
471 static struct omap_hwmod_ocp_if dra7xx_l3_main_2__l3_instr
= {
472 .master
= &dra7xx_l3_main_2_hwmod
,
473 .slave
= &dra7xx_l3_instr_hwmod
,
474 .clk
= "l3_iclk_div",
475 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
478 /* l4_cfg -> l3_main_1 */
479 static struct omap_hwmod_ocp_if dra7xx_l4_cfg__l3_main_1
= {
480 .master
= &dra7xx_l4_cfg_hwmod
,
481 .slave
= &dra7xx_l3_main_1_hwmod
,
482 .clk
= "l3_iclk_div",
483 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
486 /* mpu -> l3_main_1 */
487 static struct omap_hwmod_ocp_if dra7xx_mpu__l3_main_1
= {
488 .master
= &dra7xx_mpu_hwmod
,
489 .slave
= &dra7xx_l3_main_1_hwmod
,
490 .clk
= "l3_iclk_div",
491 .user
= OCP_USER_MPU
,
494 /* l3_main_1 -> l3_main_2 */
495 static struct omap_hwmod_ocp_if dra7xx_l3_main_1__l3_main_2
= {
496 .master
= &dra7xx_l3_main_1_hwmod
,
497 .slave
= &dra7xx_l3_main_2_hwmod
,
498 .clk
= "l3_iclk_div",
499 .user
= OCP_USER_MPU
,
502 /* l4_cfg -> l3_main_2 */
503 static struct omap_hwmod_ocp_if dra7xx_l4_cfg__l3_main_2
= {
504 .master
= &dra7xx_l4_cfg_hwmod
,
505 .slave
= &dra7xx_l3_main_2_hwmod
,
506 .clk
= "l3_iclk_div",
507 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
510 /* l3_main_1 -> l4_cfg */
511 static struct omap_hwmod_ocp_if dra7xx_l3_main_1__l4_cfg
= {
512 .master
= &dra7xx_l3_main_1_hwmod
,
513 .slave
= &dra7xx_l4_cfg_hwmod
,
514 .clk
= "l3_iclk_div",
515 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
518 /* l3_main_1 -> l4_per1 */
519 static struct omap_hwmod_ocp_if dra7xx_l3_main_1__l4_per1
= {
520 .master
= &dra7xx_l3_main_1_hwmod
,
521 .slave
= &dra7xx_l4_per1_hwmod
,
522 .clk
= "l3_iclk_div",
523 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
526 /* l3_main_1 -> l4_per2 */
527 static struct omap_hwmod_ocp_if dra7xx_l3_main_1__l4_per2
= {
528 .master
= &dra7xx_l3_main_1_hwmod
,
529 .slave
= &dra7xx_l4_per2_hwmod
,
530 .clk
= "l3_iclk_div",
531 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
534 /* l3_main_1 -> l4_per3 */
535 static struct omap_hwmod_ocp_if dra7xx_l3_main_1__l4_per3
= {
536 .master
= &dra7xx_l3_main_1_hwmod
,
537 .slave
= &dra7xx_l4_per3_hwmod
,
538 .clk
= "l3_iclk_div",
539 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
542 /* l3_main_1 -> l4_wkup */
543 static struct omap_hwmod_ocp_if dra7xx_l3_main_1__l4_wkup
= {
544 .master
= &dra7xx_l3_main_1_hwmod
,
545 .slave
= &dra7xx_l4_wkup_hwmod
,
546 .clk
= "wkupaon_iclk_mux",
547 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
551 static struct omap_hwmod_ocp_if dra7xx_l4_per2__atl
= {
552 .master
= &dra7xx_l4_per2_hwmod
,
553 .slave
= &dra7xx_atl_hwmod
,
554 .clk
= "l3_iclk_div",
555 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
558 /* l3_main_1 -> bb2d */
559 static struct omap_hwmod_ocp_if dra7xx_l3_main_1__bb2d
= {
560 .master
= &dra7xx_l3_main_1_hwmod
,
561 .slave
= &dra7xx_bb2d_hwmod
,
562 .clk
= "l3_iclk_div",
563 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
566 /* l4_wkup -> ctrl_module_wkup */
567 static struct omap_hwmod_ocp_if dra7xx_l4_wkup__ctrl_module_wkup
= {
568 .master
= &dra7xx_l4_wkup_hwmod
,
569 .slave
= &dra7xx_ctrl_module_wkup_hwmod
,
570 .clk
= "wkupaon_iclk_mux",
571 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
575 static struct omap_hwmod_ocp_if dra7xx_l4_cfg__mpu
= {
576 .master
= &dra7xx_l4_cfg_hwmod
,
577 .slave
= &dra7xx_mpu_hwmod
,
578 .clk
= "l3_iclk_div",
579 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
582 /* l3_main_1 -> pciess1 */
583 static struct omap_hwmod_ocp_if dra7xx_l3_main_1__pciess1
= {
584 .master
= &dra7xx_l3_main_1_hwmod
,
585 .slave
= &dra7xx_pciess1_hwmod
,
586 .clk
= "l3_iclk_div",
587 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
590 /* l4_cfg -> pciess1 */
591 static struct omap_hwmod_ocp_if dra7xx_l4_cfg__pciess1
= {
592 .master
= &dra7xx_l4_cfg_hwmod
,
593 .slave
= &dra7xx_pciess1_hwmod
,
594 .clk
= "l4_root_clk_div",
595 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
598 /* l3_main_1 -> pciess2 */
599 static struct omap_hwmod_ocp_if dra7xx_l3_main_1__pciess2
= {
600 .master
= &dra7xx_l3_main_1_hwmod
,
601 .slave
= &dra7xx_pciess2_hwmod
,
602 .clk
= "l3_iclk_div",
603 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
606 /* l4_cfg -> pciess2 */
607 static struct omap_hwmod_ocp_if dra7xx_l4_cfg__pciess2
= {
608 .master
= &dra7xx_l4_cfg_hwmod
,
609 .slave
= &dra7xx_pciess2_hwmod
,
610 .clk
= "l4_root_clk_div",
611 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
614 /* l3_main_1 -> qspi */
615 static struct omap_hwmod_ocp_if dra7xx_l3_main_1__qspi
= {
616 .master
= &dra7xx_l3_main_1_hwmod
,
617 .slave
= &dra7xx_qspi_hwmod
,
618 .clk
= "l3_iclk_div",
619 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
623 static struct omap_hwmod_ocp_if dra7xx_l4_cfg__sata
= {
624 .master
= &dra7xx_l4_cfg_hwmod
,
625 .slave
= &dra7xx_sata_hwmod
,
626 .clk
= "l3_iclk_div",
627 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
630 /* l3_main_1 -> vcp1 */
631 static struct omap_hwmod_ocp_if dra7xx_l3_main_1__vcp1
= {
632 .master
= &dra7xx_l3_main_1_hwmod
,
633 .slave
= &dra7xx_vcp1_hwmod
,
634 .clk
= "l3_iclk_div",
635 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
638 /* l4_per2 -> vcp1 */
639 static struct omap_hwmod_ocp_if dra7xx_l4_per2__vcp1
= {
640 .master
= &dra7xx_l4_per2_hwmod
,
641 .slave
= &dra7xx_vcp1_hwmod
,
642 .clk
= "l3_iclk_div",
643 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
646 /* l3_main_1 -> vcp2 */
647 static struct omap_hwmod_ocp_if dra7xx_l3_main_1__vcp2
= {
648 .master
= &dra7xx_l3_main_1_hwmod
,
649 .slave
= &dra7xx_vcp2_hwmod
,
650 .clk
= "l3_iclk_div",
651 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
654 /* l4_per2 -> vcp2 */
655 static struct omap_hwmod_ocp_if dra7xx_l4_per2__vcp2
= {
656 .master
= &dra7xx_l4_per2_hwmod
,
657 .slave
= &dra7xx_vcp2_hwmod
,
658 .clk
= "l3_iclk_div",
659 .user
= OCP_USER_MPU
| OCP_USER_SDMA
,
662 static struct omap_hwmod_ocp_if
*dra7xx_hwmod_ocp_ifs
[] __initdata
= {
663 &dra7xx_l3_main_1__dmm
,
664 &dra7xx_l3_main_2__l3_instr
,
665 &dra7xx_l4_cfg__l3_main_1
,
666 &dra7xx_mpu__l3_main_1
,
667 &dra7xx_l3_main_1__l3_main_2
,
668 &dra7xx_l4_cfg__l3_main_2
,
669 &dra7xx_l3_main_1__l4_cfg
,
670 &dra7xx_l3_main_1__l4_per1
,
671 &dra7xx_l3_main_1__l4_per2
,
672 &dra7xx_l3_main_1__l4_per3
,
673 &dra7xx_l3_main_1__l4_wkup
,
674 &dra7xx_l4_per2__atl
,
675 &dra7xx_l3_main_1__bb2d
,
676 &dra7xx_l4_wkup__ctrl_module_wkup
,
678 &dra7xx_l3_main_1__pciess1
,
679 &dra7xx_l4_cfg__pciess1
,
680 &dra7xx_l3_main_1__pciess2
,
681 &dra7xx_l4_cfg__pciess2
,
682 &dra7xx_l3_main_1__qspi
,
683 &dra7xx_l4_cfg__sata
,
684 &dra7xx_l3_main_1__vcp1
,
685 &dra7xx_l4_per2__vcp1
,
686 &dra7xx_l3_main_1__vcp2
,
687 &dra7xx_l4_per2__vcp2
,
691 /* SoC variant specific hwmod links */
692 static struct omap_hwmod_ocp_if
*dra72x_hwmod_ocp_ifs
[] __initdata
= {
696 static struct omap_hwmod_ocp_if
*rtc_hwmod_ocp_ifs
[] __initdata
= {
700 int __init
dra7xx_hwmod_init(void)
705 ret
= omap_hwmod_register_links(dra7xx_hwmod_ocp_ifs
);
707 if (!ret
&& soc_is_dra74x()) {
708 ret
= omap_hwmod_register_links(rtc_hwmod_ocp_ifs
);
709 } else if (!ret
&& soc_is_dra72x()) {
710 ret
= omap_hwmod_register_links(dra72x_hwmod_ocp_ifs
);
711 if (!ret
&& !of_machine_is_compatible("ti,dra718"))
712 ret
= omap_hwmod_register_links(rtc_hwmod_ocp_ifs
);
713 } else if (!ret
&& soc_is_dra76x()) {
714 if (!ret
&& soc_is_dra76x_abz())
715 ret
= omap_hwmod_register_links(rtc_hwmod_ocp_ifs
);