summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-harmony.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/board-harmony.c')
-rw-r--r--arch/arm/mach-tegra/board-harmony.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-harmony.c b/arch/arm/mach-tegra/board-harmony.c
index 904aa2bb5284..e69cf33e20a0 100644
--- a/arch/arm/mach-tegra/board-harmony.c
+++ b/arch/arm/mach-tegra/board-harmony.c
@@ -32,6 +32,7 @@
#include <linux/i2c-tegra.h>
#include <linux/memblock.h>
#include <linux/delay.h>
+#include <linux/mfd/tps6586x.h>
#include <sound/wm8903.h>
@@ -452,6 +453,22 @@ static int __init harmony_wifi_init(void)
*/
subsys_initcall_sync(harmony_wifi_init);
+static void harmony_power_off(void)
+{
+ int ret;
+
+ ret = tps6586x_power_off();
+ if (ret)
+ pr_err("harmony: failed to power off\n");
+
+ while (1);
+}
+
+static void __init harmony_power_off_init(void)
+{
+ pm_power_off = harmony_power_off;
+}
+
static void __init tegra_harmony_init(void)
{
tegra_clk_init_from_table(harmony_clk_init_table);
@@ -475,6 +492,7 @@ static void __init tegra_harmony_init(void)
harmony_kbc_init();
#endif
harmony_pcie_init();
+ harmony_power_off_init();
}
void __init tegra_harmony_reserve(void)