diff options
author | Tuomas Tynkkynen <ttynkkynen@nvidia.com> | 2013-08-12 16:06:53 +0300 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2013-08-12 13:29:52 -0500 |
commit | e497a24d8e18af510879b2ae059ee20a4a58eae8 (patch) | |
tree | 43e213a25bd02b22194b8fa1409a27feeb25fccb /include/linux/usb | |
parent | 91e66700029d71d2938e1341172331c58b6bd8b3 (diff) | |
download | linux-stable-e497a24d8e18af510879b2ae059ee20a4a58eae8.tar.gz linux-stable-e497a24d8e18af510879b2ae059ee20a4a58eae8.tar.bz2 linux-stable-e497a24d8e18af510879b2ae059ee20a4a58eae8.zip |
usb: phy: tegra: Program new PHY parameters
The Tegra30 TRM recommends configuration of certain PHY parameters for
optimal quality. Program the following registers based on device tree
parameters:
- UTMIP_XCVR_HSSLEW: HS slew rate control.
- UTMIP_HSSQUELCH_LEVEL: HS squelch detector level
- UTMIP_HSDISCON_LEVEL: HS disconnect detector level.
These registers exist in Tegra20, but programming them hasn't been
necessary, so these parameters won't be set on Tegra20 to keep the
device trees backward compatible.
Additionally, the UTMIP_XCVR_SETUP parameter can be set from fuses
instead of a software-programmed value, as the optimal value can
vary between invidual boards. The boolean property
nvidia,xcvr-setup-use-fuses can be used to enable this behaviour.
Signed-off-by: Tuomas Tynkkynen <ttynkkynen@nvidia.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'include/linux/usb')
-rw-r--r-- | include/linux/usb/tegra_usb_phy.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/usb/tegra_usb_phy.h b/include/linux/usb/tegra_usb_phy.h index d3a63c354db9..1de16c324ec8 100644 --- a/include/linux/usb/tegra_usb_phy.h +++ b/include/linux/usb/tegra_usb_phy.h @@ -41,9 +41,13 @@ struct tegra_utmip_config { u8 elastic_limit; u8 idle_wait_delay; u8 term_range_adj; + bool xcvr_setup_use_fuses; u8 xcvr_setup; u8 xcvr_lsfslew; u8 xcvr_lsrslew; + u8 xcvr_hsslew; + u8 hssquelch_level; + u8 hsdiscon_level; }; enum tegra_usb_phy_port_speed { |