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