aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Dooks <ben-linux@fluff.org>2008-04-15 17:34:46 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-15 22:35:41 -0400
commitd1e7780638a9192f15caf590e0081bf915fdef71 (patch)
tree82c5419927d9bfaf77aecede0054a815aea058f3
parent50f426b55d919dd017af35bb6a08753d1f262920 (diff)
spi: spi_s3c24xx must initialize num_chipselect
The SPI core now expects num_chipselect to be set correctly as due to added checks on the chip being selected before an transfer is allowed. This patch adds a num_cs field to the platform data which needs to be set correctly before adding the SPI platform device. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/spi/spi_s3c24xx.c4
-rw-r--r--include/asm-arm/arch-s3c2410/spi.h1
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/spi/spi_s3c24xx.c b/drivers/spi/spi_s3c24xx.c
index 80719ef54365..b7476b888197 100644
--- a/drivers/spi/spi_s3c24xx.c
+++ b/drivers/spi/spi_s3c24xx.c
@@ -267,6 +267,10 @@ static int __init s3c24xx_spi_probe(struct platform_device *pdev)
267 platform_set_drvdata(pdev, hw); 267 platform_set_drvdata(pdev, hw);
268 init_completion(&hw->done); 268 init_completion(&hw->done);
269 269
270 /* setup the master state. */
271
272 master->num_chipselect = hw->pdata->num_cs;
273
270 /* setup the state for the bitbang driver */ 274 /* setup the state for the bitbang driver */
271 275
272 hw->bitbang.master = hw->master; 276 hw->bitbang.master = hw->master;
diff --git a/include/asm-arm/arch-s3c2410/spi.h b/include/asm-arm/arch-s3c2410/spi.h
index 7ca0ed97a6d0..352d33860b63 100644
--- a/include/asm-arm/arch-s3c2410/spi.h
+++ b/include/asm-arm/arch-s3c2410/spi.h
@@ -15,6 +15,7 @@
15 15
16struct s3c2410_spi_info { 16struct s3c2410_spi_info {
17 unsigned long pin_cs; /* simple gpio cs */ 17 unsigned long pin_cs; /* simple gpio cs */
18 unsigned int num_cs; /* total chipselects */
18 19
19 void (*set_cs)(struct s3c2410_spi_info *spi, int cs, int pol); 20 void (*set_cs)(struct s3c2410_spi_info *spi, int cs, int pol);
20}; 21};