[U-Boot] [RFC PATCH 1/1] spi: Kconfig: change dependency order

Oskari Lemmela oskari at lemmela.net
Wed Jan 30 18:17:03 UTC 2019


SPI Kconfig logic is changed to reverse dependencies.
Dependencies are not needed to be defined in the defconfig.

Signed-off-by: Oskari Lemmela <oskari at lemmela.net>
---
 drivers/mtd/spi/Kconfig | 28 ++++++++++++------
 drivers/spi/Kconfig     | 63 ++++++++++++++++++++++++++++++++++++-----
 2 files changed, 75 insertions(+), 16 deletions(-)

diff --git a/drivers/mtd/spi/Kconfig b/drivers/mtd/spi/Kconfig
index 76d5a1d115..19ec3a9c9b 100644
--- a/drivers/mtd/spi/Kconfig
+++ b/drivers/mtd/spi/Kconfig
@@ -17,7 +17,8 @@ config DM_SPI_FLASH
 
 config SPI_FLASH_SANDBOX
 	bool "Support sandbox SPI flash device"
-	depends on SANDBOX && DM_SPI_FLASH
+	depends on SANDBOX
+	select DM_SPI_FLASH
 	help
 	  Since sandbox cannot access real devices, an emulation mechanism is
 	  provided instead. Drivers can be connected up to the sandbox SPI
@@ -27,6 +28,8 @@ config SPI_FLASH_SANDBOX
 
 config SPI_FLASH
 	bool "Legacy SPI Flash Interface support"
+	imply CMD_SF
+	select SPI
 	help
 	  Enable the legacy SPI flash support. This will include basic
 	  standard support for things like probing, read / write, and
@@ -36,7 +39,7 @@ config SPI_FLASH
 
 config SPI_FLASH_BAR
 	bool "SPI flash Bank/Extended address register support"
-	depends on SPI_FLASH
+	select SPI_FLASH
 	help
 	  Enable the SPI flash Bank/Extended address register support.
 	  Bank/Extended address registers are used to access the flash
@@ -44,66 +47,72 @@ config SPI_FLASH_BAR
 
 config SF_DUAL_FLASH
 	bool "SPI DUAL flash memory support"
-	depends on SPI_FLASH
+	select SPI_FLASH
 	help
 	  Enable this option to support two flash memories connected to a single
 	  controller. Currently Xilinx Zynq qspi supports this.
 
-if SPI_FLASH
-
 config SPI_FLASH_ATMEL
 	bool "Atmel SPI flash support"
+	select SPI_FLASH
 	help
 	  Add support for various Atmel SPI flash chips (AT45xxx and AT25xxx)
 
 config SPI_FLASH_EON
 	bool "EON SPI flash support"
+	select SPI_FLASH
 	help
 	  Add support for various EON SPI flash chips (EN25xxx)
 
 config SPI_FLASH_GIGADEVICE
 	bool "GigaDevice SPI flash support"
+	select SPI_FLASH
 	help
 	  Add support for various GigaDevice SPI flash chips (GD25xxx)
 
 config SPI_FLASH_ISSI
 	bool "ISSI SPI flash support"
+	select SPI_FLASH
 	help
 	  Add support for various ISSI SPI flash chips (ISxxx)
 
 config SPI_FLASH_MACRONIX
 	bool "Macronix SPI flash support"
+	select SPI_FLASH
 	help
 	  Add support for various Macronix SPI flash chips (MX25Lxxx)
 
 config SPI_FLASH_SPANSION
 	bool "Spansion SPI flash support"
+	select SPI_FLASH
 	help
 	  Add support for various Spansion SPI flash chips (S25FLxxx)
 
 config SPI_FLASH_STMICRO
 	bool "STMicro SPI flash support"
+	select SPI_FLASH
 	help
 	  Add support for various STMicro SPI flash chips (M25Pxxx and N25Qxxx)
 
 config SPI_FLASH_SST
 	bool "SST SPI flash support"
+	select SPI_FLASH
 	help
 	  Add support for various SST SPI flash chips (SST25xxx)
 
 config SPI_FLASH_WINBOND
 	bool "Winbond SPI flash support"
+	select SPI_FLASH
 	help
 	  Add support for various Winbond SPI flash chips (W25xxx)
 
 config SPI_FLASH_XMC
 	bool "XMC SPI flash support"
+	select SPI_FLASH
 	help
 	  Add support for various XMC (Wuhan Xinxin Semiconductor
 	  Manufacturing Corp.) SPI flash chips (XM25xxx)
 
-endif
-
 config SPI_FLASH_USE_4K_SECTORS
 	bool "Use small 4096 B erase sectors"
 	depends on SPI_FLASH
@@ -121,7 +130,8 @@ config SPI_FLASH_USE_4K_SECTORS
 
 config SPI_FLASH_DATAFLASH
 	bool "AT45xxx DataFlash support"
-	depends on SPI_FLASH && DM_SPI_FLASH
+	select SPI_FLASH
+	select DM_SPI_FLASH
 	help
 	  Enable the access for SPI-flash-based AT45xxx DataFlash chips.
 	  DataFlash is a kind of SPI flash. Most AT45 chips have two buffers
@@ -136,7 +146,7 @@ config SPI_FLASH_DATAFLASH
 
 config SPI_FLASH_MTD
 	bool "SPI Flash MTD support"
-	depends on SPI_FLASH
+	select SPI_FLASH
 	help
           Enable the MTD support for spi flash layer, this adapter is for
 	  translating mtd_read/mtd_write commands into spi_flash_read/write
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index fa76d8c3c0..c825384edf 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -1,7 +1,7 @@
-menuconfig SPI
-	bool "SPI Support"
+menu "SPI Support"
 
-if SPI
+config SPI
+	bool "SPI Support"
 
 config DM_SPI
 	bool "Enable Driver Model for SPI drivers"
@@ -16,10 +16,12 @@ config DM_SPI
 	  typically use driver-private data instead of extending the
 	  spi_slave structure.
 
-if DM_SPI
+menu "DM SPI Drivers"
+	visible if DM
 
 config SPI_MEM
 	bool "SPI memory extension"
+	imply DM_SPI
 	help
 	  Enable this option if you want to enable the SPI memory extension.
 	  This extension is meant to simplify interaction with SPI memories
@@ -27,6 +29,7 @@ config SPI_MEM
 
 config ALTERA_SPI
 	bool "Altera SPI driver"
+	select DM_SPI
 	help
 	  Enable the Altera SPI driver. This driver can be used to
 	  access the SPI NOR flash on platforms embedding this Altera
@@ -35,6 +38,7 @@ config ALTERA_SPI
 
 config ATCSPI200_SPI
 	bool "Andestech ATCSPI200 SPI driver"
+	select DM_SPI
 	help
 	  Enable the Andestech ATCSPI200 SPI driver. This driver can be
 	  used to access the SPI flash on AE3XX and AE250 platforms embedding
@@ -42,6 +46,7 @@ config ATCSPI200_SPI
 
 config ATH79_SPI
 	bool "Atheros SPI driver"
+	select DM_SPI
 	depends on ARCH_ATH79
 	help
 	  Enable the Atheros ar7xxx/ar9xxx SoC SPI driver, it was used
@@ -51,6 +56,7 @@ config ATH79_SPI
 
 config ATMEL_SPI
 	bool "Atmel SPI driver"
+	select DM_SPI
 	default y if ARCH_AT91
 	help
 	  This enables driver for the Atmel SPI Controller, present on
@@ -59,6 +65,7 @@ config ATMEL_SPI
 
 config BCM63XX_HSSPI
 	bool "BCM63XX HSSPI driver"
+	select DM_SPI
 	depends on ARCH_BMIPS
 	help
 	  Enable the BCM6328 HSSPI driver. This driver can be used to
@@ -67,6 +74,7 @@ config BCM63XX_HSSPI
 
 config BCM63XX_SPI
 	bool "BCM6348 SPI driver"
+	select DM_SPI
 	depends on ARCH_BMIPS
 	help
 	  Enable the BCM6348/BCM6358 SPI driver. This driver can be used to
@@ -75,6 +83,7 @@ config BCM63XX_SPI
 
 config BCMSTB_SPI
 	bool "BCMSTB SPI driver"
+	select DM_SPI
 	help
 	  Enable the Broadcom set-top box SPI driver. This driver can
 	  be used to access the SPI flash on platforms embedding this
@@ -82,6 +91,7 @@ config BCMSTB_SPI
 
 config CADENCE_QSPI
 	bool "Cadence QSPI driver"
+	select DM_SPI
 	help
 	  Enable the Cadence Quad-SPI (QSPI) driver. This driver can be
 	  used to access the SPI NOR flash on platforms embedding this
@@ -89,6 +99,7 @@ config CADENCE_QSPI
 
 config DESIGNWARE_SPI
 	bool "Designware SPI driver"
+	select DM_SPI
 	help
 	  Enable the Designware SPI driver. This driver can be used to
 	  access the SPI NOR flash on platforms embedding this Designware
@@ -96,6 +107,7 @@ config DESIGNWARE_SPI
 
 config EXYNOS_SPI
 	bool "Samsung Exynos SPI driver"
+	select DM_SPI
 	help
 	  Enable the Samsung Exynos SPI driver. This driver can be used to
 	  access the SPI NOR flash on platforms embedding this Samsung
@@ -103,6 +115,7 @@ config EXYNOS_SPI
 
 config FSL_DSPI
 	bool "Freescale DSPI driver"
+	select DM_SPI
 	help
 	  Enable the Freescale DSPI driver. This driver can be used to
 	  access the SPI NOR flash and SPI Data flash on platforms embedding
@@ -111,6 +124,7 @@ config FSL_DSPI
 
 config ICH_SPI
 	bool "Intel ICH SPI driver"
+	select DM_SPI
 	help
 	  Enable the Intel ICH SPI driver. This driver can be used to
 	  access the SPI NOR flash on platforms embedding this Intel
@@ -118,6 +132,7 @@ config ICH_SPI
 
 config MESON_SPIFC
 	bool "Amlogic Meson SPI Flash Controller driver"
+	select DM_SPI
 	depends on ARCH_MESON
 	help
 	  Enable the Amlogic Meson SPI Flash Controller SPIFC) driver.
@@ -126,12 +141,14 @@ config MESON_SPIFC
 
 config MPC8XX_SPI
 	bool "MPC8XX SPI Driver"
+	select DM_SPI
 	depends on MPC8xx
 	help
 	  Enable support for SPI on MPC8XX
 
 config MT7621_SPI
 	bool "MediaTek MT7621 SPI driver"
+	select DM_SPI
 	depends on ARCH_MT7620
 	help
 	  Enable the MT7621 SPI driver. This driver can be used to access
@@ -140,6 +157,7 @@ config MT7621_SPI
 
 config MTK_QSPI
 	bool "Mediatek QSPI driver"
+	select DM_SPI
 	help
 	  Enable the Mediatek QSPI driver. This driver can be
 	  used to access the SPI NOR flash on platforms embedding this
@@ -147,6 +165,7 @@ config MTK_QSPI
 
 config MVEBU_A3700_SPI
 	bool "Marvell Armada 3700 SPI driver"
+	select DM_SPI
 	select CLK_ARMADA_3720
 	help
 	  Enable the Marvell Armada 3700 SPI driver. This driver can be
@@ -155,6 +174,7 @@ config MVEBU_A3700_SPI
 
 config PIC32_SPI
 	bool "Microchip PIC32 SPI driver"
+	select DM_SPI
 	depends on MACH_PIC32
 	help
 	  Enable the Microchip PIC32 SPI driver. This driver can be used
@@ -163,6 +183,7 @@ config PIC32_SPI
 
 config PL022_SPI
 	bool "ARM AMBA PL022 SSP controller driver"
+	select DM_SPI
 	depends on ARM
 	help
 	  This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP
@@ -171,6 +192,7 @@ config PL022_SPI
 
 config RENESAS_RPC_SPI
 	bool "Renesas RPC SPI driver"
+	select DM_SPI
 	depends on RCAR_GEN3
 	help
 	  Enable the Renesas RPC SPI driver, used to access SPI NOR flash
@@ -179,6 +201,7 @@ config RENESAS_RPC_SPI
 
 config ROCKCHIP_SPI
 	bool "Rockchip SPI driver"
+	select DM_SPI
 	help
 	  Enable the Rockchip SPI driver, used to access SPI NOR flash and
 	  other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs.
@@ -187,7 +210,8 @@ config ROCKCHIP_SPI
 
 config SANDBOX_SPI
 	bool "Sandbox SPI driver"
-	depends on SANDBOX && DM
+	select DM_SPI
+	depends on SANDBOX
 	help
 	  Enable SPI support for sandbox. This is an emulation of a real SPI
 	  bus. Devices can be attached to the bus using the device tree
@@ -212,6 +236,7 @@ config SANDBOX_SPI
 
 config STM32_QSPI
 	bool "STM32F7 QSPI driver"
+	select DM_SPI
 	depends on STM32F7
 	help
 	  Enable the STM32F7 Quad-SPI (QSPI) driver. This driver can be
@@ -220,11 +245,13 @@ config STM32_QSPI
 
 config SUN4I_SPI
 	bool "Allwinner SoCs SPI driver"
+	select DM_SPI
 	help
 	  SPI driver for Allwinner SoCs
 
 config TEGRA114_SPI
 	bool "nVidia Tegra114 SPI driver"
+	select DM_SPI
 	help
 	  Enable the nVidia Tegra114 SPI driver. This driver can be used to
 	  access the SPI NOR flash on platforms embedding this nVidia Tegra114
@@ -235,6 +262,7 @@ config TEGRA114_SPI
 
 config TEGRA20_SFLASH
 	bool "nVidia Tegra20 Serial Flash controller driver"
+	select DM_SPI
 	help
 	  Enable the nVidia Tegra20 Serial Flash controller driver. This driver
 	  can be used to access the SPI NOR flash on platforms embedding this
@@ -242,6 +270,7 @@ config TEGRA20_SFLASH
 
 config TEGRA20_SLINK
 	bool "nVidia Tegra20/Tegra30 SLINK driver"
+	select DM_SPI
 	help
 	  Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can
 	  be used to access the SPI NOR flash on platforms embedding this
@@ -249,6 +278,7 @@ config TEGRA20_SLINK
 
 config TEGRA210_QSPI
 	bool "nVidia Tegra210 QSPI driver"
+	select DM_SPI
 	help
 	  Enable the Tegra Quad-SPI (QSPI) driver for T210. This driver
 	  be used to access SPI chips on platforms embedding this
@@ -256,6 +286,7 @@ config TEGRA210_QSPI
 
 config XILINX_SPI
 	bool "Xilinx SPI driver"
+	select DM_SPI
 	help
 	  Enable the Xilinx SPI driver from the Xilinx EDK. This SPI
 	  controller support 8 bit SPI transfers only, with or w/o FIFO.
@@ -264,6 +295,7 @@ config XILINX_SPI
 
 config ZYNQ_SPI
 	bool "Zynq SPI driver"
+	select DM_SPI
 	depends on ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL
 	help
 	  Enable the Zynq SPI driver. This driver can be used to
@@ -272,6 +304,7 @@ config ZYNQ_SPI
 
 config ZYNQ_QSPI
 	bool "Zynq QSPI driver"
+	select DM_SPI
 	depends on ARCH_ZYNQ
 	help
 	  Enable the Zynq Quad-SPI (QSPI) driver. This driver can be
@@ -281,21 +314,24 @@ config ZYNQ_QSPI
 
 config ZYNQMP_GQSPI
 	bool "Configure ZynqMP Generic QSPI"
+	select DM_SPI
 	depends on ARCH_ZYNQMP || ARCH_VERSAL
 	help
 	  This option is used to enable ZynqMP QSPI controller driver which
 	  is used to communicate with qspi flash devices.
 
-endif # if DM_SPI
+endmenu
 
 config SOFT_SPI
 	bool "Soft SPI driver"
+	select SPI
 	help
 	 Enable Soft SPI driver. This driver is to use GPIO simulate
 	 the SPI protocol.
 
 config MSCC_BB_SPI
 	bool "MSCC bitbang SPI driver"
+	select SPI
 	depends on SOC_VCOREIII
 	help
 	  Enable MSCC bitbang SPI driver. This driver can be used on
@@ -303,12 +339,14 @@ config MSCC_BB_SPI
 
 config CF_SPI
 	bool "ColdFire SPI driver"
+	select SPI
 	help
 	  Enable the ColdFire SPI driver. This driver can be used on
 	  some m68k SoCs.
 
 config FSL_ESPI
 	bool "Freescale eSPI driver"
+	select SPI
 	help
 	  Enable the Freescale eSPI driver. This driver can be used to
 	  access the SPI interface and SPI NOR flash on platforms embedding
@@ -316,6 +354,7 @@ config FSL_ESPI
 
 config FSL_QSPI
 	bool "Freescale QSPI driver"
+	select SPI
 	help
 	  Enable the Freescale Quad-SPI (QSPI) driver. This driver can be
 	  used to access the SPI NOR flash on platforms embedding this
@@ -323,61 +362,71 @@ config FSL_QSPI
 
 config DAVINCI_SPI
 	bool "Davinci & Keystone SPI driver"
+	select SPI
 	depends on ARCH_DAVINCI || ARCH_KEYSTONE
 	help
 	  Enable the Davinci SPI driver
 
 config SH_SPI
 	bool "SuperH SPI driver"
+	select SPI
 	help
 	  Enable the SuperH SPI controller driver. This driver can be used
 	  on various SuperH SoCs, such as SH7757.
 
 config SH_QSPI
 	bool "Renesas Quad SPI driver"
+	select SPI
 	help
 	  Enable the Renesas Quad SPI controller driver. This driver can be
 	  used on Renesas SoCs.
 
 config TI_QSPI
 	bool "TI QSPI driver"
+	select SPI
 	help
 	  Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms.
 	  This driver support spi flash single, quad and memory reads.
 
 config KIRKWOOD_SPI
 	bool "Marvell Kirkwood SPI Driver"
+	select SPI
 	help
 	  Enable support for SPI on various Marvell SoCs, such as
 	  Kirkwood and Armada 375.
 
 config LPC32XX_SSP
 	bool "LPC32XX SPI Driver"
+	select SPI
 	help
 	  Enable support for SPI on LPC32xx
 
 config MPC8XXX_SPI
 	bool "MPC8XXX SPI Driver"
+	select SPI
 	help
 	  Enable support for SPI on the MPC8XXX PowerPC SoCs.
 
 config MXC_SPI
 	bool "MXC SPI Driver"
+	select SPI
 	help
 	  Enable the MXC SPI controller driver. This driver can be used
 	  on various i.MX SoCs such as i.MX31/35/51/6/7.
 
 config MXS_SPI
 	bool "MXS SPI Driver"
+	select SPI
 	help
 	  Enable the MXS SPI controller driver. This driver can be used
 	  on the i.MX23 and i.MX28 SoCs.
 
 config OMAP3_SPI
 	bool "McSPI driver for OMAP"
+	select SPI
 	help
 	  SPI master controller for OMAP24XX and later Multichannel SPI
 	  (McSPI). This driver be used to access SPI chips on platforms
 	  embedding this OMAP3 McSPI IP core.
 
-endif # menu "SPI Support"
+endmenu
-- 
2.17.1



More information about the U-Boot mailing list