]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/spi/au1550_spi.c
Kobject: auto-cleanup on final unref
[linux-2.6-omap-h63xx.git] / drivers / spi / au1550_spi.c
index ae2b1af0dba48a6f7975fcfcdec95b62e63090e2..c47a650183a14beeec627db2f439d47b7a08c401 100644 (file)
@@ -280,6 +280,9 @@ static int au1550_spi_setupxfer(struct spi_device *spi, struct spi_transfer *t)
        return 0;
 }
 
+/* the spi->mode bits understood by this driver: */
+#define MODEBITS (SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | SPI_LSB_FIRST)
+
 static int au1550_spi_setup(struct spi_device *spi)
 {
        struct au1550_spi *hw = spi_master_get_devdata(spi->master);
@@ -292,6 +295,12 @@ static int au1550_spi_setup(struct spi_device *spi)
                return -EINVAL;
        }
 
+       if (spi->mode & ~MODEBITS) {
+               dev_dbg(&spi->dev, "setup: unsupported mode bits %x\n",
+                       spi->mode & ~MODEBITS);
+               return -EINVAL;
+       }
+
        if (spi->max_speed_hz == 0)
                spi->max_speed_hz = hw->freq_max;
        if (spi->max_speed_hz > hw->freq_max