[PATCH] Implement reboot/shutdown for XO-1.75.

Chris Ball cjb at laptop.org
Mon Apr 25 18:02:18 EDT 2011


Note that the reboot code depends on an EC implementation for power_cycle.
---
 arch/arm/mach-mmp/olpc-xo-1-75.c |   19 +++++++++++++++++++
 include/linux/olpc-ec-1-75.h     |    3 +++
 2 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mmp/olpc-xo-1-75.c b/arch/arm/mach-mmp/olpc-xo-1-75.c
index 431a7fd..7a8f518 100644
--- a/arch/arm/mach-mmp/olpc-xo-1-75.c
+++ b/arch/arm/mach-mmp/olpc-xo-1-75.c
@@ -181,8 +181,27 @@ static struct i2c_board_info olpc_xo_1_75_twsi4_info[] = {
 	},
 };
 
+void olpc_xo_1_75_poweroff(void)
+{
+	u8 ec_cmd[8] = {0};
+	ec_cmd[0] = OLPC_EC_1_75_CMD_POWER_OFF;
+
+	olpc_xo_1_75_ec_cmd(ec_cmd, NULL, 0);
+}
+
+void olpc_xo_1_75_restart(char mode, const char *cmd)
+{
+	u8 ec_cmd[8] = {0};
+	ec_cmd[0] = OLPC_EC_1_75_CMD_POWER_CYCLE;
+
+	olpc_xo_1_75_ec_cmd(ec_cmd, NULL, 0);
+}
+
 static void __init olpc_xo_1_75_init(void)
 {
+	pm_power_off = olpc_xo_1_75_poweroff;
+	arm_pm_restart = olpc_xo_1_75_restart;
+
 	/* on-chip devices */
 	mmp2_add_uart(1);
 	mmp2_add_uart(3);
diff --git a/include/linux/olpc-ec-1-75.h b/include/linux/olpc-ec-1-75.h
index c7926de..527f60b 100644
--- a/include/linux/olpc-ec-1-75.h
+++ b/include/linux/olpc-ec-1-75.h
@@ -9,6 +9,9 @@
 #ifndef __OLPC_EC_1_75_H
 #define __OLPC_EC_1_75_H
 
+#define OLPC_EC_1_75_CMD_POWER_CYCLE	0x4b
+#define OLPC_EC_1_75_CMD_POWER_OFF	0x4c
+
 struct olpc_ec_1_75_platform_data {
 	int	gpio_ack;
 	int	gpio_cmd;
-- 
1.7.0.1




More information about the Devel mailing list