From bae6383607ecf2415206e98c58da47cb10b66f7d Mon Sep 17 00:00:00 2001 From: Furquan Shaikh Date: Fri, 17 Jun 2016 15:50:24 -0700 Subject: 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 Reviewed-on: https://review.coreboot.org/15266 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- src/soc/intel/apollolake/spi.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/soc/intel/apollolake/spi.c') 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; +} -- cgit v1.2.3