aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/apollolake/spi.c
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2016-06-17 15:50:24 -0700
committerFurquan Shaikh <furquan@google.com>2016-06-21 20:04:33 +0200
commitbae6383607ecf2415206e98c58da47cb10b66f7d (patch)
tree23389296a9962906e3efa901eec3bad1ff7b6362 /src/soc/intel/apollolake/spi.c
parentcad9b631365c0aa3f917455c3dd44edc3e0d21d4 (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.c13
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;
+}