drivers/spi/spi_flash: add flash region protection to controller

Provide a spi controller specific protection callback to take
advantage of special spi flash controllers that have internal
protection registers built into the implementation. It's an
optional callback for spi controllers.

BUG=b:69614064

Change-Id: Ie50a6ce3bbda32620a25dd26fda1af944940bf28
Signed-off-by: Aaron Durbn <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/22879
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
This commit is contained in:
Aaron Durbin
2017-12-14 14:34:47 -07:00
parent 02103e34d7
commit 10d65b06ae
3 changed files with 35 additions and 0 deletions

View File

@ -16,6 +16,7 @@
#ifndef _SPI_GENERIC_H_
#define _SPI_GENERIC_H_
#include <commonlib/region.h>
#include <stdint.h>
#include <stddef.h>
@ -115,6 +116,7 @@ struct spi_flash;
*
* flash_probe: Specialized probe function provided by SPI flash
* controllers.
* flash_protect: Protect a region of flash using the SPI flash controller.
*/
struct spi_ctrlr {
int (*claim_bus)(const struct spi_slave *slave);
@ -128,6 +130,8 @@ struct spi_ctrlr {
bool deduct_cmd_len;
int (*flash_probe)(const struct spi_slave *slave,
struct spi_flash *flash);
int (*flash_protect)(const struct spi_flash *flash,
const struct region *region);
};
/*-----------------------------------------------------------------------