1/* 2 * Copyright (C) 2001-2006 Storlink, Corp. 3 * Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt> 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 */ 10#ifndef __MACH_SYSTEM_H 11#define __MACH_SYSTEM_H 12 13#include <linux/io.h> 14#include <mach/hardware.h> 15#include <mach/global_reg.h> 16 17static inline void arch_idle(void) 18{ 19 /* 20 * Because of broken hardware we have to enable interrupts or the CPU 21 * will never wakeup... Acctualy it is not very good to enable 22 * interrupts here since scheduler can miss a tick, but there is 23 * no other way around this. Platforms that needs it for power saving 24 * should call enable_hlt() in init code, since by default it is 25 * disabled. 26 */ 27 local_irq_enable(); 28 cpu_do_idle(); 29} 30 31static inline void arch_reset(char mode, const char *cmd) 32{ 33 __raw_writel(RESET_GLOBAL | RESET_CPU1, 34 IO_ADDRESS(GEMINI_GLOBAL_BASE) + GLOBAL_RESET); 35} 36 37#endif /* __MACH_SYSTEM_H */ 38