393ffa5158af36c4ac689e9cdfebef16e309aa01
[openwrt/svn-archive/archive.git] / target / linux / ar71xx / patches-3.8 / 002-spi-ath79-add-missing-HIGH-LOW-SCK-transition.patch
1 From c7c943b1e3813ff5764ee6417a14530cb7cd6f57 Mon Sep 17 00:00:00 2001
2 From: Gabor Juhos <juhosg@openwrt.org>
3 Date: Thu, 27 Dec 2012 10:42:25 +0100
4 Subject: [PATCH] spi/ath79: add missing HIGH->LOW SCK transition
5
6 commit 72611db0eef21f4456d79ba302af4b34ea384f30 upstream.
7
8 The 'ath79_spi_txrx_mode0' function does not
9 set the SCK signal to LOW at the end of a word
10 transfer. This causes communications errors with
11 certain devices (e.g. the PCF2123 RTC chip).
12
13 The patch ensures that the SCK signal will be LOW.
14
15 Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
16 Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
17 ---
18 drivers/spi/spi-ath79.c | 2 ++
19 1 file changed, 2 insertions(+)
20
21 --- a/drivers/spi/spi-ath79.c
22 +++ b/drivers/spi/spi-ath79.c
23 @@ -200,6 +200,8 @@ static u32 ath79_spi_txrx_mode0(struct s
24 ath79_spi_delay(sp, nsecs);
25 ath79_spi_wr(sp, AR71XX_SPI_REG_IOC, out | AR71XX_SPI_IOC_CLK);
26 ath79_spi_delay(sp, nsecs);
27 + if (bits == 1)
28 + ath79_spi_wr(sp, AR71XX_SPI_REG_IOC, out);
29
30 word <<= 1;
31 }