Merge branch 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux...
[sfrench/cifs-2.6.git] / arch / arm / mach-lpc32xx / include / mach / system.h
1 /*
2  * arch/arm/mach-lpc32xx/include/mach/system.h
3  *
4  * Author: Kevin Wells <kevin.wells@nxp.com>
5  *
6  * Copyright (C) 2010 NXP Semiconductors
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  */
18
19 #ifndef __ASM_ARCH_SYSTEM_H
20 #define __ASM_ARCH_SYSTEM_H
21
22 static void arch_idle(void)
23 {
24         cpu_do_idle();
25 }
26
27 static inline void arch_reset(char mode, const char *cmd)
28 {
29         extern void lpc32xx_watchdog_reset(void);
30
31         switch (mode) {
32         case 's':
33         case 'h':
34                 printk(KERN_CRIT "RESET: Rebooting system\n");
35
36                 /* Disable interrupts */
37                 local_irq_disable();
38
39                 lpc32xx_watchdog_reset();
40                 break;
41
42         default:
43                 /* Do nothing */
44                 break;
45         }
46
47         /* Wait for watchdog to reset system */
48         while (1)
49                 ;
50 }
51
52 #endif