diff options
author | Shardar Shariff Md <smohammed@nvidia.com> | 2013-09-11 18:34:27 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-09-16 17:42:14 -0700 |
commit | b90c3489607328a20cf54c1819ff7f0425ebb33a (patch) | |
tree | 6848a5a28b07055248654ac6abf47f481bf66c00 /drivers/spi | |
parent | d3e6089ceaff6a3861d931a83afbc21da207c8a2 (diff) |
arm: tegra12: spi: Set RX_TAP_DELAY depending on speed
Set rx_tap_delay to 10 when speed > 35MHz and board
specific rx_clk_tap_delay data is zero.
Bug 1245131
Change-Id: Ie38469dac8d80737da5e45b9022ef1276b7fc883
Signed-off-by: Shardar Shariff Md <smohammed@nvidia.com>
Reviewed-on: http://git-master/r/273189
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Diffstat (limited to 'drivers/spi')
-rw-r--r-- | drivers/spi/spi-tegra114.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/spi/spi-tegra114.c b/drivers/spi/spi-tegra114.c index f967434a1ff0..37d6c85dcd35 100644 --- a/drivers/spi/spi-tegra114.c +++ b/drivers/spi/spi-tegra114.c @@ -169,6 +169,11 @@ #define MAX_CHIP_SELECT 4 #define SPI_FIFO_DEPTH 64 +#ifdef CONFIG_ARCH_TEGRA_12x_SOC +#define SPI_SPEED_TAP_DELAY_MARGIN 35000000 +#define SPI_DEFAULT_RX_TAP_DELAY 10 +#endif + struct tegra_spi_data { struct device *dev; struct spi_master *master; @@ -776,7 +781,13 @@ static int tegra_spi_start_transfer_one(struct spi_device *spi, u32 command2_reg; u32 rx_tap_delay; u32 tx_tap_delay; - +#ifdef CONFIG_ARCH_TEGRA_12x_SOC + if (cdata->rx_clk_tap_delay == 0) { + if (speed > SPI_SPEED_TAP_DELAY_MARGIN) + cdata->rx_clk_tap_delay = + SPI_DEFAULT_RX_TAP_DELAY; + } +#endif rx_tap_delay = min(cdata->rx_clk_tap_delay, 63); tx_tap_delay = min(cdata->tx_clk_tap_delay, 63); command2_reg = SPI_TX_TAP_DELAY(tx_tap_delay) | |