1/*
2 * linux/include/asm-arm/arch-ep93xx/system.h
3 */
4
5#include <asm/hardware.h>
6
7static inline void arch_idle(void)
8{
9	cpu_do_idle();
10}
11
12static inline void arch_reset(char mode)
13{
14	u32 devicecfg;
15
16	local_irq_disable();
17
18	devicecfg = __raw_readl(EP93XX_SYSCON_DEVICE_CONFIG);
19	__raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
20	__raw_writel(devicecfg | 0x80000000, EP93XX_SYSCON_DEVICE_CONFIG);
21	__raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
22	__raw_writel(devicecfg & ~0x80000000, EP93XX_SYSCON_DEVICE_CONFIG);
23
24	while (1)
25		;
26}
27