summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorSeongho Joo <sjoo@nvidia.com>2012-03-07 12:32:46 +0900
committerSimone Willett <swillett@nvidia.com>2012-04-16 14:22:33 -0700
commitb3c06d9f3b9b2764edfa56816899b5d124af3c1f (patch)
tree0a68faf6006556277774f72e3e90f96eeb496c1a /arch
parentebfeba91c85ee4d6559a8549d8ce7f41dc2e72d2 (diff)
arm: tegra: xmm: add shutdown handler to off cp
add shutdown handler to turn off CP when power off and disable irq for ap wake. Bug 942968 Signed-off-by: Seongho Joo <sjoo@nvidia.com> Reviewed-on: http://git-master/r/88188 (cherry picked from commit d37a1900afb9982115f18989b0114bad8f2602bd) Change-Id: I1541453e21b46149bba08eafb0eadf9a598aa182 Reviewed-on: http://git-master/r/96455 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/baseband-xmm-power.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/baseband-xmm-power.c b/arch/arm/mach-tegra/baseband-xmm-power.c
index 21f62a0849c5..0e642d8ebcb3 100644
--- a/arch/arm/mach-tegra/baseband-xmm-power.c
+++ b/arch/arm/mach-tegra/baseband-xmm-power.c
@@ -1131,9 +1131,24 @@ static const struct dev_pm_ops baseband_xmm_power_dev_pm_ops = {
};
#endif
+static int baseband_xmm_power_driver_shutdown(struct platform_device *device)
+{
+ struct baseband_power_platform_data *data =
+ (struct baseband_power_platform_data *)
+ device->dev.platform_data;
+
+ pr_debug("%s\n", __func__);
+ disable_irq(gpio_to_irq(data->modem.xmm.ipc_ap_wake));
+ /* bb_on is already down, to make sure set 0 again */
+ gpio_set_value(data->modem.xmm.bb_on, 0);
+ gpio_set_value(data->modem.xmm.bb_rst, 0);
+ return 0;
+}
+
static struct platform_driver baseband_power_driver = {
.probe = baseband_xmm_power_driver_probe,
.remove = baseband_xmm_power_driver_remove,
+ .shutdown = baseband_xmm_power_driver_shutdown,
.driver = {
.name = "baseband_xmm_power",
#ifdef CONFIG_PM