aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
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