summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-cardhu.c
diff options
context:
space:
mode:
authorSeshendra Gadagottu <sgadagottu@nvidia.com>2011-08-19 20:10:41 +0530
committerVarun Colbert <vcolbert@nvidia.com>2011-08-26 15:16:42 -0700
commit62bd6d3070897dac929e528cda7e01353635ef2f (patch)
tree00a13414350ebc6d9cb368e2c70be9c2f235fb72 /arch/arm/mach-tegra/board-cardhu.c
parentd5373be77bab3b991da34ed91023747f90e026dc (diff)
arm: tegra: cardhu: HSIC config change for xmm modem
Avoid power down HSIC phy during L2 suspend state. Triggered postsuspend and preresume actions for xmm modem. BUG 828389 Change-Id: I2cd862361d5ba0fedf7e7bffac02c0dfbf5cf0c8 Reviewed-on: http://git-master/r/46654 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-cardhu.c')
-rw-r--r--arch/arm/mach-tegra/board-cardhu.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu.c b/arch/arm/mach-tegra/board-cardhu.c
index 9e5172ff3bf2..e06f41263ca7 100644
--- a/arch/arm/mach-tegra/board-cardhu.c
+++ b/arch/arm/mach-tegra/board-cardhu.c
@@ -845,6 +845,18 @@ static struct tegra_otg_platform_data tegra_otg_pdata = {
.host_unregister = &tegra_usb_otg_host_unregister,
};
+static int cardu_usb_hsic_postsupend(void)
+{
+ baseband_xmm_set_power_status(BBXMM_PS_L2);
+ return 0;
+}
+
+static int cardu_usb_hsic_preresume(void)
+{
+ baseband_xmm_set_power_status(BBXMM_PS_L2TOL0);
+ return 0;
+}
+
static void cardhu_usb_init(void)
{
struct board_info bi;
@@ -867,6 +879,10 @@ static void cardhu_usb_init(void)
tegra_ehci2_device.dev.platform_data = &tegra_ehci_uhsic_pdata;
platform_device_register(&tegra_ehci2_device);
} else if (bi.board_id == BOARD_E1186) {
+ /* for baseband devices do not switch off phy during suspend */
+ tegra_ehci_uhsic_pdata.power_down_on_bus_suspend = 0;
+ uhsic_phy_config.postsuspend = cardu_usb_hsic_postsupend;
+ uhsic_phy_config.preresume = cardu_usb_hsic_preresume;
tegra_ehci2_device.dev.platform_data = &tegra_ehci_uhsic_pdata;
/* baseband registration happens in baseband-xmm-power */
} else {