omap3: String-based reboot mode handling

This switches reboot mode handling to a string-based interface, that allows more
flexibility to set a common interface with the next generations of OMAP devices.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
diff --git a/arch/arm/cpu/armv7/omap3/boot.c b/arch/arm/cpu/armv7/omap3/boot.c
index 44d7c30..259c210 100644
--- a/arch/arm/cpu/armv7/omap3/boot.c
+++ b/arch/arm/cpu/armv7/omap3/boot.c
@@ -57,11 +57,14 @@
 	return boot_devices[sys_boot];
 }
 
-char omap_reboot_mode(void)
+int omap_reboot_mode(char *mode, unsigned int length)
 {
 	u32 reboot_mode;
 	char c;
 
+	if (length < 2)
+		return -1;
+
 	reboot_mode = readl((u32 *)(OMAP34XX_SCRATCHPAD + 4));
 
 	c = (reboot_mode >> 24) & 0xff;
@@ -74,7 +77,10 @@
 
 	c = reboot_mode & 0xff;
 
-	return c;
+	mode[0] = c;
+	mode[1] = '\0';
+
+	return 0;
 }
 
 int omap_reboot_mode_clear(void)
@@ -84,11 +90,11 @@
 	return 0;
 }
 
-int omap_reboot_mode_store(char c)
+int omap_reboot_mode_store(char *mode)
 {
 	u32 reboot_mode;
 
-	reboot_mode = 'B' << 24 | 'M' << 16 | c;
+	reboot_mode = 'B' << 24 | 'M' << 16 | mode[0];
 
 	writel(reboot_mode, (u32 *)(OMAP34XX_SCRATCHPAD + 4));