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 arch_idle(void)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 arch_reset(char mode,const char * cmd)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