summaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/patches-2.6.36/201-ap83_spi_controller.patch
blob: 32f9f0d5f28e9a4bec23c0df5e07bf82f623e75f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
@@ -11,6 +11,7 @@ endif
 obj-$(CONFIG_SPI_MASTER)		+= spi.o
 
 # SPI master controller drivers (bus)
+obj-$(CONFIG_SPI_AP83)			+= ap83_spi.o
 obj-$(CONFIG_SPI_AR71XX)		+= ar71xx_spi.o
 obj-$(CONFIG_SPI_ATMEL)			+= atmel_spi.o
 obj-$(CONFIG_SPI_BFIN)			+= spi_bfin5xx.o
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -53,6 +53,14 @@ if SPI_MASTER
 
 comment "SPI Master Controller Drivers"
 
+config SPI_AP83
+	tristate "Atheros AP83 specific SPI Controller"
+	depends on SPI_MASTER && AR71XX_MACH_AP83
+	select SPI_BITBANG
+	help
+	  This is a specific SPI controller driver for the Atheros AP83
+	  reference board.
+
 config SPI_AR71XX
 	tristate "Atheros AR71xx SPI Controller"
 	depends on SPI_MASTER && ATHEROS_AR71XX
--- a/drivers/spi/ap83_spi.c
+++ b/drivers/spi/ap83_spi.c
@@ -132,28 +132,28 @@ static u32 ap83_spi_txrx_mode0(struct sp
 			       unsigned nsecs, u32 word, u8 bits)
 {
 	dev_dbg(&spi->dev, "TXRX0 word=%08x, bits=%u\n", word, bits);
-	return bitbang_txrx_be_cpha0(spi, nsecs, 0, word, bits);
+	return bitbang_txrx_be_cpha0(spi, nsecs, 0, 0, word, bits);
 }
 
 static u32 ap83_spi_txrx_mode1(struct spi_device *spi,
 			       unsigned nsecs, u32 word, u8 bits)
 {
 	dev_dbg(&spi->dev, "TXRX1 word=%08x, bits=%u\n", word, bits);
-	return bitbang_txrx_be_cpha1(spi, nsecs, 0, word, bits);
+	return bitbang_txrx_be_cpha1(spi, nsecs, 0, 0, word, bits);
 }
 
 static u32 ap83_spi_txrx_mode2(struct spi_device *spi,
 			       unsigned nsecs, u32 word, u8 bits)
 {
 	dev_dbg(&spi->dev, "TXRX2 word=%08x, bits=%u\n", word, bits);
-	return bitbang_txrx_be_cpha0(spi, nsecs, 1, word, bits);
+	return bitbang_txrx_be_cpha0(spi, nsecs, 1, 0, word, bits);
 }
 
 static u32 ap83_spi_txrx_mode3(struct spi_device *spi,
 			       unsigned nsecs, u32 word, u8 bits)
 {
 	dev_dbg(&spi->dev, "TXRX3 word=%08x, bits=%u\n", word, bits);
-	return bitbang_txrx_be_cpha1(spi, nsecs, 1, word, bits);
+	return bitbang_txrx_be_cpha1(spi, nsecs, 1, 0, word, bits);
 }
 
 static int ap83_spi_probe(struct platform_device *pdev)