summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorSeshendra Gadagottu <sgadagottu@nvidia.com>2011-09-08 15:11:12 +0530
committerLokesh Pathak <lpathak@nvidia.com>2011-11-09 07:33:20 -0800
commit5f2fd2745a24dd07d02042fc73afba9c8aec553e (patch)
treec1c3a4caa2f6688b7190de3b75cf7fefe7c04d53 /arch
parent9a9ee953d7d3f636ee8789eb57c18bc5a86d6d20 (diff)
arm: tegra: enterprise: HSIC phy ready and phy off callbacks
Implemented HSIC phy ready and phy off callabacks for enterprise board. BUG 828389 Reviewed-on: http://git-master/r/52884 (cherry picked from commit fc919eab4be5012f9fd0fc7dbd4b7de7d5bff5db) Change-Id: Ia3539e5982f4c0df5b9fca04c118ba8a6132431a Reviewed-on: http://git-master/r/62975 Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Tested-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-by: Michael Hsu <mhsu@nvidia.com> Reviewed-by: Steve Lin <stlin@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/board-enterprise.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/board-enterprise.c b/arch/arm/mach-tegra/board-enterprise.c
index 5e946682ad74..87d09d8ec611 100644
--- a/arch/arm/mach-tegra/board-enterprise.c
+++ b/arch/arm/mach-tegra/board-enterprise.c
@@ -803,7 +803,7 @@ static struct tegra_ehci_platform_data tegra_ehci_uhsic_pdata = {
.phy_type = TEGRA_USB_PHY_TYPE_HSIC,
.phy_config = &uhsic_phy_config,
.operating_mode = TEGRA_USB_HOST,
- .power_down_on_bus_suspend = 1,
+ .power_down_on_bus_suspend = 0,
};
static struct tegra_ehci_platform_data tegra_ehci_pdata[] = {
@@ -897,6 +897,22 @@ static int enterprise_usb_hsic_preresume(void)
return 0;
}
+static int enterprise_usb_hsic_phy_ready(void)
+{
+#ifdef CONFIG_TEGRA_BB_XMM_POWER
+ baseband_xmm_set_power_status(BBXMM_PS_L0);
+#endif
+ return 0;
+}
+
+static int enterprise_usb_hsic_phy_off(void)
+{
+#ifdef CONFIG_TEGRA_BB_XMM_POWER
+ baseband_xmm_set_power_status(BBXMM_PS_L3);
+#endif
+ return 0;
+}
+
static void enterprise_usb_init(void)
{
#ifdef CONFIG_USB_ANDROID_RNDIS
@@ -976,6 +992,8 @@ static void enterprise_baseband_init(void)
tegra_ehci_uhsic_pdata.power_down_on_bus_suspend = 0;
uhsic_phy_config.postsuspend = enterprise_usb_hsic_postsupend;
uhsic_phy_config.preresume = enterprise_usb_hsic_preresume;
+ uhsic_phy_config.usb_phy_ready = enterprise_usb_hsic_phy_ready;
+ uhsic_phy_config.post_phy_off = enterprise_usb_hsic_phy_off;
/* baseband-power.ko will register ehci2 device */
tegra_ehci2_device.dev.platform_data
= &tegra_ehci_uhsic_pdata;