]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/spi/mpc52xx_psc_spi.c
[POWERPC] Fix cpm_uart driver for cpm1 machines
[linux-2.6-omap-h63xx.git] / drivers / spi / mpc52xx_psc_spi.c
index 11f36bef3057493a6c7b0c3e79e5f270f220a601..d2a4b2bdb07b6cbae5f2a4b4d51727a813ed2596 100644 (file)
@@ -270,6 +270,9 @@ static void mpc52xx_psc_spi_work(struct work_struct *work)
        spin_unlock_irq(&mps->lock);
 }
 
+/* the spi->mode bits understood by this driver: */
+#define MODEBITS (SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | SPI_LSB_FIRST)
+
 static int mpc52xx_psc_spi_setup(struct spi_device *spi)
 {
        struct mpc52xx_psc_spi *mps = spi_master_get_devdata(spi->master);
@@ -279,6 +282,12 @@ static int mpc52xx_psc_spi_setup(struct spi_device *spi)
        if (spi->bits_per_word%8)
                return -EINVAL;
 
+       if (spi->mode & ~MODEBITS) {
+               dev_dbg(&spi->dev, "setup: unsupported mode bits %x\n",
+                       spi->mode & ~MODEBITS);
+               return -EINVAL;
+       }
+
        if (!cs) {
                cs = kzalloc(sizeof *cs, GFP_KERNEL);
                if (!cs)