diff options
author | Michael Hsu <mhsu@nvidia.com> | 2011-04-26 15:43:37 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:45:49 -0800 |
commit | 30fc7cff87f41306c1952f4e00bef45ff4bc45dc (patch) | |
tree | c69c686403fe8af1d2c56c342852e7c235009acd /arch/arm/mach-tegra/board-cardhu.c | |
parent | 76d23f119292e921e37bbfdbc9a52dafc8f3fc98 (diff) |
arm: tegra: hsic: Enable T30 HSIC
Modified cardhu board config for ehci2 to use HSIC.
Need to turn on 6416 IO expander gpio for VDDIO_HSIC. Otherwise,
VDDIO_HSIC would be 0 Volts.
Fix HSIC register differences between T20 / T30.
Original-Change-Id: I03079d4691981c8bc5fa220720aa55de507e6f04
Reviewed-on: http://git-master/r/29428
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: Rc3e3973666331d2eb2aada57b7bfe6172b67713a
Diffstat (limited to 'arch/arm/mach-tegra/board-cardhu.c')
-rw-r--r-- | arch/arm/mach-tegra/board-cardhu.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu.c b/arch/arm/mach-tegra/board-cardhu.c index 522942e69e88..1480af74c3c9 100644 --- a/arch/arm/mach-tegra/board-cardhu.c +++ b/arch/arm/mach-tegra/board-cardhu.c @@ -339,6 +339,17 @@ static struct usb_phy_plat_data tegra_usb_phy_pdata[] = { }, }; +static struct tegra_ulpi_config uhsic_phy_config = { + .enable_gpio = EN_HSIC_GPIO, + .reset_gpio = PM267_SMSC4640_HSIC_HUB_RESET_GPIO, +}; + +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, +}; static struct tegra_ehci_platform_data tegra_ehci_pdata[] = { [0] = { @@ -412,15 +423,22 @@ static struct tegra_otg_platform_data tegra_otg_pdata = { static void cardhu_usb_init(void) { + struct board_info bi; + + tegra_get_board_info(&bi); + tegra_usb_phy_init(tegra_usb_phy_pdata, ARRAY_SIZE(tegra_usb_phy_pdata)); tegra_otg_device.dev.platform_data = &tegra_otg_pdata; platform_device_register(&tegra_otg_device); - tegra_ehci2_device.dev.platform_data = &tegra_ehci_pdata[1]; + if ((bi.board_id == BOARD_PM267) || (bi.board_id == BOARD_E1186)) { + tegra_ehci2_device.dev.platform_data = &tegra_ehci_uhsic_pdata; + } else { + tegra_ehci2_device.dev.platform_data = &tegra_ehci_pdata[1]; + } platform_device_register(&tegra_ehci2_device); - tegra_ehci3_device.dev.platform_data = &tegra_ehci_pdata[2]; platform_device_register(&tegra_ehci3_device); |