[PATCH] spi: Correct dependency on SPI_MEM for many drivers

Tom Rini trini at konsulko.com
Fri Mar 20 21:53:51 CET 2026


A large number of drivers "depends on" SPI_MEM but this is library type
functionality and so must be select'd instead in order to ensure that
drivers will build. Correct this usage and hide the symbol normally.

Signed-off-by: Tom Rini <trini at konsulko.com>
---
 drivers/spi/Kconfig | 33 ++++++++++++++++++++-------------
 1 file changed, 20 insertions(+), 13 deletions(-)

diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index fb88175750fd..4ff17617d990 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -34,7 +34,7 @@ config DM_SPI
 	  spi_slave structure.
 
 config SPI_MEM
-	bool "SPI memory extension"
+	bool
 	select DEVRES
 	help
 	  Enable this option if you want to enable the SPI memory extension.
@@ -43,7 +43,7 @@ config SPI_MEM
 
 config SPI_DIRMAP
 	bool "SPI direct mapping"
-	depends on SPI_MEM
+	select SPI_MEM
 	help
 	  Enable the SPI direct mapping API. Most modern SPI controllers can
 	  directly map a SPI memory (or a portion of the SPI memory) in the CPU
@@ -62,7 +62,8 @@ config ADI_SPI3
 
 config AIROHA_SNFI_SPI
 	bool "Airoha SPI memory controller driver"
-	depends on SPI_MEM && ARCH_AIROHA
+	depends on ARCH_AIROHA
+	select SPI_MEM
 	help
 	  Enable the Airoha SPI memory controller driver. This driver is
 	  originally based on the Airoha SNFI IP core. It can only be
@@ -102,7 +103,8 @@ config ATH79_SPI
 
 config ATMEL_QSPI
 	bool "Atmel Quad SPI Controller"
-	depends on ARCH_AT91 && SPI_MEM
+	depends on ARCH_AT91
+	select SPI_MEM
 	help
 	  Enable the Atmel Quad SPI controller in master mode. This driver
 	  does not support generic SPI. The implementation supports only the
@@ -152,7 +154,7 @@ config BCMSTB_SPI
 
 config CORTINA_SFLASH
 	bool "Cortina-Access Serial Flash controller driver"
-	depends on SPI_MEM
+	select SPI_MEM
 	help
 	  Enable the Cortina-Access Serial Flash controller driver. This driver
 	  can be used to access the SPI NOR/NAND flash on platforms embedding this
@@ -160,6 +162,7 @@ config CORTINA_SFLASH
 
 config CADENCE_QSPI
 	bool "Cadence QSPI driver"
+	select SPI_MEM
 	help
 	  Enable the Cadence Quad-SPI (QSPI) driver. This driver can be
 	  used to access the SPI NOR flash on platforms embedding this
@@ -205,7 +208,7 @@ config CF_SPI
 
 config CV1800B_SPIF
 	bool "Sophgo cv1800b SPI Flash Controller driver"
-	depends on SPI_MEM
+	select SPI_MEM
 	help
 	  Enable the Sophgo cv1800b SPI Flash Controller driver. This driver
 	  can be used to access the SPI NOR flash on platforms embedding this
@@ -243,6 +246,7 @@ config FSL_DSPI
 
 config FSL_QSPI
 	bool "Freescale QSPI driver"
+	select SPI_MEM
 	imply SPI_FLASH_BAR
 	help
 	  Enable the Freescale Quad-SPI (QSPI) driver. This driver can be
@@ -294,6 +298,7 @@ config MESON_SPIFC
 
 config MICROCHIP_COREQSPI
 	bool "Microchip FPGA QSPI Controller driver"
+	select SPI_MEM
 	help
 	  Enable the QSPI driver for Microchip FPGA QSPI controllers.
 	  This driver can be used on Polarfire SoC.
@@ -343,7 +348,7 @@ config MT7621_SPI
 
 config MTK_SNOR
 	bool "Mediatek SPI-NOR controller driver"
-	depends on SPI_MEM
+	select SPI_MEM
 	select DEVRES
 	help
 	  Enable the Mediatek SPINOR controller driver. This driver has
@@ -351,7 +356,7 @@ config MTK_SNOR
 
 config MTK_SNFI_SPI
 	bool "Mediatek SPI memory controller driver"
-	depends on SPI_MEM
+	select SPI_MEM
 	help
 	  Enable the Mediatek SPI memory controller driver. This driver is
 	  originally based on the MediaTek SNFI IP core. It can only be
@@ -360,7 +365,7 @@ config MTK_SNFI_SPI
 
 config MTK_SPIM
 	bool "Mediatek SPI-MEM master controller driver"
-	depends on SPI_MEM
+	select SPI_MEM
 	help
 	  Enable MediaTek SPI-MEM master controller driver. This driver mainly
 	  supports SPI flashes. You can use single, dual or quad mode
@@ -385,6 +390,7 @@ config MXS_SPI
 
 config SPI_MXIC
 	bool "Macronix MX25F0A SPI controller"
+	select SPI_MEM
 	help
 	  Enable the Macronix MX25F0A SPI controller driver. This driver
 	  can be used to access the SPI flash on platforms embedding
@@ -403,7 +409,7 @@ config NPCM_PSPI
 
 config NXP_FSPI
 	bool "NXP FlexSPI driver"
-	depends on SPI_MEM
+	select SPI_MEM
 	help
 	  Enable the NXP FlexSPI (FSPI) driver. This driver can be used to
 	  access the SPI NOR flash on platforms embedding this NXP IP core.
@@ -411,7 +417,7 @@ config NXP_FSPI
 config NXP_XSPI
 	bool "NXP XSPI driver"
 	depends on ARCH_IMX9
-	depends on SPI_MEM
+	select SPI_MEM
 	help
 	  Enable the NXP External SPI (XSPI) driver. This driver can be used to
 	  access the SPI NOR/NAND flash on platforms embedding this NXP IP core.
@@ -521,7 +527,8 @@ config SANDBOX_SPI_MAX_CS
 
 config SPI_ASPEED_SMC
 	bool "ASPEED SPI flash controller driver"
-	depends on DM_SPI && SPI_MEM && ARCH_ASPEED
+	depends on DM_SPI && ARCH_ASPEED
+	select SPI_MEM
 	help
 	  Enable ASPEED SPI flash controller driver for AST2500
 	  and AST2600 SoCs.
@@ -542,7 +549,7 @@ config SOFT_SPI
 
 config SPI_SN_F_OSPI
 	tristate "Socionext F_OSPI SPI flash controller"
-	depends on SPI_MEM
+	select SPI_MEM
 	help
 	  This enables support for the Socionext F_OSPI controller
 	  for connecting an SPI flash memory over up to 8-bit wide bus.
-- 
2.43.0



More information about the U-Boot mailing list