diff options
author | Anton Bondarenko <anton.bondarenko.sama@gmail.com> | 2015-12-08 01:43:44 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-12-15 17:40:35 -0500 |
commit | 4686d1c3d17a146192aa707a92edc2e122ada39e (patch) | |
tree | 2c45e0f94d58b69d19aa1e04edd1f5d8b5e4823d /drivers/spi/spi-imx.c | |
parent | f677f17cced0ca72a4331b64de119b35b19facb0 (diff) |
spi: imx: enable loopback only for ECSPI controller family
Limit SPI_LOOP mode to ECSPI controller (iMX.51, iMX53 and i.MX6) only since
there is no support in other families specific code for now.
Signed-off-by: Anton Bondarenko <anton.bondarenko.sama@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi/spi-imx.c')
-rw-r--r-- | drivers/spi/spi-imx.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c index 3aa33c8c819f..17a90dcab328 100644 --- a/drivers/spi/spi-imx.c +++ b/drivers/spi/spi-imx.c | |||
@@ -1140,6 +1140,9 @@ static int spi_imx_probe(struct platform_device *pdev) | |||
1140 | spi_imx = spi_master_get_devdata(master); | 1140 | spi_imx = spi_master_get_devdata(master); |
1141 | spi_imx->bitbang.master = master; | 1141 | spi_imx->bitbang.master = master; |
1142 | 1142 | ||
1143 | spi_imx->devtype_data = of_id ? of_id->data : | ||
1144 | (struct spi_imx_devtype_data *)pdev->id_entry->driver_data; | ||
1145 | |||
1143 | for (i = 0; i < master->num_chipselect; i++) { | 1146 | for (i = 0; i < master->num_chipselect; i++) { |
1144 | int cs_gpio = of_get_named_gpio(np, "cs-gpios", i); | 1147 | int cs_gpio = of_get_named_gpio(np, "cs-gpios", i); |
1145 | if (!gpio_is_valid(cs_gpio) && mxc_platform_info) | 1148 | if (!gpio_is_valid(cs_gpio) && mxc_platform_info) |
@@ -1164,14 +1167,12 @@ static int spi_imx_probe(struct platform_device *pdev) | |||
1164 | spi_imx->bitbang.master->cleanup = spi_imx_cleanup; | 1167 | spi_imx->bitbang.master->cleanup = spi_imx_cleanup; |
1165 | spi_imx->bitbang.master->prepare_message = spi_imx_prepare_message; | 1168 | spi_imx->bitbang.master->prepare_message = spi_imx_prepare_message; |
1166 | spi_imx->bitbang.master->unprepare_message = spi_imx_unprepare_message; | 1169 | spi_imx->bitbang.master->unprepare_message = spi_imx_unprepare_message; |
1167 | spi_imx->bitbang.master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | | 1170 | spi_imx->bitbang.master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH; |
1168 | SPI_LOOP; | 1171 | if (is_imx51_ecspi(spi_imx)) |
1172 | spi_imx->bitbang.master->mode_bits |= SPI_LOOP; | ||
1169 | 1173 | ||
1170 | init_completion(&spi_imx->xfer_done); | 1174 | init_completion(&spi_imx->xfer_done); |
1171 | 1175 | ||
1172 | spi_imx->devtype_data = of_id ? of_id->data : | ||
1173 | (struct spi_imx_devtype_data *) pdev->id_entry->driver_data; | ||
1174 | |||
1175 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1176 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1176 | spi_imx->base = devm_ioremap_resource(&pdev->dev, res); | 1177 | spi_imx->base = devm_ioremap_resource(&pdev->dev, res); |
1177 | if (IS_ERR(spi_imx->base)) { | 1178 | if (IS_ERR(spi_imx->base)) { |