summaryrefslogtreecommitdiff
path: root/spi.c
diff options
context:
space:
mode:
authorstuge <stuge@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2009-01-26 03:08:45 +0000
committerstuge <stuge@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2009-01-26 03:08:45 +0000
commit40bdfed733b43e6d9feb9957bcc83603f2e2c173 (patch)
tree647b2bdde31184104f4eac0758d03d872a3e45ea /spi.c
parent9c302a0c5d3c65f0154042c0d6dcdb41e7242898 (diff)
downloadflashrom-40bdfed733b43e6d9feb9957bcc83603f2e2c173.tar.gz
Original v2 revision: 3910
flashrom: Winbond SuperIO SPI driver. Developed and tested to work on Intel D201GLY in July 2008. Tested by a helpful person on IRC whose name I've since forgotten. Sorry! Signed-off-by: Peter Stuge <peter@stuge.se> Acked-by: Ward Vandewege <ward@gnu.org> git-svn-id: https://code.coreboot.org/svn/flashrom/trunk@404 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'spi.c')
-rw-r--r--spi.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/spi.c b/spi.c
index 8a7b79f..affc41f 100644
--- a/spi.c
+++ b/spi.c
@@ -44,6 +44,8 @@ int spi_command(unsigned int writecnt, unsigned int readcnt,
return ich_spi_command(writecnt, readcnt, writearr, readarr);
case BUS_TYPE_SB600_SPI:
return sb600_spi_command(writecnt, readcnt, writearr, readarr);
+ case BUS_TYPE_WBSIO_SPI:
+ return wbsio_spi_command(writecnt, readcnt, writearr, readarr);
default:
printf_debug
("%s called, but no SPI chipset/strapping detected\n",
@@ -160,6 +162,7 @@ int probe_spi_rdid4(struct flashchip *flash)
case BUS_TYPE_ICH9_SPI:
case BUS_TYPE_VIA_SPI:
case BUS_TYPE_SB600_SPI:
+ case BUS_TYPE_WBSIO_SPI:
return probe_spi_rdid_generic(flash, 4);
default:
printf_debug("4b ID not supported on this SPI controller\n");
@@ -229,7 +232,7 @@ int probe_spi_res(struct flashchip *flash)
uint8_t spi_read_status_register()
{
const unsigned char cmd[JEDEC_RDSR_OUTSIZE] = { JEDEC_RDSR };
- unsigned char readarr[JEDEC_RDSR_INSIZE];
+ unsigned char readarr[2]; /* JEDEC_RDSR_INSIZE=1 but wbsio needs 2 */
/* Read Status Register */
if (flashbus == BUS_TYPE_SB600_SPI) {
@@ -555,6 +558,8 @@ int spi_chip_read(struct flashchip *flash, uint8_t *buf)
case BUS_TYPE_ICH9_SPI:
case BUS_TYPE_VIA_SPI:
return ich_spi_read(flash, buf);
+ case BUS_TYPE_WBSIO_SPI:
+ return wbsio_spi_read(flash, buf);
default:
printf_debug
("%s called, but no SPI chipset/strapping detected\n",
@@ -575,6 +580,8 @@ int spi_chip_write(struct flashchip *flash, uint8_t *buf)
case BUS_TYPE_ICH9_SPI:
case BUS_TYPE_VIA_SPI:
return ich_spi_write(flash, buf);
+ case BUS_TYPE_WBSIO_SPI:
+ return wbsio_spi_write(flash, buf);
default:
printf_debug
("%s called, but no SPI chipset/strapping detected\n",