summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-cardhu.c
diff options
context:
space:
mode:
authorMichael Hsu <mhsu@nvidia.com>2011-04-26 15:43:37 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:45:49 -0800
commit30fc7cff87f41306c1952f4e00bef45ff4bc45dc (patch)
treec69c686403fe8af1d2c56c342852e7c235009acd /arch/arm/mach-tegra/board-cardhu.c
parent76d23f119292e921e37bbfdbc9a52dafc8f3fc98 (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.c22
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);