aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-imx.c
diff options
context:
space:
mode:
authorAnton Bondarenko <anton.bondarenko.sama@gmail.com>2015-12-08 01:43:44 -0500
committerMark Brown <broonie@kernel.org>2015-12-15 17:40:35 -0500
commit4686d1c3d17a146192aa707a92edc2e122ada39e (patch)
tree2c45e0f94d58b69d19aa1e04edd1f5d8b5e4823d /drivers/spi/spi-imx.c
parentf677f17cced0ca72a4331b64de119b35b19facb0 (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.c11
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)) {