2 * omap_hwmod_2420.h - hardware modules present on the OMAP2420 chips
4 * Copyright (C) 2009 Nokia Corporation
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
11 * XXX handle crossbar/shared link difference for L3?
14 #ifndef __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_OMAP_HWMOD2420_H
15 #define __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_OMAP_HWMOD2420_H
17 #ifdef CONFIG_ARCH_OMAP2420
19 #include <plat/omap_hwmod.h>
20 #include <mach/irqs.h>
24 #include "prm-regbits-24xx.h"
26 static struct omap_hwmod omap2420_mpu_hwmod;
27 static struct omap_hwmod omap2420_l3_hwmod;
28 static struct omap_hwmod omap2420_l4_core_hwmod;
30 /* L3 -> L4_CORE interface */
31 static struct omap_hwmod_ocp_if omap2420_l3__l4_core = {
32 .master = &omap2420_l3_hwmod,
33 .slave = &omap2420_l4_core_hwmod,
34 .user = OCP_USER_MPU | OCP_USER_SDMA,
37 /* MPU -> L3 interface */
38 static struct omap_hwmod_ocp_if omap2420_mpu__l3 = {
39 .master = &omap2420_mpu_hwmod,
40 .slave = &omap2420_l3_hwmod,
44 /* Slave interfaces on the L3 interconnect */
45 static struct omap_hwmod_ocp_if *omap2420_l3_slaves[] = {
49 /* Master interfaces on the L3 interconnect */
50 static struct omap_hwmod_ocp_if *omap2420_l3_masters[] = {
51 &omap2420_l3__l4_core,
55 static struct omap_hwmod omap2420_l3_hwmod = {
57 .masters = omap2420_l3_masters,
58 .masters_cnt = ARRAY_SIZE(omap2420_l3_masters),
59 .slaves = omap2420_l3_slaves,
60 .slaves_cnt = ARRAY_SIZE(omap2420_l3_slaves),
61 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
64 static struct omap_hwmod omap2420_l4_wkup_hwmod;
66 /* L4_CORE -> L4_WKUP interface */
67 static struct omap_hwmod_ocp_if omap2420_l4_core__l4_wkup = {
68 .master = &omap2420_l4_core_hwmod,
69 .slave = &omap2420_l4_wkup_hwmod,
70 .user = OCP_USER_MPU | OCP_USER_SDMA,
73 /* Slave interfaces on the L4_CORE interconnect */
74 static struct omap_hwmod_ocp_if *omap2420_l4_core_slaves[] = {
75 &omap2420_l3__l4_core,
78 /* Master interfaces on the L4_CORE interconnect */
79 static struct omap_hwmod_ocp_if *omap2420_l4_core_masters[] = {
80 &omap2420_l4_core__l4_wkup,
84 static struct omap_hwmod omap2420_l4_core_hwmod = {
85 .name = "l4_core_hwmod",
86 .masters = omap2420_l4_core_masters,
87 .masters_cnt = ARRAY_SIZE(omap2420_l4_core_masters),
88 .slaves = omap2420_l4_core_slaves,
89 .slaves_cnt = ARRAY_SIZE(omap2420_l4_core_slaves),
90 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
93 /* Slave interfaces on the L4_WKUP interconnect */
94 static struct omap_hwmod_ocp_if *omap2420_l4_wkup_slaves[] = {
95 &omap2420_l4_core__l4_wkup,
98 /* Master interfaces on the L4_WKUP interconnect */
99 static struct omap_hwmod_ocp_if *omap2420_l4_wkup_masters[] = {
103 static struct omap_hwmod omap2420_l4_wkup_hwmod = {
104 .name = "l4_wkup_hwmod",
105 .masters = omap2420_l4_wkup_masters,
106 .masters_cnt = ARRAY_SIZE(omap2420_l4_wkup_masters),
107 .slaves = omap2420_l4_wkup_slaves,
108 .slaves_cnt = ARRAY_SIZE(omap2420_l4_wkup_slaves),
109 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420)
112 /* Master interfaces on the MPU device */
113 static struct omap_hwmod_ocp_if *omap2420_mpu_masters[] = {
118 static struct omap_hwmod omap2420_mpu_hwmod = {
120 .clkdev_dev_id = NULL,
121 .clkdev_con_id = "mpu_ck",
122 .masters = omap2420_mpu_masters,
123 .masters_cnt = ARRAY_SIZE(omap2420_mpu_masters),
124 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
127 static __initdata struct omap_hwmod *omap2420_hwmods[] = {
129 &omap2420_l4_core_hwmod,
130 &omap2420_l4_wkup_hwmod,
136 # define omap2420_hwmods 0