aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorPaul Walmsley <paul@pwsan.com>2010-02-23 00:09:32 -0500
committerPaul Walmsley <paul@pwsan.com>2010-02-24 14:29:45 -0500
commit7359154e94623f6a5a68a77b9fcfbef40633c93f (patch)
treecf76ba61a911c693c5e7f8b50c7a523e7c531788 /arch
parent50ebdac2ec9fb2de9c271cb2e0e13aae3b454166 (diff)
OMAP hwmod: convert header files with static allocations into C files
Code should be able to #include any header file without the fear that the header file will go allocating memory. This is a coding style issue, similar to commit 82e9bd588563c4e22ebb55b684ebec7e310cc715. Move the existing hwmod data from .h files to .c files. While here, convert "omap34xx" to "omap3xxx" in the hwmod files, since most of these structures should be reusable across all OMAP3 chips. Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: BenoƮt Cousson <b-cousson@ti.com> Cc: Rajendra Nayak <rnayak@ti.com> Cc: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap2/Makefile5
-rw-r--r--arch/arm/mach-omap2/io.c21
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_2420_data.c (renamed from arch/arm/mach-omap2/omap_hwmod_2420.h)29
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_2430_data.c (renamed from arch/arm/mach-omap2/omap_hwmod_2430.h)29
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_34xx.h167
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_3xxx_data.c174
-rw-r--r--arch/arm/plat-omap/include/plat/omap_hwmod.h8
7 files changed, 226 insertions, 207 deletions
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 5da5ca1130df..7fa4dec2947e 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -74,6 +74,11 @@ obj-$(CONFIG_ARCH_OMAP4) += $(clock-common) clock44xx_data.o \
74obj-$(CONFIG_ARCH_OMAP2420) += opp2420_data.o 74obj-$(CONFIG_ARCH_OMAP2420) += opp2420_data.o
75obj-$(CONFIG_ARCH_OMAP2430) += opp2430_data.o 75obj-$(CONFIG_ARCH_OMAP2430) += opp2430_data.o
76 76
77# hwmod data
78obj-$(CONFIG_ARCH_OMAP2420) += omap_hwmod_2420_data.o
79obj-$(CONFIG_ARCH_OMAP2430) += omap_hwmod_2430_data.o
80obj-$(CONFIG_ARCH_OMAP3) += omap_hwmod_3xxx_data.o
81
77# EMU peripherals 82# EMU peripherals
78obj-$(CONFIG_OMAP3_EMU) += emu.o 83obj-$(CONFIG_OMAP3_EMU) += emu.o
79 84
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index f1685572f982..303d5c2c6fb5 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -46,9 +46,6 @@
46#include <plat/clockdomain.h> 46#include <plat/clockdomain.h>
47#include "clockdomains.h" 47#include "clockdomains.h"
48#include <plat/omap_hwmod.h> 48#include <plat/omap_hwmod.h>
49#include "omap_hwmod_2420.h"
50#include "omap_hwmod_2430.h"
51#include "omap_hwmod_34xx.h"
52 49
53/* 50/*
54 * The machine specific code may provide the extra mapping besides the 51 * The machine specific code may provide the extra mapping besides the
@@ -322,21 +319,17 @@ static int __init _omap2_init_reprogram_sdrc(void)
322void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0, 319void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
323 struct omap_sdrc_params *sdrc_cs1) 320 struct omap_sdrc_params *sdrc_cs1)
324{ 321{
325 struct omap_hwmod **hwmods = NULL;
326
327 if (cpu_is_omap2420())
328 hwmods = omap2420_hwmods;
329 else if (cpu_is_omap2430())
330 hwmods = omap2430_hwmods;
331 else if (cpu_is_omap34xx())
332 hwmods = omap34xx_hwmods;
333
334 pwrdm_init(powerdomains_omap); 322 pwrdm_init(powerdomains_omap);
335 clkdm_init(clockdomains_omap, clkdm_autodeps); 323 clkdm_init(clockdomains_omap, clkdm_autodeps);
336#ifndef CONFIG_ARCH_OMAP4 /* FIXME: Remove this once the clkdev is ready */ 324#ifndef CONFIG_ARCH_OMAP4 /* FIXME: Remove this once the clkdev is ready */
337 /* The OPP tables have to be registered before a clk init */ 325 if (cpu_is_omap242x())
338 omap_hwmod_init(hwmods); 326 omap2420_hwmod_init();
327 else if (cpu_is_omap243x())
328 omap2430_hwmod_init();
329 else if (cpu_is_omap34xx())
330 omap3xxx_hwmod_init();
339 omap2_mux_init(); 331 omap2_mux_init();
332 /* The OPP tables have to be registered before a clk init */
340 omap_pm_if_early_init(mpu_opps, dsp_opps, l3_opps); 333 omap_pm_if_early_init(mpu_opps, dsp_opps, l3_opps);
341#endif 334#endif
342 335
diff --git a/arch/arm/mach-omap2/omap_hwmod_2420.h b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
index 5932c1d3e07b..a1c5839fc52d 100644
--- a/arch/arm/mach-omap2/omap_hwmod_2420.h
+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * omap_hwmod_2420.h - hardware modules present on the OMAP2420 chips 2 * omap_hwmod_2420_data.c - hardware modules present on the OMAP2420 chips
3 * 3 *
4 * Copyright (C) 2009 Nokia Corporation 4 * Copyright (C) 2009-2010 Nokia Corporation
5 * Paul Walmsley 5 * Paul Walmsley
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
@@ -9,13 +9,8 @@
9 * published by the Free Software Foundation. 9 * published by the Free Software Foundation.
10 * 10 *
11 * XXX handle crossbar/shared link difference for L3? 11 * XXX handle crossbar/shared link difference for L3?
12 * 12 * XXX these should be marked initdata for multi-OMAP kernels
13 */ 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 <plat/omap_hwmod.h> 14#include <plat/omap_hwmod.h>
20#include <mach/irqs.h> 15#include <mach/irqs.h>
21#include <plat/cpu.h> 16#include <plat/cpu.h>
@@ -23,6 +18,15 @@
23 18
24#include "prm-regbits-24xx.h" 19#include "prm-regbits-24xx.h"
25 20
21/*
22 * OMAP2420 hardware module integration data
23 *
24 * ALl of the data in this section should be autogeneratable from the
25 * TI hardware database or other technical documentation. Data that
26 * is driver-specific or driver-kernel integration-specific belongs
27 * elsewhere.
28 */
29
26static struct omap_hwmod omap2420_mpu_hwmod; 30static struct omap_hwmod omap2420_mpu_hwmod;
27static struct omap_hwmod omap2420_l3_hwmod; 31static struct omap_hwmod omap2420_l3_hwmod;
28static struct omap_hwmod omap2420_l4_core_hwmod; 32static struct omap_hwmod omap2420_l4_core_hwmod;
@@ -131,10 +135,9 @@ static __initdata struct omap_hwmod *omap2420_hwmods[] = {
131 NULL, 135 NULL,
132}; 136};
133 137
134#else 138int __init omap2420_hwmod_init(void)
135# define omap2420_hwmods 0 139{
136#endif 140 return omap_hwmod_init(omap2420_hwmods);
137 141}
138#endif
139 142
140 143
diff --git a/arch/arm/mach-omap2/omap_hwmod_2430.h b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
index 91f79c05a98c..ed2de7936c10 100644
--- a/arch/arm/mach-omap2/omap_hwmod_2430.h
+++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * omap_hwmod_2430.h - hardware modules present on the OMAP2430 chips 2 * omap_hwmod_2430_data.c - hardware modules present on the OMAP2430 chips
3 * 3 *
4 * Copyright (C) 2009 Nokia Corporation 4 * Copyright (C) 2009-2010 Nokia Corporation
5 * Paul Walmsley 5 * Paul Walmsley
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
@@ -9,13 +9,8 @@
9 * published by the Free Software Foundation. 9 * published by the Free Software Foundation.
10 * 10 *
11 * XXX handle crossbar/shared link difference for L3? 11 * XXX handle crossbar/shared link difference for L3?
12 * 12 * XXX these should be marked initdata for multi-OMAP kernels
13 */ 13 */
14#ifndef __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_OMAP_HWMOD2430_H
15#define __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_OMAP_HWMOD2430_H
16
17#ifdef CONFIG_ARCH_OMAP2430
18
19#include <plat/omap_hwmod.h> 14#include <plat/omap_hwmod.h>
20#include <mach/irqs.h> 15#include <mach/irqs.h>
21#include <plat/cpu.h> 16#include <plat/cpu.h>
@@ -23,6 +18,15 @@
23 18
24#include "prm-regbits-24xx.h" 19#include "prm-regbits-24xx.h"
25 20
21/*
22 * OMAP2430 hardware module integration data
23 *
24 * ALl of the data in this section should be autogeneratable from the
25 * TI hardware database or other technical documentation. Data that
26 * is driver-specific or driver-kernel integration-specific belongs
27 * elsewhere.
28 */
29
26static struct omap_hwmod omap2430_mpu_hwmod; 30static struct omap_hwmod omap2430_mpu_hwmod;
27static struct omap_hwmod omap2430_l3_hwmod; 31static struct omap_hwmod omap2430_l3_hwmod;
28static struct omap_hwmod omap2430_l4_core_hwmod; 32static struct omap_hwmod omap2430_l4_core_hwmod;
@@ -133,10 +137,9 @@ static __initdata struct omap_hwmod *omap2430_hwmods[] = {
133 NULL, 137 NULL,
134}; 138};
135 139
136#else 140int __init omap2430_hwmod_init(void)
137# define omap2430_hwmods 0 141{
138#endif 142 return omap_hwmod_init(omap2430_hwmods);
139 143}
140#endif
141 144
142 145
diff --git a/arch/arm/mach-omap2/omap_hwmod_34xx.h b/arch/arm/mach-omap2/omap_hwmod_34xx.h
deleted file mode 100644
index 26991147d5ee..000000000000
--- a/arch/arm/mach-omap2/omap_hwmod_34xx.h
+++ /dev/null
@@ -1,167 +0,0 @@
1/*
2 * omap_hwmod_34xx.h - hardware modules present on the OMAP34xx 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 */
12#ifndef __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_OMAP_HWMOD34XX_H
13#define __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_OMAP_HWMOD34XX_H
14
15#ifdef CONFIG_ARCH_OMAP3
16
17#include <plat/omap_hwmod.h>
18#include <mach/irqs.h>
19#include <plat/cpu.h>
20#include <plat/dma.h>
21
22#include "prm-regbits-34xx.h"
23
24static struct omap_hwmod omap34xx_mpu_hwmod;
25static struct omap_hwmod omap34xx_l3_hwmod;
26static struct omap_hwmod omap34xx_l4_core_hwmod;
27static struct omap_hwmod omap34xx_l4_per_hwmod;
28
29/* L3 -> L4_CORE interface */
30static struct omap_hwmod_ocp_if omap34xx_l3__l4_core = {
31 .master = &omap34xx_l3_hwmod,
32 .slave = &omap34xx_l4_core_hwmod,
33 .user = OCP_USER_MPU | OCP_USER_SDMA,
34};
35
36/* L3 -> L4_PER interface */
37static struct omap_hwmod_ocp_if omap34xx_l3__l4_per = {
38 .master = &omap34xx_l3_hwmod,
39 .slave = &omap34xx_l4_per_hwmod,
40 .user = OCP_USER_MPU | OCP_USER_SDMA,
41};
42
43/* MPU -> L3 interface */
44static struct omap_hwmod_ocp_if omap34xx_mpu__l3 = {
45 .master = &omap34xx_mpu_hwmod,
46 .slave = &omap34xx_l3_hwmod,
47 .user = OCP_USER_MPU,
48};
49
50/* Slave interfaces on the L3 interconnect */
51static struct omap_hwmod_ocp_if *omap34xx_l3_slaves[] = {
52 &omap34xx_mpu__l3,
53};
54
55/* Master interfaces on the L3 interconnect */
56static struct omap_hwmod_ocp_if *omap34xx_l3_masters[] = {
57 &omap34xx_l3__l4_core,
58 &omap34xx_l3__l4_per,
59};
60
61/* L3 */
62static struct omap_hwmod omap34xx_l3_hwmod = {
63 .name = "l3_hwmod",
64 .masters = omap34xx_l3_masters,
65 .masters_cnt = ARRAY_SIZE(omap34xx_l3_masters),
66 .slaves = omap34xx_l3_slaves,
67 .slaves_cnt = ARRAY_SIZE(omap34xx_l3_slaves),
68 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430)
69};
70
71static struct omap_hwmod omap34xx_l4_wkup_hwmod;
72
73/* L4_CORE -> L4_WKUP interface */
74static struct omap_hwmod_ocp_if omap34xx_l4_core__l4_wkup = {
75 .master = &omap34xx_l4_core_hwmod,
76 .slave = &omap34xx_l4_wkup_hwmod,
77 .user = OCP_USER_MPU | OCP_USER_SDMA,
78};
79
80/* Slave interfaces on the L4_CORE interconnect */
81static struct omap_hwmod_ocp_if *omap34xx_l4_core_slaves[] = {
82 &omap34xx_l3__l4_core,
83};
84
85/* Master interfaces on the L4_CORE interconnect */
86static struct omap_hwmod_ocp_if *omap34xx_l4_core_masters[] = {
87 &omap34xx_l4_core__l4_wkup,
88};
89
90/* L4 CORE */
91static struct omap_hwmod omap34xx_l4_core_hwmod = {
92 .name = "l4_core_hwmod",
93 .masters = omap34xx_l4_core_masters,
94 .masters_cnt = ARRAY_SIZE(omap34xx_l4_core_masters),
95 .slaves = omap34xx_l4_core_slaves,
96 .slaves_cnt = ARRAY_SIZE(omap34xx_l4_core_slaves),
97 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430)
98};
99
100/* Slave interfaces on the L4_PER interconnect */
101static struct omap_hwmod_ocp_if *omap34xx_l4_per_slaves[] = {
102 &omap34xx_l3__l4_per,
103};
104
105/* Master interfaces on the L4_PER interconnect */
106static struct omap_hwmod_ocp_if *omap34xx_l4_per_masters[] = {
107};
108
109/* L4 PER */
110static struct omap_hwmod omap34xx_l4_per_hwmod = {
111 .name = "l4_per_hwmod",
112 .masters = omap34xx_l4_per_masters,
113 .masters_cnt = ARRAY_SIZE(omap34xx_l4_per_masters),
114 .slaves = omap34xx_l4_per_slaves,
115 .slaves_cnt = ARRAY_SIZE(omap34xx_l4_per_slaves),
116 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430)
117};
118
119/* Slave interfaces on the L4_WKUP interconnect */
120static struct omap_hwmod_ocp_if *omap34xx_l4_wkup_slaves[] = {
121 &omap34xx_l4_core__l4_wkup,
122};
123
124/* Master interfaces on the L4_WKUP interconnect */
125static struct omap_hwmod_ocp_if *omap34xx_l4_wkup_masters[] = {
126};
127
128/* L4 WKUP */
129static struct omap_hwmod omap34xx_l4_wkup_hwmod = {
130 .name = "l4_wkup_hwmod",
131 .masters = omap34xx_l4_wkup_masters,
132 .masters_cnt = ARRAY_SIZE(omap34xx_l4_wkup_masters),
133 .slaves = omap34xx_l4_wkup_slaves,
134 .slaves_cnt = ARRAY_SIZE(omap34xx_l4_wkup_slaves),
135 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430)
136};
137
138/* Master interfaces on the MPU device */
139static struct omap_hwmod_ocp_if *omap34xx_mpu_masters[] = {
140 &omap34xx_mpu__l3,
141};
142
143/* MPU */
144static struct omap_hwmod omap34xx_mpu_hwmod = {
145 .name = "mpu_hwmod",
146 .main_clk = "arm_fck",
147 .masters = omap34xx_mpu_masters,
148 .masters_cnt = ARRAY_SIZE(omap34xx_mpu_masters),
149 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
150};
151
152static __initdata struct omap_hwmod *omap34xx_hwmods[] = {
153 &omap34xx_l3_hwmod,
154 &omap34xx_l4_core_hwmod,
155 &omap34xx_l4_per_hwmod,
156 &omap34xx_l4_wkup_hwmod,
157 &omap34xx_mpu_hwmod,
158 NULL,
159};
160
161#else
162# define omap34xx_hwmods 0
163#endif
164
165#endif
166
167
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
new file mode 100644
index 000000000000..8d4b686a5e04
--- /dev/null
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -0,0 +1,174 @@
1/*
2 * omap_hwmod_3xxx_data.c - hardware modules present on the OMAP3xxx chips
3 *
4 * Copyright (C) 2009-2010 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 * The data in this file should be completely autogeneratable from
12 * the TI hardware database or other technical documentation.
13 *
14 * XXX these should be marked initdata for multi-OMAP kernels
15 */
16#include <plat/omap_hwmod.h>
17#include <mach/irqs.h>
18#include <plat/cpu.h>
19#include <plat/dma.h>
20
21#include "prm-regbits-34xx.h"
22
23/*
24 * OMAP3xxx hardware module integration data
25 *
26 * ALl of the data in this section should be autogeneratable from the
27 * TI hardware database or other technical documentation. Data that
28 * is driver-specific or driver-kernel integration-specific belongs
29 * elsewhere.
30 */
31
32static struct omap_hwmod omap3xxx_mpu_hwmod;
33static struct omap_hwmod omap3xxx_l3_hwmod;
34static struct omap_hwmod omap3xxx_l4_core_hwmod;
35static struct omap_hwmod omap3xxx_l4_per_hwmod;
36
37/* L3 -> L4_CORE interface */
38static struct omap_hwmod_ocp_if omap3xxx_l3__l4_core = {
39 .master = &omap3xxx_l3_hwmod,
40 .slave = &omap3xxx_l4_core_hwmod,
41 .user = OCP_USER_MPU | OCP_USER_SDMA,
42};
43
44/* L3 -> L4_PER interface */
45static struct omap_hwmod_ocp_if omap3xxx_l3__l4_per = {
46 .master = &omap3xxx_l3_hwmod,
47 .slave = &omap3xxx_l4_per_hwmod,
48 .user = OCP_USER_MPU | OCP_USER_SDMA,
49};
50
51/* MPU -> L3 interface */
52static struct omap_hwmod_ocp_if omap3xxx_mpu__l3 = {
53 .master = &omap3xxx_mpu_hwmod,
54 .slave = &omap3xxx_l3_hwmod,
55 .user = OCP_USER_MPU,
56};
57
58/* Slave interfaces on the L3 interconnect */
59static struct omap_hwmod_ocp_if *omap3xxx_l3_slaves[] = {
60 &omap3xxx_mpu__l3,
61};
62
63/* Master interfaces on the L3 interconnect */
64static struct omap_hwmod_ocp_if *omap3xxx_l3_masters[] = {
65 &omap3xxx_l3__l4_core,
66 &omap3xxx_l3__l4_per,
67};
68
69/* L3 */
70static struct omap_hwmod omap3xxx_l3_hwmod = {
71 .name = "l3_hwmod",
72 .masters = omap3xxx_l3_masters,
73 .masters_cnt = ARRAY_SIZE(omap3xxx_l3_masters),
74 .slaves = omap3xxx_l3_slaves,
75 .slaves_cnt = ARRAY_SIZE(omap3xxx_l3_slaves),
76 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430)
77};
78
79static struct omap_hwmod omap3xxx_l4_wkup_hwmod;
80
81/* L4_CORE -> L4_WKUP interface */
82static struct omap_hwmod_ocp_if omap3xxx_l4_core__l4_wkup = {
83 .master = &omap3xxx_l4_core_hwmod,
84 .slave = &omap3xxx_l4_wkup_hwmod,
85 .user = OCP_USER_MPU | OCP_USER_SDMA,
86};
87
88/* Slave interfaces on the L4_CORE interconnect */
89static struct omap_hwmod_ocp_if *omap3xxx_l4_core_slaves[] = {
90 &omap3xxx_l3__l4_core,
91};
92
93/* Master interfaces on the L4_CORE interconnect */
94static struct omap_hwmod_ocp_if *omap3xxx_l4_core_masters[] = {
95 &omap3xxx_l4_core__l4_wkup,
96};
97
98/* L4 CORE */
99static struct omap_hwmod omap3xxx_l4_core_hwmod = {
100 .name = "l4_core_hwmod",
101 .masters = omap3xxx_l4_core_masters,
102 .masters_cnt = ARRAY_SIZE(omap3xxx_l4_core_masters),
103 .slaves = omap3xxx_l4_core_slaves,
104 .slaves_cnt = ARRAY_SIZE(omap3xxx_l4_core_slaves),
105 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430)
106};
107
108/* Slave interfaces on the L4_PER interconnect */
109static struct omap_hwmod_ocp_if *omap3xxx_l4_per_slaves[] = {
110 &omap3xxx_l3__l4_per,
111};
112
113/* Master interfaces on the L4_PER interconnect */
114static struct omap_hwmod_ocp_if *omap3xxx_l4_per_masters[] = {
115};
116
117/* L4 PER */
118static struct omap_hwmod omap3xxx_l4_per_hwmod = {
119 .name = "l4_per_hwmod",
120 .masters = omap3xxx_l4_per_masters,
121 .masters_cnt = ARRAY_SIZE(omap3xxx_l4_per_masters),
122 .slaves = omap3xxx_l4_per_slaves,
123 .slaves_cnt = ARRAY_SIZE(omap3xxx_l4_per_slaves),
124 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430)
125};
126
127/* Slave interfaces on the L4_WKUP interconnect */
128static struct omap_hwmod_ocp_if *omap3xxx_l4_wkup_slaves[] = {
129 &omap3xxx_l4_core__l4_wkup,
130};
131
132/* Master interfaces on the L4_WKUP interconnect */
133static struct omap_hwmod_ocp_if *omap3xxx_l4_wkup_masters[] = {
134};
135
136/* L4 WKUP */
137static struct omap_hwmod omap3xxx_l4_wkup_hwmod = {
138 .name = "l4_wkup_hwmod",
139 .masters = omap3xxx_l4_wkup_masters,
140 .masters_cnt = ARRAY_SIZE(omap3xxx_l4_wkup_masters),
141 .slaves = omap3xxx_l4_wkup_slaves,
142 .slaves_cnt = ARRAY_SIZE(omap3xxx_l4_wkup_slaves),
143 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430)
144};
145
146/* Master interfaces on the MPU device */
147static struct omap_hwmod_ocp_if *omap3xxx_mpu_masters[] = {
148 &omap3xxx_mpu__l3,
149};
150
151/* MPU */
152static struct omap_hwmod omap3xxx_mpu_hwmod = {
153 .name = "mpu_hwmod",
154 .main_clk = "arm_fck",
155 .masters = omap3xxx_mpu_masters,
156 .masters_cnt = ARRAY_SIZE(omap3xxx_mpu_masters),
157 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
158};
159
160static __initdata struct omap_hwmod *omap3xxx_hwmods[] = {
161 &omap3xxx_l3_hwmod,
162 &omap3xxx_l4_core_hwmod,
163 &omap3xxx_l4_per_hwmod,
164 &omap3xxx_l4_wkup_hwmod,
165 &omap3xxx_mpu_hwmod,
166 NULL,
167};
168
169int __init omap3xxx_hwmod_init(void)
170{
171 return omap_hwmod_init(omap3xxx_hwmods);
172}
173
174
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h
index de4d0422cd2a..d2241fc6379a 100644
--- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
@@ -504,4 +504,12 @@ int omap_hwmod_set_clockact_none(struct omap_hwmod *oh);
504int omap_hwmod_enable_wakeup(struct omap_hwmod *oh); 504int omap_hwmod_enable_wakeup(struct omap_hwmod *oh);
505int omap_hwmod_disable_wakeup(struct omap_hwmod *oh); 505int omap_hwmod_disable_wakeup(struct omap_hwmod *oh);
506 506
507/*
508 * Chip variant-specific hwmod init routines - XXX should be converted
509 * to use initcalls once the initial boot ordering is straightened out
510 */
511extern int omap2420_hwmod_init(void);
512extern int omap2430_hwmod_init(void);
513extern int omap3xxx_hwmod_init(void);
514
507#endif 515#endif