[ARM] tegra: set pm_power_off to whistler routine
authorPrashant Gaikwad <pgaikwad@nvidia.com>
Thu, 10 Mar 2011 10:57:49 +0000 (16:27 +0530)
committerVarun Colbert <vcolbert@nvidia.com>
Tue, 15 Mar 2011 01:43:01 +0000 (17:43 -0800)
for whistler, implement pm_power_off with max8907c's power off routine.

Bug 799957
Bug 800602 (Cold boot)

Change-Id: I003547d55a4203f2d04ba0086199b61d05936563
Reviewed-on: http://git-master/r/22388
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
arch/arm/mach-tegra/board-whistler.c

index ff5f3180c83cd3eeaccd3f50b10ef026a66f5f97..e6b76e01f622753b7448099734d391f5393b65c8 100644 (file)
@@ -34,6 +34,7 @@
 #include <linux/gpio_scrollwheel.h>
 #include <linux/input.h>
 #include <linux/platform_data/tegra_usb.h>
+#include <linux/mfd/max8907c.h>
 #include <linux/usb/android_composite.h>
 #include <linux/memblock.h>
 
@@ -510,6 +511,22 @@ static int __init whistler_gps_init(void)
        return 0;
 }
 
+static void whistler_power_off(void)
+{
+       int ret;
+
+       ret = max8907c_power_off();
+       if (ret)
+               pr_err("whistler: failed to power off\n");
+
+       while (1);
+}
+
+static void __init whistler_power_off_init(void)
+{
+       pm_power_off = whistler_power_off;
+}
+
 static const struct i2c_board_info whistler_codec_info[] = {
        {
                I2C_BOARD_INFO("wm8753", 0x1a),
@@ -547,6 +564,7 @@ static void __init tegra_whistler_init(void)
        whistler_usb_init();
        whistler_scroll_init();
        whistler_codec_init();
+       whistler_power_off_init();
 }
 
 int __init tegra_whistler_protected_aperture_init(void)