I don't think that's a good idea. Example - consider reading from an 16-bit SPI ADC in DMA mode. In DMA mode there is nothing that controls the SSEL except the SPI itself when it is in MODE0. However these ADCs need the SSEL de-asserted every 8/16-bit, and you don't want to do this manually by core interactions.
Also this breaks some of our touch screen drivers, that use 16bit transfers and work ok in MODE0. Greetings, Michael Analog Devices GmbH Wilhelm-Wagenfeld-Str. 6 80807 Muenchen Sitz der Gesellschaft Muenchen, Registergericht Muenchen HRB 4036 Geschaeftsfuehrer Thomas Wessel, William A. Martin, Margaret Seif From: [email protected] [mailto:[email protected]] On Behalf Of [email protected] Sent: Tuesday, April 06, 2010 5:36 AM To: [email protected] Subject: [Linux-kernel-commits] [8604] trunk/drivers/spi/spi_bfin5xx.c: [#5903], limit users to use gpio cs while CHPA = 0 Revision 8604 Author bhsong Date 2010-04-05 23:36:24 -0400 (Mon, 05 Apr 2010) Log Message [#5903], limit users to use gpio cs while CHPA = 0 Modified Paths • trunk/drivers/spi/spi_bfin5xx.c Diff Modified: trunk/drivers/spi/spi_bfin5xx.c (8603 => 8604) --- trunk/drivers/spi/spi_bfin5xx.c 2010-04-02 16:00:12 UTC (rev 8603) +++ trunk/drivers/spi/spi_bfin5xx.c 2010-04-06 03:36:24 UTC (rev 8604) @@ -1139,9 +1139,13 @@ */ 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_err(&spi->dev, "unsupported non-gpio chipselect while CPHA is 0\n"); + goto error; + } 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) { _______________________________________________ Linux-kernel-commits mailing list [email protected] https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits
