summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorJC Kuo <jckuo@nvidia.com>2013-10-04 19:26:27 +0800
committerHarry Hong <hhong@nvidia.com>2014-01-23 23:52:07 -0800
commit3ab0d8dc099dc3429af1025b684131120078b873 (patch)
treebba7a63deb33b9b5cef6f705078e9074f309e469 /arch
parentcf54221b42efdc07eff77449ae420bf2c5514e81 (diff)
xhci: tegra: support override fused hs_curr_level
This change add the capability to override hs_curr_level value read from usb_calib0 fuse register. Some board designs need different hs_curr_level value to optimize USB 2.0 signals. bug 1340062 Change-Id: Ic2435dc1b8c85bea507144558267b8bd29c2dad0 Reviewed-on: http://git-master/r/281745 (cherry picked from commit 938d7343c0f835772aa0f50c9df6cb32ba6b0345) Conflicts: arch/arm/mach-tegra/include/mach/xusb.h Change-Id: I611dc365c27caad14d17cb95e4e0d469ec03cc62 Signed-off-by: JC Kuo <jckuo@nvidia.com> Reviewed-on: http://git-master/r/358216 Reviewed-by: WK Tsai <wtsai@nvidia.com> Reviewed-by: Joy Wang <joyw@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Henry Lin <henryl@nvidia.com> Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/include/mach/xusb.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/include/mach/xusb.h b/arch/arm/mach-tegra/include/mach/xusb.h
index e304bb47ce8a..8270e3a6c6f5 100644
--- a/arch/arm/mach-tegra/include/mach/xusb.h
+++ b/arch/arm/mach-tegra/include/mach/xusb.h
@@ -30,8 +30,10 @@
#define TEGRA_XUSB_SS_P0 (1 << 0)
#define TEGRA_XUSB_SS_P1 (1 << 1)
#define XUSB_SS_PORT_COUNT (2)
-#define TEGRA_XUSB_USB2_P0 (1 << 8)
-#define TEGRA_XUSB_USB2_P1 (1 << 9)
+#define XUSB_UTMI_COUNT (2)
+#define XUSB_UTMI_INDEX (8)
+#define TEGRA_XUSB_USB2_P0 BIT(XUSB_UTMI_INDEX)
+#define TEGRA_XUSB_USB2_P1 BIT(XUSB_UTMI_INDEX + 1)
#define TEGRA_XUSB_HSIC_P0 (1 << 16)
#define TEGRA_XUSB_HSIC_P1 (1 << 17)
#define TEGRA_XUSB_ULPI_P0 (1 << 24)
@@ -42,6 +44,11 @@
#define TEGRA_XUSB_ULPI_PORT_CAP_MASTER (0x0)
#define TEGRA_XUSB_ULPI_PORT_CAP_PHY (0x1)
+struct tegra_xusb_utmi_config {
+ u8 hs_curr_level;
+ bool hs_curr_level_override; /* override value from usb_calib0 fuse */
+};
+
struct tegra_xusb_board_data {
u32 portmap;
/*
@@ -51,6 +58,7 @@ struct tegra_xusb_board_data {
u8 ss_portmap;
u8 ulpicap;
void (*set_vbus_en1_tristate)(bool on);
+ struct tegra_xusb_utmi_config utmi[XUSB_UTMI_COUNT];
};
struct tegra_xusb_platform_data {