diff options
author | Furquan Shaikh <furquan@google.com> | 2016-06-17 15:50:24 -0700 |
---|---|---|
committer | Furquan Shaikh <furquan@google.com> | 2016-06-21 20:04:33 +0200 |
commit | bae6383607ecf2415206e98c58da47cb10b66f7d (patch) | |
tree | 23389296a9962906e3efa901eec3bad1ff7b6362 /src/soc/intel/apollolake/spi.c | |
parent | cad9b631365c0aa3f917455c3dd44edc3e0d21d4 (diff) |
intel/apollolake/spi: Add support for reading status reg
spi_read_status reads the status register using hardware sequencing and
returns 0 on success and -1 on error. Use spi_read_status to return
appropriate value for get_sw_write_protect.
BUG=chrome-os-partner:54283
Change-Id: I7650b5c0ab05a8429c2b291f00d4672446d86e03
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://review.coreboot.org/15266
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/soc/intel/apollolake/spi.c')
-rw-r--r-- | src/soc/intel/apollolake/spi.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/soc/intel/apollolake/spi.c b/src/soc/intel/apollolake/spi.c index 469bb9ed4f..58c566dee6 100644 --- a/src/soc/intel/apollolake/spi.c +++ b/src/soc/intel/apollolake/spi.c @@ -373,3 +373,16 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs) return slave; } + +int spi_read_status(uint8_t *status) +{ + BOILERPLATE_CREATE_CTX(ctx); + + if (exec_sync_hwseq_xfer(ctx, SPIBAR_HSFSTS_CYCLE_RD_STATUS, 0, + sizeof(*status)) != SUCCESS) + return -1; + + drain_xfer_fifo(ctx, status, sizeof(*status)); + + return 0; +} |