spi: Setup the master controller driver before setting the chipselect
SPI controllers may need to be properly setup before chip selects can be used. Therefore, wait until the spi controller has a chance to perform their setup procedure before trying to use the chip select. This also insures that the chip selects pins are in a good state before asseting them which otherwise may cause confusion. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Tested-by: Grygorii Strashko <grygorii.strashko@ti.com> Tested-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Родитель
6ff33f3902
Коммит
abeedb0159
|
@ -1993,11 +1993,11 @@ int spi_setup(struct spi_device *spi)
|
||||||
if (!spi->max_speed_hz)
|
if (!spi->max_speed_hz)
|
||||||
spi->max_speed_hz = spi->master->max_speed_hz;
|
spi->max_speed_hz = spi->master->max_speed_hz;
|
||||||
|
|
||||||
spi_set_cs(spi, false);
|
|
||||||
|
|
||||||
if (spi->master->setup)
|
if (spi->master->setup)
|
||||||
status = spi->master->setup(spi);
|
status = spi->master->setup(spi);
|
||||||
|
|
||||||
|
spi_set_cs(spi, false);
|
||||||
|
|
||||||
dev_dbg(&spi->dev, "setup mode %d, %s%s%s%s%u bits/w, %u Hz max --> %d\n",
|
dev_dbg(&spi->dev, "setup mode %d, %s%s%s%s%u bits/w, %u Hz max --> %d\n",
|
||||||
(int) (spi->mode & (SPI_CPOL | SPI_CPHA)),
|
(int) (spi->mode & (SPI_CPOL | SPI_CPHA)),
|
||||||
(spi->mode & SPI_CS_HIGH) ? "cs_high, " : "",
|
(spi->mode & SPI_CS_HIGH) ? "cs_high, " : "",
|
||||||
|
|
Загрузка…
Ссылка в новой задаче