spi: nuvoton: add NPCM PSPI controller driver
[platform/kernel/u-boot.git] / drivers / spi / Kconfig
index 30d808d..fcf67de 100644 (file)
@@ -40,6 +40,16 @@ config SPI_MEM
          This extension is meant to simplify interaction with SPI memories
          by providing an high-level interface to send memory-like commands.
 
+config SPI_DIRMAP
+       bool "SPI direct mapping"
+       depends on 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
+         address space. Most of the time this brings significant performance
+         improvements as it automates the whole process of sending SPI memory
+         operations every time a new region is accessed.
+
 if DM_SPI
 
 config ALTERA_SPI
@@ -50,6 +60,13 @@ config ALTERA_SPI
          IP core. Please find details on the "Embedded Peripherals IP
          User Guide" of Altera.
 
+config APPLE_SPI
+       bool "Apple SPI driver"
+       default y if ARCH_APPLE
+       help
+         Enable the Apple SPI driver. This driver can be used to
+         access the SPI flash and keyboard on machines based on Apple SoCs.
+
 config ATCSPI200_SPI
        bool "Andestech ATCSPI200 SPI driver"
        help
@@ -106,6 +123,14 @@ config BCMSTB_SPI
          be used to access the SPI flash on platforms embedding this
          Broadcom SPI core.
 
+config CORTINA_SFLASH
+       bool "Cortina-Access Serial Flash controller driver"
+       depends on DM_SPI && 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
+         Cortina-Access IP core.
+
 config CADENCE_QSPI
        bool "Cadence QSPI driver"
        help
@@ -113,6 +138,22 @@ config CADENCE_QSPI
          used to access the SPI NOR flash on platforms embedding this
          Cadence IP core.
 
+config HAS_CQSPI_REF_CLK
+       bool "Cadence QSPI static reference clock"
+       depends on CADENCE_QSPI
+
+config CQSPI_REF_CLK
+       int "Cadence QSPI reference clock value in Hz"
+       depends on HAS_CQSPI_REF_CLK
+
+config CADENCE_OSPI_VERSAL
+       bool "Configure Versal OSPI"
+       depends on (ARCH_VERSAL || ARCH_VERSAL_NET) && CADENCE_QSPI
+       imply DM_GPIO
+       help
+         This option is used to enable Versal OSPI DMA operations which
+         are used for ospi flash read using cadence qspi controller.
+
 config CF_SPI
         bool "ColdFire SPI driver"
         help
@@ -163,6 +204,12 @@ config FSL_QSPI_AHB_FULL_MAP
          Enable the Freescale QSPI driver to use full AHB memory map space for
          flash access.
 
+config GXP_SPI
+       bool "SPI driver for GXP"
+       imply SPI_FLASH_BAR
+       help
+         Enable support for SPI on GXP.
+
 config ICH_SPI
        bool "Intel ICH SPI driver"
        help
@@ -170,6 +217,12 @@ config ICH_SPI
          access the SPI NOR flash on platforms embedding this Intel
          ICH IP core.
 
+config IPROC_QSPI
+       bool "Broadcom iProc QSPI Flash Controller driver"
+       help
+         Enable Broadcom iProc QSPI Flash Controller driver.
+         This driver can be used to access the SPI NOR flash.
+
 config KIRKWOOD_SPI
        bool "Marvell Kirkwood SPI Driver"
        help
@@ -202,14 +255,28 @@ config MSCC_BB_SPI
          Enable MSCC bitbang SPI driver. This driver can be used on
          MSCC SOCs.
 
+config MT7620_SPI
+       bool "MediaTek MT7620 SPI driver"
+       depends on SOC_MT7620
+       help
+         Enable the MT7620 SPI driver. This driver can be used to access
+         generic SPI devices on MediaTek MT7620 SoC.
+
 config MT7621_SPI
        bool "MediaTek MT7621 SPI driver"
-       depends on SOC_MT7628
+       depends on SOC_MT7621 || SOC_MT7628
        help
          Enable the MT7621 SPI driver. This driver can be used to access
          the SPI NOR flash on platforms embedding this Ralink / MediaTek
          SPI core, like MT7621/7628/7688.
 
+config MTK_SNOR
+       bool "Mediatek SPI-NOR controller driver"
+       depends on SPI_MEM
+       help
+         Enable the Mediatek SPINOR controller driver. This driver has
+          better read/write performance with NOR.
+
 config MTK_SNFI_SPI
        bool "Mediatek SPI memory controller driver"
        depends on SPI_MEM
@@ -219,6 +286,14 @@ config MTK_SNFI_SPI
          used to access SPI memory devices like SPI-NOR or SPI-NAND on
          platforms embedding this IP core, like MT7622/M7629.
 
+config MTK_SPIM
+       bool "Mediatek SPI-MEM master controller driver"
+       depends on SPI_MEM
+       help
+         Enable MediaTek SPI-MEM master controller driver. This driver mainly
+         supports SPI flashes. You can use single, dual or quad mode
+         transmission on this controller.
+
 config MVEBU_A3700_SPI
        bool "Marvell Armada 3700 SPI driver"
        select CLK_ARMADA_3720
@@ -233,6 +308,24 @@ config MXS_SPI
          Enable the MXS SPI controller driver. This driver can be used
          on the i.MX23 and i.MX28 SoCs.
 
+config SPI_MXIC
+       bool "Macronix MX25F0A SPI controller"
+       help
+         Enable the Macronix MX25F0A SPI controller driver. This driver
+         can be used to access the SPI flash on platforms embedding
+         this Macronix IP core.
+
+config NPCM_FIU_SPI
+       bool "FIU driver for Nuvoton NPCM SoC"
+       help
+         This enables support for the Flash Interface Unit SPI controller
+         in master mode.
+
+config NPCM_PSPI
+       bool "PSPI driver for Nuvoton NPCM SoC"
+       help
+         PSPI driver for NPCM SoC
+
 config NXP_FSPI
        bool "NXP FlexSPI driver"
        depends on SPI_MEM
@@ -240,6 +333,14 @@ config NXP_FSPI
          Enable the NXP FlexSPI (FSPI) driver. This driver can be used to
          access the SPI NOR flash on platforms embedding this NXP IP core.
 
+config OCTEON_SPI
+       bool "Octeon SPI driver"
+       depends on ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2
+       help
+         Enable the Octeon SPI driver. This driver can be used to
+         access the SPI NOR flash on Octeon II/III and OcteonTX/TX2
+         SoC platforms.
+
 config OMAP3_SPI
        bool "McSPI driver for OMAP"
        help
@@ -263,6 +364,16 @@ config PL022_SPI
          controller. If you have an embedded system with an AMBA(R)
          bus and a PL022 controller, say Y or M here.
 
+config SPI_QUP
+       bool "Qualcomm SPI controller with QUP interface"
+       depends on ARCH_IPQ40XX
+       help
+         Qualcomm Universal Peripheral (QUP) core is an AHB slave that
+         provides a common data path (an output FIFO and an input FIFO)
+         for serial peripheral interface (SPI) mini-core. SPI in master
+         mode supports up to 50MHz, up to four chip selects, programmable
+         data path from 4 bits to 32 bits and numerous protocol variants.
+
 config RENESAS_RPC_SPI
        bool "Renesas RPC SPI driver"
        depends on RCAR_GEN3 || RZA1
@@ -272,6 +383,14 @@ config RENESAS_RPC_SPI
          on Renesas RCar Gen3 SoCs. This uses driver model and requires a
          device tree binding to operate.
 
+config ROCKCHIP_SFC
+       bool "Rockchip SFC Driver"
+       help
+         Enable the Rockchip SFC Driver for SPI NOR flash. This device is
+         a limited purpose SPI controller for driving NOR flash on certain
+         Rockchip SoCs. This uses driver model and requires a device tree
+         binding to operate.
+
 config ROCKCHIP_SPI
        bool "Rockchip SPI driver"
        help
@@ -305,6 +424,14 @@ config SANDBOX_SPI
                };
          };
 
+config SPI_ASPEED_SMC
+       bool "ASPEED SPI flash controller driver"
+       depends on DM_SPI && SPI_MEM
+       default n
+       help
+         Enable ASPEED SPI flash controller driver for AST2500
+         and AST2600 SoCs.
+
 config SPI_SIFIVE
        bool "SiFive SPI driver"
        help
@@ -399,7 +526,6 @@ config XILINX_SPI
 
 config ZYNQ_SPI
        bool "Zynq SPI driver"
-       depends on ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL
        help
          Enable the Zynq SPI driver. This driver can be used to
          access the SPI NOR flash on platforms embedding this Zynq
@@ -407,7 +533,6 @@ config ZYNQ_SPI
 
 config ZYNQ_QSPI
        bool "Zynq QSPI driver"
-       depends on ARCH_ZYNQ
        imply SPI_FLASH_BAR
        help
          Enable the Zynq Quad-SPI (QSPI) driver. This driver can be
@@ -417,7 +542,6 @@ config ZYNQ_QSPI
 
 config ZYNQMP_GQSPI
        bool "Configure ZynqMP Generic QSPI"
-       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.
@@ -444,4 +568,12 @@ config MXC_SPI
          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 SYNQUACER_SPI
+       bool "Socionext SynQuacer HS-SPI driver"
+       depends on ARCH_SYNQUACER
+       help
+         Enable the Socionext HS-SPI driver for SynQuacer. This driver can
+         be used to access the SPI interface and SPI NOR flash on platforms
+         embedding this HS-SPI IP core.
+
 endif # menu "SPI Support"