From 62bd6d3070897dac929e528cda7e01353635ef2f Mon Sep 17 00:00:00 2001 From: Seshendra Gadagottu Date: Fri, 19 Aug 2011 20:10:41 +0530 Subject: 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 Tested-by: Varun Colbert --- arch/arm/mach-tegra/board-cardhu.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'arch') 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 { -- cgit v1.2.3