SPI controller drivers: check for unsupported modes
[sfrench/cifs-2.6.git] / drivers / spi / spi_bitbang.c
index 88425e1af4d353fcc0ce14c0dd29c130c770f7f1..0c85c984ccb4fd53e5b243fbe1cd5d38d877d563 100644 (file)
@@ -187,12 +187,10 @@ int spi_bitbang_setup(struct spi_device *spi)
 
        bitbang = spi_master_get_devdata(spi->master);
 
-       /* REVISIT: some systems will want to support devices using lsb-first
-        * bit encodings on the wire.  In pure software that would be trivial,
-        * just bitbang_txrx_le_cphaX() routines shifting the other way, and
-        * some hardware controllers also have this support.
+       /* Bitbangers can support SPI_CS_HIGH, SPI_3WIRE, and so on;
+        * add those to master->flags, and provide the other support.
         */
-       if ((spi->mode & SPI_LSB_FIRST) != 0)
+       if ((spi->mode & ~(SPI_CPOL|SPI_CPHA|bitbang->flags)) != 0)
                return -EINVAL;
 
        if (!cs) {