aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/spi/spidev.c13
-rw-r--r--include/linux/spi/spidev.h4
2 files changed, 14 insertions, 3 deletions
diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
index 38b60ad0eda0..630f781aeb19 100644
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
@@ -55,9 +55,16 @@
55static unsigned long minors[N_SPI_MINORS / BITS_PER_LONG]; 55static unsigned long minors[N_SPI_MINORS / BITS_PER_LONG];
56 56
57 57
58/* Bit masks for spi_device.mode management */ 58/* Bit masks for spi_device.mode management. Note that incorrect
59#define SPI_MODE_MASK (SPI_CPHA | SPI_CPOL) 59 * settings for CS_HIGH and 3WIRE can cause *lots* of trouble for other
60 60 * devices on a shared bus: CS_HIGH, because this device will be
61 * active when it shouldn't be; 3WIRE, because when active it won't
62 * behave as it should.
63 *
64 * REVISIT should changing those two modes be privileged?
65 */
66#define SPI_MODE_MASK (SPI_CPHA | SPI_CPOL | SPI_CS_HIGH \
67 | SPI_LSB_FIRST | SPI_3WIRE | SPI_LOOP)
61 68
62struct spidev_data { 69struct spidev_data {
63 struct device dev; 70 struct device dev;
diff --git a/include/linux/spi/spidev.h b/include/linux/spi/spidev.h
index 7d700be57490..c93ef9d42a01 100644
--- a/include/linux/spi/spidev.h
+++ b/include/linux/spi/spidev.h
@@ -35,6 +35,10 @@
35#define SPI_MODE_2 (SPI_CPOL|0) 35#define SPI_MODE_2 (SPI_CPOL|0)
36#define SPI_MODE_3 (SPI_CPOL|SPI_CPHA) 36#define SPI_MODE_3 (SPI_CPOL|SPI_CPHA)
37 37
38#define SPI_CS_HIGH 0x04
39#define SPI_LSB_FIRST 0x08
40#define SPI_3WIRE 0x10
41#define SPI_LOOP 0x20
38 42
39/*---------------------------------------------------------------------------*/ 43/*---------------------------------------------------------------------------*/
40 44