summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-p1852.c
diff options
context:
space:
mode:
authorAmlan Kundu <akundu@nvidia.com>2012-07-16 15:05:23 +0530
committerSimone Willett <swillett@nvidia.com>2012-07-31 14:59:02 -0700
commit966ba0797dde76a3c7d91f6f2653b382c825bf3d (patch)
treed67e77166072d6bf037a52e4282f3b822b66324d /arch/arm/mach-tegra/board-p1852.c
parentafb5a244504ac8535aa80781f0faf4d629d6dc32 (diff)
arm: tegra: p1852: Add USB_G_ANDROID support
+ require for android adb bug 1005255 Change-Id: If2c8d197f987ddd43a9b6a6cc602ac1e2f4ae2f8 Signed-off-by: Amlan Kundu <akundu@nvidia.com> Reviewed-on: http://git-master/r/114562 (cherry-picked from 6640721b05059f03325abadfebe2f08026a41a88)
Diffstat (limited to 'arch/arm/mach-tegra/board-p1852.c')
-rw-r--r--arch/arm/mach-tegra/board-p1852.c36
1 files changed, 35 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/board-p1852.c b/arch/arm/mach-tegra/board-p1852.c
index e9cf1440b01d..229344799112 100644
--- a/arch/arm/mach-tegra/board-p1852.c
+++ b/arch/arm/mach-tegra/board-p1852.c
@@ -479,6 +479,32 @@ static int __init p1852_touch_init(void)
#endif // CONFIG_TOUCHSCREEN_ATMEL_MXT
+#if defined(CONFIG_USB_G_ANDROID)
+static struct tegra_usb_platform_data tegra_udc_pdata = {
+ .port_otg = false,
+ .has_hostpc = true,
+ .phy_intf = TEGRA_USB_PHY_INTF_UTMI,
+ .op_mode = TEGRA_USB_OPMODE_DEVICE,
+ .u_data.dev = {
+ .vbus_pmu_irq = 0,
+ .vbus_gpio = -1,
+ .charging_supported = false,
+ .remote_wakeup_supported = false,
+ },
+ .u_cfg.utmi = {
+ .hssync_start_delay = 0,
+ .idle_wait_delay = 17,
+ .elastic_limit = 16,
+ .term_range_adj = 6,
+ .xcvr_setup = 63,
+ .xcvr_setup_offset = 6,
+ .xcvr_use_fuses = 1,
+ .xcvr_lsfslew = 2,
+ .xcvr_lsrslew = 2,
+ .xcvr_use_lsb = 1,
+ },
+};
+#else
static struct tegra_usb_platform_data tegra_ehci1_utmi_pdata = {
.port_otg = false,
.has_hostpc = true,
@@ -504,6 +530,7 @@ static struct tegra_usb_platform_data tegra_ehci1_utmi_pdata = {
.xcvr_use_lsb = 1,
},
};
+#endif
static struct tegra_usb_platform_data tegra_ehci2_utmi_pdata = {
.port_otg = false,
@@ -559,9 +586,16 @@ static struct tegra_usb_platform_data tegra_ehci3_utmi_pdata = {
static void p1852_usb_init(void)
{
+ /* Need to parse sku info to decide host/device mode */
+
+ /* G_ANDROID require device mode */
+#if defined(CONFIG_USB_G_ANDROID)
+ tegra_udc_device.dev.platform_data = &tegra_udc_pdata;
+ platform_device_register(&tegra_udc_device);
+#else
tegra_ehci1_device.dev.platform_data = &tegra_ehci1_utmi_pdata;
platform_device_register(&tegra_ehci1_device);
-
+#endif
tegra_ehci2_device.dev.platform_data = &tegra_ehci2_utmi_pdata;
platform_device_register(&tegra_ehci2_device);