sh_spi: Add 4 chip select signals supporting
Shimoda
PATCH 1/1 sh_spi: Add 4 chip select signals supporting
The module has 4 chip select signals. This patch supports it.
--- drivers/spi/sh_spi.c | 19 ++++++++++++++++--- drivers/spi/sh_spi.h | 4 +++- 2 files changed, 19 insertions(+), 4 deletions(-)
drivers/spi/sh_spi.c +16 -3
@@ -1,7 +1,7 @@/* * SH SPI driver * -* Copyright (C) 2011 Renesas Solutions Corp. +* Copyright (C) 2011-2012 Renesas Solutions Corp. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by
@@ -82,6 +82,19 @@ void spi_init(void) { } +static void sh_spi_set_cs (struct sh_spi *ss,unsigned int cs) +{ +unsigned long val =0 ; + +if (cs &0x01 ) + val |=SH_SPI_SSS0 ; +if (cs &0x02 ) + val |=SH_SPI_SSS1 ; + +sh_spi_clear_bit (SH_SPI_SSS0 |SH_SPI_SSS1 , &ss->regs->cr4); +sh_spi_set_bit (val, &ss->regs->cr4); +} +struct spi_slave *spi_setup_slave (unsigned int bus,unsigned int cs,unsigned int max_hz,unsigned int mode) {
@@ -104,6 +117,7 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,sh_spi_write (0x00 , &ss->regs->cr1);/* CR3 init */ sh_spi_write (0x00 , &ss->regs->cr3); +sh_spi_set_cs (ss, cs);clear_fifo (ss);
@@ -242,8 +256,7 @@ int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout,int spi_cs_is_valid (unsigned int bus,unsigned int cs) { -/* This driver supports "bus = 0" and "cs = 0" only. */ -if (!bus && !cs) +if (!bus && cs <SH_SPI_NUM_CS )return 1 ;else return 0 ;
drivers/spi/sh_spi.h +3 -1
@@ -60,10 +60,12 @@ struct sh_spi_regs {#define SH_SPI_TBFI 0x40#define SH_SPI_RBEI 0x20#define SH_SPI_RBFI 0x10 +#define SH_SPI_SSS1 0x08#define SH_SPI_WPABRT 0x04 -#define SH_SPI_SSS 0x01 +#define SH_SPI_SSS0 0x01#define SH_SPI_FIFO_SIZE 32 +#define SH_SPI_NUM_CS 4struct sh_spi {struct spi_slave slave;
Signature · 1 line
1.7.1
Nobuhiro Iwamatsu
AppliedPATCH 1/1 sh_spi: Add 4 chip select signals supporting
Applied. Thanks,
Nobuhiro
2012/3/6 Shimoda, Yoshihiro <[email protected]>:
Quoted 84 lines
The module has 4 chip select signals. This patch supports it.
Signed-off-by Yoshihiro Shimoda <[email protected]>---
?drivers/spi/sh_spi.c | ? 19 ++++++++++++++++--- ?drivers/spi/sh_spi.h | ? ?4 +++-
?2 files changed, 19 insertions(+), 4 deletions(-)drivers/spi/sh_spi.c +0
-0@@ -1,7 +1,7 @@?/*
?* SH SPI driver
?*
- * Copyright (C) 2011 Renesas Solutions Corp.
+ * Copyright (C) 2011-2012 Renesas Solutions Corp.
?*
?* This program is free software; you can redistribute it and/or modify ?* it under the terms of the GNU General Public License as published bydrivers/spi/sh_spi.c +13
-0@@ -82,6 +82,19 @@ void spi_init(void) ?{ ?} +static void sh_spi_set_cs (struct sh_spi *ss,unsigned int cs) +{ + ? ? ? unsigned long val = 0; + + ? ? ? if (cs & 0x01) + ? ? ? ? ? ? ? val |= SH_SPI_SSS0; + ? ? ? if (cs & 0x02) + ? ? ? ? ? ? ? val |= SH_SPI_SSS1; + + ? ? ? sh_spi_clear_bit(SH_SPI_SSS0 | SH_SPI_SSS1, &ss->regs->cr4); + ? ? ? sh_spi_set_bit(val, &ss->regs->cr4); +} + ?struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs, ? ? ? ? ? ? ? ?unsigned int max_hz, unsigned int mode) ?{@@ -104,6 +117,7 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs, ? ? ? ?sh_spi_write(0x00, &ss->regs->cr1);? ? ? ?/* CR3 init */
? ? ? ?sh_spi_write(0x00,&ss->regs->cr3);
+ ? ? ?sh_spi_set_cs(ss, cs);? ? ? ?clear_fifo(ss);
drivers/spi/sh_spi.c +1
-2@@ -242,8 +256,7 @@ int ?spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout, ?int ?spi_cs_is_valid(unsigned int bus, unsigned int cs) ?{ - ? ? ? /* This driver supports "bus = 0" and "cs = 0" only. */ - ? ? ? if (!bus && !cs) + ? ? ? if (!bus && cs < SH_SPI_NUM_CS) ? ? ? ? ? ? ? ?return 1;? ? ? ?else
? ? ? ? ? ? ? ?return 0;drivers/spi/sh_spi.h +0
-0@@ -60,10 +60,12 @@ struct sh_spi_regs {?#define
SH_SPI_TBFI? ?0x40
?#defineSH_SPI_RBEI? ?0x20
?#defineSH_SPI_RBFI? ?0x10
+#defineSH_SPI_SSS1? ?0x08
?#defineSH_SPI_WPABRT?0x04drivers/spi/sh_spi.h +1
-1-#define SH_SPI_SSS ? ? 0x01 +#define SH_SPI_SSS0 ? ?0x01?#define
SH_SPI_FIFO_SIZE? ? ? 32
+#defineSH_SPI_NUM_CS? ? ? ? ?4?struct
sh_spi{
? ? ? ?structspi_slave? ? ? ?slave;
--
1.7.1_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Signature · 3 lines
Nobuhiro Iwamatsu
?? iwamatsu at {nigauri.org / debian.org}
?? GPG ID: 40AD1FA6