Merge branch 'fix/misc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
[sfrench/cifs-2.6.git] / arch / arm / mach-omap2 / omap_hwmod_2420.h
1 /*
2  * omap_hwmod_2420.h - hardware modules present on the OMAP2420 chips
3  *
4  * Copyright (C) 2009 Nokia Corporation
5  * Paul Walmsley
6  *
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.
10  *
11  * XXX handle crossbar/shared link difference for L3?
12  *
13  */
14 #ifndef __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_OMAP_HWMOD2420_H
15 #define __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_OMAP_HWMOD2420_H
16
17 #ifdef CONFIG_ARCH_OMAP2420
18
19 #include <mach/omap_hwmod.h>
20 #include <mach/irqs.h>
21 #include <mach/cpu.h>
22 #include <mach/dma.h>
23
24 #include "prm-regbits-24xx.h"
25
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;
29
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,
35 };
36
37 /* MPU -> L3 interface */
38 static struct omap_hwmod_ocp_if omap2420_mpu__l3 = {
39         .master = &omap2420_mpu_hwmod,
40         .slave  = &omap2420_l3_hwmod,
41         .user   = OCP_USER_MPU,
42 };
43
44 /* Slave interfaces on the L3 interconnect */
45 static struct omap_hwmod_ocp_if *omap2420_l3_slaves[] = {
46         &omap2420_mpu__l3,
47 };
48
49 /* Master interfaces on the L3 interconnect */
50 static struct omap_hwmod_ocp_if *omap2420_l3_masters[] = {
51         &omap2420_l3__l4_core,
52 };
53
54 /* L3 */
55 static struct omap_hwmod omap2420_l3_hwmod = {
56         .name           = "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)
62 };
63
64 static struct omap_hwmod omap2420_l4_wkup_hwmod;
65
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,
71 };
72
73 /* Slave interfaces on the L4_CORE interconnect */
74 static struct omap_hwmod_ocp_if *omap2420_l4_core_slaves[] = {
75         &omap2420_l3__l4_core,
76 };
77
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,
81 };
82
83 /* L4 CORE */
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)
91 };
92
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,
96 };
97
98 /* Master interfaces on the L4_WKUP interconnect */
99 static struct omap_hwmod_ocp_if *omap2420_l4_wkup_masters[] = {
100 };
101
102 /* L4 WKUP */
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)
110 };
111
112 /* Master interfaces on the MPU device */
113 static struct omap_hwmod_ocp_if *omap2420_mpu_masters[] = {
114         &omap2420_mpu__l3,
115 };
116
117 /* MPU */
118 static struct omap_hwmod omap2420_mpu_hwmod = {
119         .name           = "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),
125 };
126
127 static __initdata struct omap_hwmod *omap2420_hwmods[] = {
128         &omap2420_l3_hwmod,
129         &omap2420_l4_core_hwmod,
130         &omap2420_l4_wkup_hwmod,
131         &omap2420_mpu_hwmod,
132         NULL,
133 };
134
135 #else
136 # define omap2420_hwmods                0
137 #endif
138
139 #endif
140
141