From 7daf4efe5866b1eea8b0fa64794f96269e16ffdb Mon Sep 17 00:00:00 2001 From: Imre Deak Date: Fri, 26 May 2006 16:28:44 -0700 Subject: [PATCH] [PATCH] ARM: OMAP: edge selection for McSPI / uWire SPI mode 0 maps to the case where we have write on rising and read on falling clock edge. Fix the OMAP2 McSPI and OMAP1 uWire edge selection accordingly. In the uWire case the meaning of the HW flag selecting the read edge selection must be flipped for correct operation and this is in contradiction with the OMAP1 specification. Tests were performed on SPI devices using mode 1 (original uWire protocoll) like the ads7846 to validate this. Signed-off-by: Imre Deak Signed-off-by: Tony Lindgren --- drivers/spi/omap2_mcspi.c | 4 ++-- drivers/spi/omap_uwire.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/spi/omap2_mcspi.c b/drivers/spi/omap2_mcspi.c index ceb86a80542c..8b70d3821faa 100644 --- a/drivers/spi/omap2_mcspi.c +++ b/drivers/spi/omap2_mcspi.c @@ -316,9 +316,9 @@ static int omap2_mcspi_setup_transfer(struct spi_device *spi, else l &= ~OMAP2_MCSPI_CHCONF_POL; if (spi->mode & SPI_CPHA) - l |= OMAP2_MCSPI_CHCONF_PHA; - else l &= ~OMAP2_MCSPI_CHCONF_PHA; + else + l |= OMAP2_MCSPI_CHCONF_PHA; mcspi_write_cs_reg(spi, OMAP2_MCSPI_CHCONF0, l); return 0; diff --git a/drivers/spi/omap_uwire.c b/drivers/spi/omap_uwire.c index 6851eecd4078..3aa38904e0b9 100644 --- a/drivers/spi/omap_uwire.c +++ b/drivers/spi/omap_uwire.c @@ -76,8 +76,8 @@ #define CS_CMD (1 << 12) /* SR1 or SR2 bits */ -#define UWIRE_READ_FALLING_EDGE 0x0000 -#define UWIRE_READ_RISING_EDGE 0x0001 +#define UWIRE_READ_FALLING_EDGE 0x0001 +#define UWIRE_READ_RISING_EDGE 0x0000 #define UWIRE_WRITE_FALLING_EDGE 0x0000 #define UWIRE_WRITE_RISING_EDGE 0x0002 #define UWIRE_CS_ACTIVE_LOW 0x0000 @@ -355,7 +355,7 @@ static int uwire_setup_transfer(struct spi_device *spi, struct spi_transfer *t) switch (spi->mode & (SPI_CPOL | SPI_CPHA)) { case SPI_MODE_0: case SPI_MODE_3: - flags |= UWIRE_WRITE_FALLING_EDGE | UWIRE_READ_FALLING_EDGE; + flags |= UWIRE_WRITE_RISING_EDGE | UWIRE_READ_FALLING_EDGE; break; case SPI_MODE_1: case SPI_MODE_2: -- 2.39.2