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
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:52:24 -0800
commitbd461ec77277773970f661242a56d5747092b2fc (patch)
tree849afb78fc2873d22907463c07077ecf64264020 /arch/arm/mach-tegra/board-cardhu.c
parentf62175e8819c555c730cf023ad3e11551b1563e8 (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 Original-Change-Id: I2cd862361d5ba0fedf7e7bffac02c0dfbf5cf0c8 Reviewed-on: http://git-master/r/46654 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com> Rebase-Id: R07b042064157d92b288da906c040b083d62df743
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 1ea589607471..b77deda964ea 100644
--- a/arch/arm/mach-tegra/board-cardhu.c
+++ b/arch/arm/mach-tegra/board-cardhu.c
@@ -758,6 +758,18 @@ static struct usb_phy_plat_data tegra_usb_phy_pdata[] = {
},
};
+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;
@@ -778,6 +790,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 {