1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun * Header for code common to all OMAP2+ machines.
3*4882a593Smuzhiyun *
4*4882a593Smuzhiyun * This program is free software; you can redistribute it and/or modify it
5*4882a593Smuzhiyun * under the terms of the GNU General Public License as published by the
6*4882a593Smuzhiyun * Free Software Foundation; either version 2 of the License, or (at your
7*4882a593Smuzhiyun * option) any later version.
8*4882a593Smuzhiyun *
9*4882a593Smuzhiyun * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
10*4882a593Smuzhiyun * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
11*4882a593Smuzhiyun * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
12*4882a593Smuzhiyun * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
13*4882a593Smuzhiyun * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
14*4882a593Smuzhiyun * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
15*4882a593Smuzhiyun * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
16*4882a593Smuzhiyun * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
17*4882a593Smuzhiyun * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
18*4882a593Smuzhiyun * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
19*4882a593Smuzhiyun *
20*4882a593Smuzhiyun * You should have received a copy of the GNU General Public License along
21*4882a593Smuzhiyun * with this program; if not, write to the Free Software Foundation, Inc.,
22*4882a593Smuzhiyun * 675 Mass Ave, Cambridge, MA 02139, USA.
23*4882a593Smuzhiyun */
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun #ifndef __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H
26*4882a593Smuzhiyun #define __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H
27*4882a593Smuzhiyun #ifndef __ASSEMBLER__
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun #include <linux/irq.h>
30*4882a593Smuzhiyun #include <linux/delay.h>
31*4882a593Smuzhiyun #include <linux/i2c.h>
32*4882a593Smuzhiyun #include <linux/mfd/twl.h>
33*4882a593Smuzhiyun #include <linux/platform_data/i2c-omap.h>
34*4882a593Smuzhiyun #include <linux/reboot.h>
35*4882a593Smuzhiyun #include <linux/irqchip/irq-omap-intc.h>
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun #include <asm/proc-fns.h>
38*4882a593Smuzhiyun #include <asm/hardware/cache-l2x0.h>
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun #include "i2c.h"
41*4882a593Smuzhiyun #include "serial.h"
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun #include "usb.h"
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun #define OMAP_INTC_START NR_IRQS
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun extern int (*omap_pm_soc_init)(void);
48*4882a593Smuzhiyun int omap_pm_nop_init(void);
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun #if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP2)
51*4882a593Smuzhiyun int omap2_pm_init(void);
52*4882a593Smuzhiyun #else
omap2_pm_init(void)53*4882a593Smuzhiyun static inline int omap2_pm_init(void)
54*4882a593Smuzhiyun {
55*4882a593Smuzhiyun return 0;
56*4882a593Smuzhiyun }
57*4882a593Smuzhiyun #endif
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun #if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP3)
60*4882a593Smuzhiyun int omap3_pm_init(void);
61*4882a593Smuzhiyun #else
omap3_pm_init(void)62*4882a593Smuzhiyun static inline int omap3_pm_init(void)
63*4882a593Smuzhiyun {
64*4882a593Smuzhiyun return 0;
65*4882a593Smuzhiyun }
66*4882a593Smuzhiyun #endif
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun #if defined(CONFIG_PM) && (defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) || defined(CONFIG_SOC_DRA7XX))
69*4882a593Smuzhiyun int omap4_pm_init(void);
70*4882a593Smuzhiyun int omap4_pm_init_early(void);
71*4882a593Smuzhiyun #else
omap4_pm_init(void)72*4882a593Smuzhiyun static inline int omap4_pm_init(void)
73*4882a593Smuzhiyun {
74*4882a593Smuzhiyun return 0;
75*4882a593Smuzhiyun }
76*4882a593Smuzhiyun
omap4_pm_init_early(void)77*4882a593Smuzhiyun static inline int omap4_pm_init_early(void)
78*4882a593Smuzhiyun {
79*4882a593Smuzhiyun return 0;
80*4882a593Smuzhiyun }
81*4882a593Smuzhiyun #endif
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun #if defined(CONFIG_PM) && (defined(CONFIG_SOC_AM33XX) || \
84*4882a593Smuzhiyun defined(CONFIG_SOC_AM43XX))
85*4882a593Smuzhiyun int amx3_common_pm_init(void);
86*4882a593Smuzhiyun #else
amx3_common_pm_init(void)87*4882a593Smuzhiyun static inline int amx3_common_pm_init(void)
88*4882a593Smuzhiyun {
89*4882a593Smuzhiyun return 0;
90*4882a593Smuzhiyun }
91*4882a593Smuzhiyun #endif
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun extern void omap2_init_common_infrastructure(void);
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun extern void omap_init_time(void);
96*4882a593Smuzhiyun extern void omap3_secure_sync32k_timer_init(void);
97*4882a593Smuzhiyun extern void omap3_gptimer_timer_init(void);
98*4882a593Smuzhiyun extern void omap4_local_timer_init(void);
99*4882a593Smuzhiyun #ifdef CONFIG_CACHE_L2X0
100*4882a593Smuzhiyun int omap_l2_cache_init(void);
101*4882a593Smuzhiyun #define OMAP_L2C_AUX_CTRL (L2C_AUX_CTRL_SHARED_OVERRIDE | \
102*4882a593Smuzhiyun L310_AUX_CTRL_DATA_PREFETCH | \
103*4882a593Smuzhiyun L310_AUX_CTRL_INSTR_PREFETCH)
104*4882a593Smuzhiyun void omap4_l2c310_write_sec(unsigned long val, unsigned reg);
105*4882a593Smuzhiyun #else
omap_l2_cache_init(void)106*4882a593Smuzhiyun static inline int omap_l2_cache_init(void)
107*4882a593Smuzhiyun {
108*4882a593Smuzhiyun return 0;
109*4882a593Smuzhiyun }
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun #define OMAP_L2C_AUX_CTRL 0
112*4882a593Smuzhiyun #define omap4_l2c310_write_sec NULL
113*4882a593Smuzhiyun #endif
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun #ifdef CONFIG_SOC_HAS_REALTIME_COUNTER
116*4882a593Smuzhiyun extern void omap5_realtime_timer_init(void);
117*4882a593Smuzhiyun #else
omap5_realtime_timer_init(void)118*4882a593Smuzhiyun static inline void omap5_realtime_timer_init(void)
119*4882a593Smuzhiyun {
120*4882a593Smuzhiyun }
121*4882a593Smuzhiyun #endif
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun void omap2420_init_early(void);
124*4882a593Smuzhiyun void omap2430_init_early(void);
125*4882a593Smuzhiyun void omap3430_init_early(void);
126*4882a593Smuzhiyun void omap35xx_init_early(void);
127*4882a593Smuzhiyun void omap3630_init_early(void);
128*4882a593Smuzhiyun void omap3_init_early(void); /* Do not use this one */
129*4882a593Smuzhiyun void am33xx_init_early(void);
130*4882a593Smuzhiyun void am35xx_init_early(void);
131*4882a593Smuzhiyun void ti814x_init_early(void);
132*4882a593Smuzhiyun void ti816x_init_early(void);
133*4882a593Smuzhiyun void am33xx_init_early(void);
134*4882a593Smuzhiyun void am43xx_init_early(void);
135*4882a593Smuzhiyun void am43xx_init_late(void);
136*4882a593Smuzhiyun void omap4430_init_early(void);
137*4882a593Smuzhiyun void omap5_init_early(void);
138*4882a593Smuzhiyun void omap3_init_late(void);
139*4882a593Smuzhiyun void omap4430_init_late(void);
140*4882a593Smuzhiyun void omap2420_init_late(void);
141*4882a593Smuzhiyun void omap2430_init_late(void);
142*4882a593Smuzhiyun void ti81xx_init_late(void);
143*4882a593Smuzhiyun void am33xx_init_late(void);
144*4882a593Smuzhiyun void omap5_init_late(void);
145*4882a593Smuzhiyun int omap2_common_pm_late_init(void);
146*4882a593Smuzhiyun void dra7xx_init_early(void);
147*4882a593Smuzhiyun void dra7xx_init_late(void);
148*4882a593Smuzhiyun
149*4882a593Smuzhiyun #ifdef CONFIG_SOC_BUS
150*4882a593Smuzhiyun void omap_soc_device_init(void);
151*4882a593Smuzhiyun #else
omap_soc_device_init(void)152*4882a593Smuzhiyun static inline void omap_soc_device_init(void)
153*4882a593Smuzhiyun {
154*4882a593Smuzhiyun }
155*4882a593Smuzhiyun #endif
156*4882a593Smuzhiyun
157*4882a593Smuzhiyun #if defined(CONFIG_SOC_OMAP2420) || defined(CONFIG_SOC_OMAP2430)
158*4882a593Smuzhiyun void omap2xxx_restart(enum reboot_mode mode, const char *cmd);
159*4882a593Smuzhiyun #else
omap2xxx_restart(enum reboot_mode mode,const char * cmd)160*4882a593Smuzhiyun static inline void omap2xxx_restart(enum reboot_mode mode, const char *cmd)
161*4882a593Smuzhiyun {
162*4882a593Smuzhiyun }
163*4882a593Smuzhiyun #endif
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun #ifdef CONFIG_SOC_AM33XX
166*4882a593Smuzhiyun void am33xx_restart(enum reboot_mode mode, const char *cmd);
167*4882a593Smuzhiyun #else
am33xx_restart(enum reboot_mode mode,const char * cmd)168*4882a593Smuzhiyun static inline void am33xx_restart(enum reboot_mode mode, const char *cmd)
169*4882a593Smuzhiyun {
170*4882a593Smuzhiyun }
171*4882a593Smuzhiyun #endif
172*4882a593Smuzhiyun
173*4882a593Smuzhiyun #ifdef CONFIG_ARCH_OMAP3
174*4882a593Smuzhiyun void omap3xxx_restart(enum reboot_mode mode, const char *cmd);
175*4882a593Smuzhiyun #else
omap3xxx_restart(enum reboot_mode mode,const char * cmd)176*4882a593Smuzhiyun static inline void omap3xxx_restart(enum reboot_mode mode, const char *cmd)
177*4882a593Smuzhiyun {
178*4882a593Smuzhiyun }
179*4882a593Smuzhiyun #endif
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun #ifdef CONFIG_SOC_TI81XX
182*4882a593Smuzhiyun void ti81xx_restart(enum reboot_mode mode, const char *cmd);
183*4882a593Smuzhiyun #else
ti81xx_restart(enum reboot_mode mode,const char * cmd)184*4882a593Smuzhiyun static inline void ti81xx_restart(enum reboot_mode mode, const char *cmd)
185*4882a593Smuzhiyun {
186*4882a593Smuzhiyun }
187*4882a593Smuzhiyun #endif
188*4882a593Smuzhiyun
189*4882a593Smuzhiyun #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) || \
190*4882a593Smuzhiyun defined(CONFIG_SOC_DRA7XX) || defined(CONFIG_SOC_AM43XX)
191*4882a593Smuzhiyun void omap44xx_restart(enum reboot_mode mode, const char *cmd);
192*4882a593Smuzhiyun #else
omap44xx_restart(enum reboot_mode mode,const char * cmd)193*4882a593Smuzhiyun static inline void omap44xx_restart(enum reboot_mode mode, const char *cmd)
194*4882a593Smuzhiyun {
195*4882a593Smuzhiyun }
196*4882a593Smuzhiyun #endif
197*4882a593Smuzhiyun
198*4882a593Smuzhiyun #ifdef CONFIG_OMAP_INTERCONNECT_BARRIER
199*4882a593Smuzhiyun void omap_barrier_reserve_memblock(void);
200*4882a593Smuzhiyun void omap_barriers_init(void);
201*4882a593Smuzhiyun #else
omap_barrier_reserve_memblock(void)202*4882a593Smuzhiyun static inline void omap_barrier_reserve_memblock(void)
203*4882a593Smuzhiyun {
204*4882a593Smuzhiyun }
205*4882a593Smuzhiyun #endif
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun /* This gets called from mach-omap2/io.c, do not call this */
208*4882a593Smuzhiyun void __init omap2_set_globals_tap(u32 class, void __iomem *tap);
209*4882a593Smuzhiyun
210*4882a593Smuzhiyun void __init omap242x_map_io(void);
211*4882a593Smuzhiyun void __init omap243x_map_io(void);
212*4882a593Smuzhiyun void __init omap3_map_io(void);
213*4882a593Smuzhiyun void __init am33xx_map_io(void);
214*4882a593Smuzhiyun void __init omap4_map_io(void);
215*4882a593Smuzhiyun void __init omap5_map_io(void);
216*4882a593Smuzhiyun void __init dra7xx_map_io(void);
217*4882a593Smuzhiyun void __init ti81xx_map_io(void);
218*4882a593Smuzhiyun
219*4882a593Smuzhiyun /**
220*4882a593Smuzhiyun * omap_test_timeout - busy-loop, testing a condition
221*4882a593Smuzhiyun * @cond: condition to test until it evaluates to true
222*4882a593Smuzhiyun * @timeout: maximum number of microseconds in the timeout
223*4882a593Smuzhiyun * @index: loop index (integer)
224*4882a593Smuzhiyun *
225*4882a593Smuzhiyun * Loop waiting for @cond to become true or until at least @timeout
226*4882a593Smuzhiyun * microseconds have passed. To use, define some integer @index in the
227*4882a593Smuzhiyun * calling code. After running, if @index == @timeout, then the loop has
228*4882a593Smuzhiyun * timed out.
229*4882a593Smuzhiyun */
230*4882a593Smuzhiyun #define omap_test_timeout(cond, timeout, index) \
231*4882a593Smuzhiyun ({ \
232*4882a593Smuzhiyun for (index = 0; index < timeout; index++) { \
233*4882a593Smuzhiyun if (cond) \
234*4882a593Smuzhiyun break; \
235*4882a593Smuzhiyun udelay(1); \
236*4882a593Smuzhiyun } \
237*4882a593Smuzhiyun })
238*4882a593Smuzhiyun
239*4882a593Smuzhiyun extern struct device *omap2_get_mpuss_device(void);
240*4882a593Smuzhiyun extern struct device *omap2_get_iva_device(void);
241*4882a593Smuzhiyun extern struct device *omap2_get_l3_device(void);
242*4882a593Smuzhiyun extern struct device *omap4_get_dsp_device(void);
243*4882a593Smuzhiyun
244*4882a593Smuzhiyun void omap_gic_of_init(void);
245*4882a593Smuzhiyun
246*4882a593Smuzhiyun #ifdef CONFIG_CACHE_L2X0
247*4882a593Smuzhiyun extern void __iomem *omap4_get_l2cache_base(void);
248*4882a593Smuzhiyun #endif
249*4882a593Smuzhiyun
250*4882a593Smuzhiyun struct device_node;
251*4882a593Smuzhiyun
252*4882a593Smuzhiyun #ifdef CONFIG_SMP
253*4882a593Smuzhiyun extern void __iomem *omap4_get_scu_base(void);
254*4882a593Smuzhiyun #else
omap4_get_scu_base(void)255*4882a593Smuzhiyun static inline void __iomem *omap4_get_scu_base(void)
256*4882a593Smuzhiyun {
257*4882a593Smuzhiyun return NULL;
258*4882a593Smuzhiyun }
259*4882a593Smuzhiyun #endif
260*4882a593Smuzhiyun
261*4882a593Smuzhiyun extern void gic_dist_disable(void);
262*4882a593Smuzhiyun extern void gic_dist_enable(void);
263*4882a593Smuzhiyun extern bool gic_dist_disabled(void);
264*4882a593Smuzhiyun extern void gic_timer_retrigger(void);
265*4882a593Smuzhiyun extern void _omap_smc1(u32 fn, u32 arg);
266*4882a593Smuzhiyun extern void omap4_sar_ram_init(void);
267*4882a593Smuzhiyun extern void __iomem *omap4_get_sar_ram_base(void);
268*4882a593Smuzhiyun extern void omap4_mpuss_early_init(void);
269*4882a593Smuzhiyun extern void omap_do_wfi(void);
270*4882a593Smuzhiyun
271*4882a593Smuzhiyun
272*4882a593Smuzhiyun #ifdef CONFIG_SMP
273*4882a593Smuzhiyun /* Needed for secondary core boot */
274*4882a593Smuzhiyun extern u32 omap_modify_auxcoreboot0(u32 set_mask, u32 clear_mask);
275*4882a593Smuzhiyun extern void omap_auxcoreboot_addr(u32 cpu_addr);
276*4882a593Smuzhiyun extern u32 omap_read_auxcoreboot0(void);
277*4882a593Smuzhiyun
278*4882a593Smuzhiyun extern void omap4_cpu_die(unsigned int cpu);
279*4882a593Smuzhiyun extern int omap4_cpu_kill(unsigned int cpu);
280*4882a593Smuzhiyun
281*4882a593Smuzhiyun extern const struct smp_operations omap4_smp_ops;
282*4882a593Smuzhiyun #endif
283*4882a593Smuzhiyun
284*4882a593Smuzhiyun extern u32 omap4_get_cpu1_ns_pa_addr(void);
285*4882a593Smuzhiyun
286*4882a593Smuzhiyun #if defined(CONFIG_SMP) && defined(CONFIG_PM)
287*4882a593Smuzhiyun extern int omap4_mpuss_init(void);
288*4882a593Smuzhiyun extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state);
289*4882a593Smuzhiyun extern int omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state);
290*4882a593Smuzhiyun #else
omap4_enter_lowpower(unsigned int cpu,unsigned int power_state)291*4882a593Smuzhiyun static inline int omap4_enter_lowpower(unsigned int cpu,
292*4882a593Smuzhiyun unsigned int power_state)
293*4882a593Smuzhiyun {
294*4882a593Smuzhiyun cpu_do_idle();
295*4882a593Smuzhiyun return 0;
296*4882a593Smuzhiyun }
297*4882a593Smuzhiyun
omap4_hotplug_cpu(unsigned int cpu,unsigned int power_state)298*4882a593Smuzhiyun static inline int omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state)
299*4882a593Smuzhiyun {
300*4882a593Smuzhiyun cpu_do_idle();
301*4882a593Smuzhiyun return 0;
302*4882a593Smuzhiyun }
303*4882a593Smuzhiyun
omap4_mpuss_init(void)304*4882a593Smuzhiyun static inline int omap4_mpuss_init(void)
305*4882a593Smuzhiyun {
306*4882a593Smuzhiyun return 0;
307*4882a593Smuzhiyun }
308*4882a593Smuzhiyun
309*4882a593Smuzhiyun #endif
310*4882a593Smuzhiyun
311*4882a593Smuzhiyun #ifdef CONFIG_ARCH_OMAP4
312*4882a593Smuzhiyun void omap4_secondary_startup(void);
313*4882a593Smuzhiyun void omap4460_secondary_startup(void);
314*4882a593Smuzhiyun int omap4_finish_suspend(unsigned long cpu_state);
315*4882a593Smuzhiyun void omap4_cpu_resume(void);
316*4882a593Smuzhiyun #else
omap4_secondary_startup(void)317*4882a593Smuzhiyun static inline void omap4_secondary_startup(void)
318*4882a593Smuzhiyun {
319*4882a593Smuzhiyun }
320*4882a593Smuzhiyun
omap4460_secondary_startup(void)321*4882a593Smuzhiyun static inline void omap4460_secondary_startup(void)
322*4882a593Smuzhiyun {
323*4882a593Smuzhiyun }
omap4_finish_suspend(unsigned long cpu_state)324*4882a593Smuzhiyun static inline int omap4_finish_suspend(unsigned long cpu_state)
325*4882a593Smuzhiyun {
326*4882a593Smuzhiyun return 0;
327*4882a593Smuzhiyun }
omap4_cpu_resume(void)328*4882a593Smuzhiyun static inline void omap4_cpu_resume(void)
329*4882a593Smuzhiyun {
330*4882a593Smuzhiyun }
331*4882a593Smuzhiyun #endif
332*4882a593Smuzhiyun
333*4882a593Smuzhiyun #if defined(CONFIG_SOC_OMAP5) || defined(CONFIG_SOC_DRA7XX)
334*4882a593Smuzhiyun void omap5_secondary_startup(void);
335*4882a593Smuzhiyun void omap5_secondary_hyp_startup(void);
336*4882a593Smuzhiyun #else
omap5_secondary_startup(void)337*4882a593Smuzhiyun static inline void omap5_secondary_startup(void)
338*4882a593Smuzhiyun {
339*4882a593Smuzhiyun }
340*4882a593Smuzhiyun
omap5_secondary_hyp_startup(void)341*4882a593Smuzhiyun static inline void omap5_secondary_hyp_startup(void)
342*4882a593Smuzhiyun {
343*4882a593Smuzhiyun }
344*4882a593Smuzhiyun #endif
345*4882a593Smuzhiyun
346*4882a593Smuzhiyun #ifdef CONFIG_SOC_DRA7XX
347*4882a593Smuzhiyun extern int dra7xx_pciess_reset(struct omap_hwmod *oh);
348*4882a593Smuzhiyun #else
dra7xx_pciess_reset(struct omap_hwmod * oh)349*4882a593Smuzhiyun static inline int dra7xx_pciess_reset(struct omap_hwmod *oh)
350*4882a593Smuzhiyun {
351*4882a593Smuzhiyun return 0;
352*4882a593Smuzhiyun }
353*4882a593Smuzhiyun #endif
354*4882a593Smuzhiyun
355*4882a593Smuzhiyun struct omap_system_dma_plat_info;
356*4882a593Smuzhiyun
357*4882a593Smuzhiyun void pdata_quirks_init(const struct of_device_id *);
358*4882a593Smuzhiyun void omap_auxdata_legacy_init(struct device *dev);
359*4882a593Smuzhiyun void omap_pcs_legacy_init(int irq, void (*rearm)(void));
360*4882a593Smuzhiyun extern struct omap_system_dma_plat_info dma_plat_info;
361*4882a593Smuzhiyun
362*4882a593Smuzhiyun struct omap_sdrc_params;
363*4882a593Smuzhiyun extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
364*4882a593Smuzhiyun struct omap_sdrc_params *sdrc_cs1);
365*4882a593Smuzhiyun extern void omap_reserve(void);
366*4882a593Smuzhiyun
367*4882a593Smuzhiyun struct omap_hwmod;
368*4882a593Smuzhiyun extern int omap_dss_reset(struct omap_hwmod *);
369*4882a593Smuzhiyun
370*4882a593Smuzhiyun /* SoC specific clock initializer */
371*4882a593Smuzhiyun int omap_clk_init(void);
372*4882a593Smuzhiyun
373*4882a593Smuzhiyun #endif /* __ASSEMBLER__ */
374*4882a593Smuzhiyun #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
375