drivers/spi/spi_flash: Clean up SPI flash probe
1. Rename __spi_flash_probe to spi_flash_generic_probe and export it so that drivers can use it outside spi_flash.c. 2. Make southbridge intel spi driver use spi_flash_generic_probe if spi_is_multichip returns 0. 3. Add spi_flash_probe to spi_ctrlr structure to allow platforms to provide specialized probe functions. With this change, the specialized spi flash probe functions are now associated with a particular spi ctrlr structure and no longer disconnected from the spi controller. BUG=b:38330715 Change-Id: I35f3bd8ddc5e71515df3ef0c1c4b1a68ee56bf4b Signed-off-by: Furquan Shaikh <furquan@chromium.org> Reviewed-on: https://review.coreboot.org/19708 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
committed by
Furquan Shaikh
parent
bd9e32efdd
commit
a1491574ef
@ -94,6 +94,8 @@ struct spi_cfg {
|
||||
*/
|
||||
#define SPI_CTRLR_DEFAULT_MAX_XFER_SIZE (UINT32_MAX)
|
||||
|
||||
struct spi_flash;
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Representation of a SPI controller.
|
||||
*
|
||||
@ -108,6 +110,11 @@ struct spi_cfg {
|
||||
* deduct_cmd_len: Whether cmd_len should be deducted from max_xfer_size
|
||||
* when calculating max_data_size
|
||||
*
|
||||
* Following member is provided by specialized SPI controllers that are
|
||||
* actually SPI flash controllers.
|
||||
*
|
||||
* flash_probe: Specialized probe function provided by SPI flash
|
||||
* controllers.
|
||||
*/
|
||||
struct spi_ctrlr {
|
||||
int (*claim_bus)(const struct spi_slave *slave);
|
||||
@ -119,6 +126,8 @@ struct spi_ctrlr {
|
||||
struct spi_op vectors[], size_t count);
|
||||
uint32_t max_xfer_size;
|
||||
bool deduct_cmd_len;
|
||||
int (*flash_probe)(const struct spi_slave *slave,
|
||||
struct spi_flash *flash);
|
||||
};
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user