spi/bfin_spi: warn when CS is driven by hardware (CPHA=0)
authorBarry Song <barry.song@analog.com>
Tue, 6 Apr 2010 03:36:24 +0000 (03:36 +0000)
committerMike Frysinger <vapier@gentoo.org>
Mon, 18 Oct 2010 06:49:43 +0000 (02:49 -0400)
When the hardware is controlling the CS, there are some SPI options
we are unable to support.  So issue a warning in the hopes that the
user will change to a SPI mode where we can support things sanely.

Signed-off-by: Barry Song <barry.song@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
drivers/spi/spi_bfin5xx.c

index 7882afc..21de860 100644 (file)
@@ -1040,9 +1040,14 @@ static int bfin_spi_setup(struct spi_device *spi)
         */
        chip->baud = hz_to_spi_baud(spi->max_speed_hz);
        chip->chip_select_num = spi->chip_select;
-       if (chip->chip_select_num < MAX_CTRL_CS)
+       if (chip->chip_select_num < MAX_CTRL_CS) {
+               if (!(spi->mode & SPI_CPHA))
+                       dev_warn(&spi->dev, "Warning: SPI CPHA not set:"
+                               " Slave Select not under software control!\n"
+                               " See Documentation/blackfin/bfin-spi-notes.txt");
+
                chip->flag = (1 << spi->chip_select) << 8;
-       else
+       else
                chip->cs_gpio = chip->chip_select_num - MAX_CTRL_CS;
 
        if (chip->enable_dma && chip->pio_interrupt) {