1ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed/*
2ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed * omap4-restart.c - Common to OMAP4 and OMAP5
3ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed *
4ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed *
5ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed * This program is free software; you can redistribute it and/or modify
6ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed * it under the terms of the GNU General Public License version 2 as
7ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed * published by the Free Software Foundation.
8ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed */
9ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed
10ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed#include <linux/types.h>
117b6d864b48d95e6ea1df7df64475b9cb9616dcf9Robin Holt#include <linux/reboot.h>
12ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed#include "prminst44xx.h"
13ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed
14ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed/**
15ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed * omap44xx_restart - trigger a software restart of the SoC
16ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed * @mode: the "reboot mode", see arch/arm/kernel/{setup,process}.c
17ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed * @cmd: passed from the userspace program rebooting the system (if provided)
18ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed *
19ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed * Resets the SoC.  For @cmd, see the 'reboot' syscall in
20ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed * kernel/sys.c.  No return value.
21ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed */
227b6d864b48d95e6ea1df7df64475b9cb9616dcf9Robin Holtvoid omap44xx_restart(enum reboot_mode mode, const char *cmd)
23ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed{
24ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed	/* XXX Should save 'cmd' into scratchpad for use after reboot */
25ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed	omap4_prminst_global_warm_sw_reset(); /* never returns */
26ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed	while (1)
27ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed		;
28ab4c2e1bbd316bd86b448fa0974ac66c0d2172b8Afzal Mohammed}
29