1/*
2 * Copied from linux/include/asm-arm/arch-sa1100/system.h
3 * Copyright (c) 1999 Nicolas Pitre <nico@cam.org>
4 */
5#ifndef __ASM_ARCH_SYSTEM_H
6#define __ASM_ARCH_SYSTEM_H
7#include <linux/clk.h>
8
9#include <asm/mach-types.h>
10#include <asm/hardware.h>
11
12#ifndef CONFIG_MACH_VOICEBLUE
13#define voiceblue_reset()		do {} while (0)
14#endif
15
16extern void omap_prcm_arch_reset(char mode);
17
18static inline void arch_idle(void)
19{
20	cpu_do_idle();
21}
22
23static inline void omap1_arch_reset(char mode)
24{
25	if (cpu_is_omap5912()) {
26		omap_writew(omap_readw(DPLL_CTL) & ~(1 << 4),
27				 DPLL_CTL);
28		omap_writew(0x8, ARM_RSTCT1);
29	}
30
31	if (machine_is_voiceblue())
32		voiceblue_reset();
33	else
34		omap_writew(1, ARM_RSTCT1);
35}
36
37static inline void arch_reset(char mode)
38{
39	if (!cpu_is_omap24xx())
40		omap1_arch_reset(mode);
41	else
42		omap_prcm_arch_reset(mode);
43}
44
45#endif
46