From: Lukasz Majewski
This change allows more fine tuning of driver model based SPI support in
SPL and TPL. It is now possible to explicitly enable/disable the DM_SPI
support in SPL and TPL via Kconfig option.
Before this change it was necessary to use:
/* SPI Flash Configs */
#if defined(CONFIG_SPL_BUILD)
#undef CONFIG_DM_SPI
#undef CONFIG_DM_SPI_FLASH
#undef CONFIG_SPI_FLASH_MTD
#endif
in the ./include/configs/.h, which is error prone and shall be
avoided when we strive to switch to Kconfig.
The goal of this patch:
Provide distinction for DM_SPI support in both U-Boot proper and SPL (TPL).
Valid use case is when U-Boot proper wants to use DM_SPI, but SPL must
still support non DM driver.
Another use case is the conversion of non DM/DTS SPI driver to support
DM/DTS. When such driver needs to work in both SPL and U-Boot proper, the
distinction is needed in Kconfig (also if SPL version of the driver
supports OF_PLATDATA).
In the end of the day one would have to support following use cases (in
single driver file - e.g. mxs_spi.c):
- U-Boot proper driver supporting DT/DTS
- U-Boot proper driver without DT/DTS support (deprecated)
- SPL driver without DT/DTS support
- SPL (and TPL) driver with DT/DTS (when the SoC has enough resources to
run full blown DT/DTS)
- SPL driver with DT/DTS and SPL_OF_PLATDATA (when one have constrained
environment with no fitImage and OF_LIBFDT support).
Some boards do require SPI support (with DM) in SPL (TPL) and some only
have DM_SPI{_FLASH} defined to allow compiling SPL.
This patch converts #ifdef CONFIG_DM_SPI* to #if CONFIG_IS_ENABLED(DM_SPI)
and provides corresponding defines in Kconfig.
Signed-off-by: Lukasz Majewski
Tested-by: Adam Ford #da850-evm
Signed-off-by: Hou Zhiqiang
---
V5:
- No change.
arch/arm/Kconfig| 11 +++
board/l+g/vinco/vinco.c | 4 ++--
cmd/sf.c| 4 ++--
cmd/spi.c | 6 +++---
common/spl/Kconfig | 20
configs/am57xx_evm_defconfig| 2 ++
configs/am57xx_hs_evm_defconfig | 2 ++
configs/am57xx_hs_evm_usb_defconfig | 2 ++
configs/axm_defconfig | 2 ++
configs/chromebook_link64_defconfig | 2 ++
configs/chromebook_samus_tpl_defconfig | 4
configs/dra7xx_evm_defconfig| 2 ++
configs/dra7xx_hs_evm_defconfig | 2 ++
configs/dra7xx_hs_evm_usb_defconfig | 2 ++
configs/j721e_evm_a72_defconfig | 2 ++
configs/j721e_evm_r5_defconfig | 2 ++
configs/ls1021aiot_qspi_defconfig | 2 ++
configs/ls1021aiot_sdcard_defconfig | 2 ++
configs/ls1021aqds_qspi_defconfig | 1 +
configs/ls1021aqds_sdcard_qspi_defconfig| 1 +
configs/ls1021atwr_qspi_defconfig | 1 +
configs/sama5d2_xplained_spiflash_defconfig | 2 ++
configs/sama5d3xek_spiflash_defconfig | 7 ---
configs/sama5d4_xplained_spiflash_defconfig | 2 ++
configs/sama5d4ek_spiflash_defconfig| 2 ++
configs/stm32mp15_basic_defconfig | 2 ++
configs/taurus_defconfig| 2 ++
drivers/mtd/spi/Makefile| 4 ++--
drivers/mtd/spi/sf_probe.c | 2 +-
drivers/net/fm/fm.c | 4 ++--
drivers/spi/Makefile| 2 +-
drivers/spi/atmel_spi.c | 4 ++--
drivers/spi/davinci_spi.c | 6 +++---
drivers/spi/fsl_dspi.c | 5 +++--
drivers/spi/kirkwood_spi.c | 2 +-
drivers/spi/mxc_spi.c | 6 +++---
drivers/spi/omap3_spi.c | 4 ++--
drivers/spi/sh_qspi.c | 4 ++--
env/sf.c| 2 +-
include/spi.h | 8
include/spi_flash.h | 2 +-
test/dm/spi.c | 2 +-
42 files changed, 112 insertions(+), 38 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 9c528eaec5..bac392c4cb 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -549,6 +549,7 @@ config TARGET_GPLUGD
config ARCH_DAVINCI
bool "TI DaVinci"
select CPU_ARM926EJS
+ select SPL_DM_SPI if SPL
imply CMD_SAVES
help
Support for TI's DaVinci platform.
@@ -566,6 +567,8 @@ config ARCH_MVEBU
select DM_SERIAL
select DM_SPI
select DM_SPI_FLASH
+ select SPL_DM_SPI if SPL
+ select SPL_DM_SPI_FLASH if SPL
select OF_CONTROL
select OF_SEPARATE
select SPI
@@ -985,6 +988,8 @@ config ARCH_SOCFPGA
imply FAT_WRITE
imply SPL
imply SPL_DM
+ imply SPL_DM_SPI
+ imply SPL_DM_SPI_FLASH
imply SPL_LIBDISK_SUPPORT
imply SPL_MMC_SUPPORT