diff options
author | JC Kuo <jckuo@nvidia.com> | 2013-10-04 19:26:27 +0800 |
---|---|---|
committer | Harry Hong <hhong@nvidia.com> | 2014-01-23 23:52:07 -0800 |
commit | 3ab0d8dc099dc3429af1025b684131120078b873 (patch) | |
tree | bba7a63deb33b9b5cef6f705078e9074f309e469 /arch | |
parent | cf54221b42efdc07eff77449ae420bf2c5514e81 (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.h | 12 |
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 { |