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

Signed-off-by: Oskari Lemmela <osk...@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

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to