File Index
Files and directories
Sign in
FILE

Kconfig

File preview with syntax highlighting.

linux-6.19.14/drivers/spi/Kconfig KCONFIG
   1# SPDX-License-Identifier: GPL-2.0-only
   2#
   3# SPI driver configuration
   4#
   5menuconfig SPI
   6	bool "SPI support"
   7	depends on HAS_IOMEM
   8	help
   9	  The "Serial Peripheral Interface" is a low level synchronous
  10	  protocol.  Chips that support SPI can have data transfer rates
  11	  up to several tens of Mbit/sec.  Chips are addressed with a
  12	  controller and a chipselect.  Most SPI slaves don't support
  13	  dynamic device discovery; some are even write-only or read-only.
  14
  15	  SPI is widely used by microcontrollers to talk with sensors,
  16	  eeprom and flash memory, codecs and various other controller
  17	  chips, analog to digital (and d-to-a) converters, and more.
  18	  MMC and SD cards can be accessed using SPI protocol; and for
  19	  DataFlash cards used in MMC sockets, SPI must always be used.
  20
  21	  SPI is one of a family of similar protocols using a four wire
  22	  interface (select, clock, data in, data out) including Microwire
  23	  (half duplex), SSP, SSI, and PSP.  This driver framework should
  24	  work with most such devices and controllers.
  25
  26if SPI
  27
  28config SPI_DEBUG
  29	bool "Debug support for SPI drivers"
  30	depends on DEBUG_KERNEL
  31	help
  32	  Say "yes" to enable debug messaging (like dev_dbg and pr_debug),
  33	  sysfs, and debugfs support in SPI controller and protocol drivers.
  34
  35#
  36# MASTER side ... talking to discrete SPI slave chips including microcontrollers
  37#
  38
  39config SPI_MASTER
  40#	bool "SPI Master Support"
  41	bool
  42	default SPI
  43	help
  44	  If your system has an master-capable SPI controller (which
  45	  provides the clock and chipselect), you can enable that
  46	  controller and the protocol drivers for the SPI slave chips
  47	  that are connected.
  48
  49if SPI_MASTER
  50
  51config SPI_MEM
  52	bool "SPI memory extension"
  53	help
  54	  Enable this option if you want to enable the SPI memory extension.
  55	  This extension is meant to simplify interaction with SPI memories
  56	  by providing a high-level interface to send memory-like commands.
  57
  58config SPI_OFFLOAD
  59	bool
  60
  61comment "SPI Master Controller Drivers"
  62
  63config SPI_AIROHA_SNFI
  64	tristate "Airoha SPI NAND Flash Interface"
  65	depends on ARCH_AIROHA || COMPILE_TEST
  66	depends on SPI_MASTER
  67	select REGMAP_MMIO
  68	help
  69	  This enables support for SPI-NAND mode on the Airoha NAND
  70	  Flash Interface found on Airoha ARM SoCs. This controller
  71	  is implemented as a SPI-MEM controller.
  72
  73config SPI_ALTERA
  74	tristate "Altera SPI Controller platform driver"
  75	select SPI_ALTERA_CORE
  76	select REGMAP_MMIO
  77	help
  78	  This is the driver for the Altera SPI Controller.
  79
  80config SPI_ALTERA_CORE
  81	tristate "Altera SPI Controller core code" if COMPILE_TEST
  82	select REGMAP
  83	help
  84	  "The core code for the Altera SPI Controller"
  85
  86config SPI_ALTERA_DFL
  87	tristate "DFL bus driver for Altera SPI Controller"
  88	depends on FPGA_DFL
  89	select SPI_ALTERA_CORE
  90	help
  91	  This is a Device Feature List (DFL) bus driver for the
  92	  Altera SPI master controller.  The SPI master is connected
  93	  to a SPI slave to Avalon bridge in a Intel MAX BMC.
  94
  95config SPI_AMLOGIC_SPIFC_A1
  96	tristate "Amlogic A1 SPIFC controller"
  97	depends on ARCH_MESON || COMPILE_TEST
  98	help
  99	  This enables master mode support for the SPIFC (SPI flash
 100	  controller) available in Amlogic A1 (A113L SoC).
 101
 102config SPI_AMLOGIC_SPIFC_A4
 103	tristate "Amlogic A4 SPI Flash controller"
 104	depends on ARCH_MESON || COMPILE_TEST
 105	select REGMAP_MMIO
 106	help
 107	  This enables SPI mode on the NAND Flash Controller of Amlogic
 108	  ARM SoCs. It supports SPI Nor Flash and SPI NAND Flash (Could
 109	  enable Host ECC HW engine). The controller implements the
 110	  SPI-MEM interface, it doesn't support generic SPI.
 111
 112config SPI_AMLOGIC_SPISG
 113	tristate "Amlogic SPISG controller"
 114	depends on COMMON_CLK
 115	depends on ARCH_MESON || COMPILE_TEST
 116	help
 117	  This enables master mode support for the SPISG (SPI scatter-gather
 118	  communication controller), which is available on platforms such as
 119	  Amlogic A4 SoCs.
 120
 121config SPI_APPLE
 122	tristate "Apple SoC SPI Controller platform driver"
 123	depends on ARCH_APPLE || COMPILE_TEST
 124	help
 125	  This enables support for the SPI controller present on
 126	  many Apple SoCs, including the t8103 (M1), t8112 (M2)
 127	  and t600x (M1 Pro/Max/Ultra). Multiple SPI controller
 128	  instances are present on the SoC and each connects usually
 129	  to a single device like spi-nor (nvram), input device controller
 130	  or fingerprint sensor.
 131
 132config SPI_AR934X
 133	tristate "Qualcomm Atheros AR934X/QCA95XX SPI controller driver"
 134	depends on ATH79 || COMPILE_TEST
 135	help
 136	  This enables support for the SPI controller present on the
 137	  Qualcomm Atheros AR934X/QCA95XX SoCs.
 138
 139config SPI_ATH79
 140	tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver"
 141	depends on ATH79 || COMPILE_TEST
 142	select SPI_BITBANG
 143	help
 144	  This enables support for the SPI controller present on the
 145	  Atheros AR71XX/AR724X/AR913X SoCs.
 146
 147config SPI_ARMADA_3700
 148	tristate "Marvell Armada 3700 SPI Controller"
 149	depends on (ARCH_MVEBU && OF) || COMPILE_TEST
 150	help
 151	  This enables support for the SPI controller present on the
 152	  Marvell Armada 3700 SoCs.
 153
 154config SPI_ASPEED_SMC
 155	tristate "Aspeed flash controllers in SPI mode"
 156	depends on ARCH_ASPEED || COMPILE_TEST
 157	depends on OF
 158	help
 159	  This enables support for the Firmware Memory controller (FMC)
 160	  in the Aspeed AST2600, AST2500 and AST2400 SoCs when attached
 161	  to SPI NOR chips, and support for the SPI flash memory
 162	  controller (SPI) for the host firmware. The implementation
 163	  only supports SPI NOR.
 164
 165config SPI_ATMEL
 166	tristate "Atmel SPI Controller"
 167	depends on ARCH_MICROCHIP || COMPILE_TEST
 168	depends on OF
 169	help
 170	  This selects a driver for the Atmel SPI Controller, present on
 171	  many AT91 ARM chips.
 172
 173config SPI_AT91_USART
 174	tristate "Atmel USART Controller SPI driver"
 175	depends on (ARCH_AT91 || COMPILE_TEST)
 176	depends on MFD_AT91_USART
 177	help
 178	  This selects a driver for the AT91 USART Controller as SPI Master,
 179	  present on AT91 and SAMA5 SoC series.
 180
 181config SPI_ATMEL_QUADSPI
 182	tristate "Atmel Quad SPI Controller"
 183	depends on ARCH_AT91 || COMPILE_TEST
 184	depends on OF && HAS_IOMEM
 185	help
 186	  This enables support for the Quad SPI controller in master mode.
 187	  This driver does not support generic SPI. The implementation only
 188	  supports spi-mem interface.
 189
 190config SPI_AU1550
 191	tristate "Au1550/Au1200/Au1300 SPI Controller"
 192	depends on MIPS_ALCHEMY
 193	select SPI_BITBANG
 194	help
 195	  If you say yes to this option, support will be included for the
 196	  PSC SPI controller found on Au1550, Au1200 and Au1300 series.
 197
 198config SPI_AXI_SPI_ENGINE
 199	tristate "Analog Devices AXI SPI Engine controller"
 200	depends on HAS_IOMEM
 201	select SPI_OFFLOAD
 202	help
 203	  This enables support for the Analog Devices AXI SPI Engine SPI controller.
 204	  It is part of the SPI Engine framework that is used in some Analog Devices
 205	  reference designs for FPGAs.
 206
 207config SPI_BCM2835
 208	tristate "BCM2835 SPI controller"
 209	depends on GPIOLIB
 210	depends on ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST
 211	help
 212	  This selects a driver for the Broadcom BCM2835 SPI master.
 213
 214	  The BCM2835 contains two types of SPI master controller; the
 215	  "universal SPI master", and the regular SPI controller. This driver
 216	  is for the regular SPI controller. Slave mode operation is not also
 217	  not supported.
 218
 219config SPI_BCM2835AUX
 220	tristate "BCM2835 SPI auxiliary controller"
 221	depends on ((ARCH_BCM2835 || ARCH_BRCMSTB) && GPIOLIB) || COMPILE_TEST
 222	help
 223	  This selects a driver for the Broadcom BCM2835 SPI aux master.
 224
 225	  The BCM2835 contains two types of SPI master controller; the
 226	  "universal SPI master", and the regular SPI controller.
 227	  This driver is for the universal/auxiliary SPI controller.
 228
 229config SPI_BCM63XX
 230	tristate "Broadcom BCM63xx SPI controller"
 231	depends on BCM63XX || BMIPS_GENERIC || COMPILE_TEST
 232	help
 233	  Enable support for the SPI controller on the Broadcom BCM63xx SoCs.
 234
 235config SPI_BCM63XX_HSSPI
 236	tristate "Broadcom BCM63XX HS SPI controller driver"
 237	depends on BCM63XX || BMIPS_GENERIC || ARCH_BCMBCA || COMPILE_TEST
 238	help
 239	  This enables support for the High Speed SPI controller present on
 240	  newer Broadcom BCM63XX SoCs.
 241
 242config SPI_BCM_QSPI
 243	tristate "Broadcom BSPI and MSPI controller support"
 244	depends on ARCH_BRCMSTB || ARCH_BCM || ARCH_BCM_IPROC || \
 245			BMIPS_GENERIC || COMPILE_TEST
 246	default ARCH_BCM_IPROC
 247	help
 248	  Enables support for the Broadcom SPI flash and MSPI controller.
 249	  Select this option for any one of BRCMSTB, iProc NSP and NS2 SoCs
 250	  based platforms. This driver works for both SPI master for SPI NOR
 251	  flash device as well as MSPI device.
 252
 253config SPI_BCMBCA_HSSPI
 254	tristate "Broadcom BCMBCA HS SPI controller driver"
 255	depends on ARCH_BCMBCA || COMPILE_TEST
 256	help
 257	  This enables support for the High Speed SPI controller present on
 258	  newer Broadcom BCMBCA SoCs. These SoCs include an updated SPI controller
 259	  that adds the capability to allow the driver to control chip select
 260	  explicitly.
 261
 262config SPI_BITBANG
 263	tristate "Utilities for Bitbanging SPI host controllers"
 264	help
 265	  With a few GPIO pins, your system can bitbang the SPI protocol.
 266	  Select this to get SPI support through I/O pins (GPIO, parallel
 267	  port, etc).  Or, some systems' SPI host controller drivers use
 268	  this code to manage the per-word or per-transfer accesses to the
 269	  hardware shift registers.
 270
 271	  This is library code, and is automatically selected by drivers that
 272	  need it.  You only need to select this explicitly to support driver
 273	  modules that aren't part of this kernel tree.
 274
 275config SPI_BUTTERFLY
 276	tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)"
 277	depends on PARPORT
 278	select SPI_BITBANG
 279	help
 280	  This uses a custom parallel port cable to connect to an AVR
 281	  Butterfly <http://www.atmel.com/products/avr/butterfly>, an
 282	  inexpensive battery powered microcontroller evaluation board.
 283	  This same cable can be used to flash new firmware.
 284
 285config SPI_CADENCE
 286	tristate "Cadence SPI controller"
 287	help
 288	  This selects the Cadence SPI controller master driver
 289	  used by Xilinx Zynq and ZynqMP.
 290
 291config SPI_CADENCE_QUADSPI
 292	tristate "Cadence Quad SPI controller"
 293	depends on OF && (ARM || ARM64 || X86 || RISCV || MIPS || COMPILE_TEST)
 294	help
 295	  Enable support for the Cadence Quad SPI Flash controller.
 296
 297	  Cadence QSPI is a specialized controller for connecting an SPI
 298	  Flash over 1/2/4-bit wide bus. Enable this option if you have a
 299	  device with a Cadence QSPI controller and want to access the
 300	  Flash as an MTD device.
 301
 302config SPI_CADENCE_XSPI
 303	tristate "Cadence XSPI controller"
 304	depends on OF && HAS_IOMEM && 64BIT
 305	depends on SPI_MEM
 306	help
 307	  Enable support for the Cadence XSPI Flash controller.
 308
 309	  Cadence XSPI is a specialized controller for connecting an SPI
 310	  Flash over up to 8-bit wide bus. Enable this option if you have a
 311	  device with a Cadence XSPI controller and want to access the
 312	  Flash as an MTD device.
 313
 314config SPI_CH341
 315	tristate "CH341 USB2SPI adapter"
 316	depends on SPI_MASTER && USB
 317	help
 318	  Enables the SPI controller on the CH341a USB to serial chip
 319
 320config SPI_CLPS711X
 321	tristate "CLPS711X host SPI controller"
 322	depends on ARCH_CLPS711X || COMPILE_TEST
 323	help
 324	  This enables dedicated general purpose SPI/Microwire1-compatible
 325	  master mode interface (SSI1) for CLPS711X-based CPUs.
 326
 327config SPI_COLDFIRE_QSPI
 328	tristate "Freescale Coldfire QSPI controller"
 329	depends on (M520x || M523x || M5249 || M525x || M527x || M528x || M532x)
 330	help
 331	  This enables support for the Coldfire QSPI controller in master
 332	  mode.
 333
 334config SPI_CS42L43
 335	tristate "Cirrus Logic CS42L43 SPI controller"
 336	depends on MFD_CS42L43 && PINCTRL_CS42L43
 337	select GPIO_SWNODE_UNDEFINED
 338	help
 339	  This enables support for the SPI controller inside the Cirrus Logic
 340	  CS42L43 audio codec.
 341
 342config SPI_DAVINCI
 343	tristate "Texas Instruments DaVinci/DA8x/OMAP-L/AM1x SoC SPI controller"
 344	depends on ARCH_DAVINCI || ARCH_KEYSTONE || COMPILE_TEST
 345	select SPI_BITBANG
 346	help
 347	  SPI master controller for DaVinci/DA8x/OMAP-L/AM1x SPI modules.
 348
 349config SPI_DESIGNWARE
 350	tristate "DesignWare SPI controller core support"
 351	imply SPI_MEM
 352	help
 353	  general driver for SPI controller core from DesignWare
 354
 355if SPI_DESIGNWARE
 356
 357config SPI_DW_DMA
 358	bool "DMA support for DW SPI controller"
 359
 360config SPI_DW_PCI
 361	tristate "PCI interface driver for DW SPI core"
 362	depends on PCI
 363
 364config SPI_DW_MMIO
 365	tristate "Memory-mapped io interface driver for DW SPI core"
 366	depends on HAS_IOMEM
 367
 368config SPI_DW_BT1
 369	tristate "Baikal-T1 SPI driver for DW SPI core"
 370	depends on MIPS_BAIKAL_T1 || COMPILE_TEST
 371	select MULTIPLEXER
 372	help
 373	  Baikal-T1 SoC is equipped with three DW APB SSI-based MMIO SPI
 374	  controllers. Two of them are pretty much normal: with IRQ, DMA,
 375	  FIFOs of 64 words depth, 4x CSs, but the third one as being a
 376	  part of the Baikal-T1 System Boot Controller has got a very
 377	  limited resources: no IRQ, no DMA, only a single native
 378	  chip-select and Tx/Rx FIFO with just 8 words depth available.
 379	  The later one is normally connected to an external SPI-nor flash
 380	  of 128Mb (in general can be of bigger size).
 381
 382config SPI_DW_BT1_DIRMAP
 383	bool "Directly mapped Baikal-T1 Boot SPI flash support"
 384	depends on SPI_DW_BT1
 385	help
 386	  Directly mapped SPI flash memory is an interface specific to the
 387	  Baikal-T1 System Boot Controller. It is a 16MB MMIO region, which
 388	  can be used to access a peripheral memory device just by
 389	  reading/writing data from/to it. Note that the system APB bus
 390	  will stall during each IO from/to the dirmap region until the
 391	  operation is finished. So try not to use it concurrently with
 392	  time-critical tasks (like the SPI memory operations implemented
 393	  in this driver).
 394
 395endif
 396
 397config SPI_DLN2
 398       tristate "Diolan DLN-2 USB SPI adapter"
 399       depends on MFD_DLN2
 400       help
 401	 If you say yes to this option, support will be included for Diolan
 402	 DLN2, a USB to SPI interface.
 403
 404	 This driver can also be built as a module.  If so, the module
 405	 will be called spi-dln2.
 406
 407config SPI_EP93XX
 408	tristate "Cirrus Logic EP93xx SPI controller"
 409	depends on ARCH_EP93XX || COMPILE_TEST
 410	help
 411	  This enables using the Cirrus EP93xx SPI controller in master
 412	  mode.
 413
 414config SPI_FALCON
 415	bool "Falcon SPI controller support"
 416	depends on SOC_FALCON
 417	help
 418	  The external bus unit (EBU) found on the FALC-ON SoC has SPI
 419	  emulation that is designed for serial flash access. This driver
 420	  has only been tested with m25p80 type chips. The hardware has no
 421	  support for other types of SPI peripherals.
 422
 423config SPI_FSI
 424	tristate "FSI SPI driver"
 425	depends on FSI
 426	help
 427	  This enables support for the driver for FSI bus attached SPI
 428	  controllers.
 429
 430config SPI_FSL_LPSPI
 431	tristate "Freescale i.MX LPSPI controller"
 432	depends on ARCH_MXC || COMPILE_TEST
 433	help
 434	  This enables Freescale i.MX LPSPI controllers in master mode.
 435
 436config SPI_FSL_QUADSPI
 437	tristate "Freescale QSPI controller"
 438	depends on ARCH_MXC || SOC_LS1021A || ARCH_LAYERSCAPE || \
 439		   ARCH_SPACEMIT || COMPILE_TEST
 440	depends on HAS_IOMEM
 441	help
 442	  This enables support for the Quad SPI controller in master mode.
 443	  Up to four flash chips can be connected on two buses with two
 444	  chipselects each.
 445	  This controller does not support generic SPI messages. It only
 446	  supports the high-level SPI memory interface.
 447
 448config SPI_GXP
 449	tristate "GXP SPI driver"
 450	depends on ARCH_HPE || COMPILE_TEST
 451	help
 452	  This enables support for the driver for GXP bus attached SPI
 453	  controllers.
 454
 455config SPI_HISI_KUNPENG
 456	tristate "HiSilicon SPI Controller for Kunpeng SoCs"
 457	depends on (ARM64 && ACPI) || COMPILE_TEST
 458	help
 459	  This enables support for HiSilicon SPI controller found on
 460	  Kunpeng SoCs.
 461
 462	  This driver can also be built as a module. If so, the module
 463	  will be called hisi-kunpeng-spi.
 464
 465config SPI_HISI_SFC_V3XX
 466	tristate "HiSilicon SPI NOR Flash Controller for Hi16XX chipsets"
 467	depends on (ARM64 && ACPI) || COMPILE_TEST
 468	depends on HAS_IOMEM
 469	help
 470	  This enables support for HiSilicon v3xx SPI NOR flash controller
 471	  found in hi16xx chipsets.
 472
 473config SPI_NXP_FLEXSPI
 474	tristate "NXP Flex SPI controller"
 475	depends on ARCH_LAYERSCAPE || ARCH_MXC || COMPILE_TEST
 476	depends on HAS_IOMEM
 477	help
 478	  This enables support for the Flex SPI controller in master mode.
 479	  Up to four slave devices can be connected on two buses with two
 480	  chipselects each.
 481	  This controller does not support generic SPI messages and only
 482	  supports the high-level SPI memory interface.
 483
 484config SPI_GPIO
 485	tristate "GPIO-based bitbanging SPI Master"
 486	depends on GPIOLIB || COMPILE_TEST
 487	select SPI_BITBANG
 488	help
 489	  This simple GPIO bitbanging SPI master uses the arch-neutral GPIO
 490	  interface to manage MOSI, MISO, SCK, and chipselect signals.  SPI
 491	  slaves connected to a bus using this driver are configured as usual,
 492	  except that the spi_board_info.controller_data holds the GPIO number
 493	  for the chipselect used by this controller driver.
 494
 495	  Note that this driver often won't achieve even 1 Mbit/sec speeds,
 496	  making it unusually slow for SPI.  If your platform can inline
 497	  GPIO operations, you should be able to leverage that for better
 498	  speed with a custom version of this driver; see the source code.
 499
 500config SPI_IMG_SPFI
 501	tristate "IMG SPFI controller"
 502	depends on MIPS || COMPILE_TEST
 503	help
 504	  This enables support for the SPFI master controller found on
 505	  IMG SoCs.
 506
 507config SPI_IMX
 508	tristate "Freescale i.MX SPI controllers"
 509	depends on ARCH_MXC || COMPILE_TEST
 510	help
 511	  This enables support for the Freescale i.MX SPI controllers.
 512
 513config SPI_INGENIC
 514	tristate "Ingenic SoCs SPI controller"
 515	depends on MACH_INGENIC || COMPILE_TEST
 516	help
 517	  This enables support for the Ingenic SoCs SPI controller.
 518
 519	  To compile this driver as a module, choose M here: the module
 520	  will be called spi-ingenic.
 521
 522config SPI_INTEL
 523	tristate
 524
 525config SPI_INTEL_PCI
 526	tristate "Intel PCH/PCU SPI flash PCI driver"
 527	depends on PCI
 528	depends on X86 || COMPILE_TEST
 529	depends on SPI_MEM
 530	select SPI_INTEL
 531	help
 532	  This enables PCI support for the Intel PCH/PCU SPI controller in
 533	  master mode. This controller is used to hold BIOS and other
 534	  persistent settings. Controllers present in modern Intel hardware
 535	  only work in hardware sequencing mode, this means that the
 536	  controller exposes a subset of operations that makes it safer to
 537	  use. Using this driver it is possible to upgrade BIOS directly
 538	  from Linux.
 539
 540	  To compile this driver as a module, choose M here: the module
 541	  will be called spi-intel-pci.
 542
 543config SPI_INTEL_PLATFORM
 544	tristate "Intel PCH/PCU SPI flash platform driver (DANGEROUS)"
 545	depends on X86 || COMPILE_TEST
 546	depends on SPI_MEM
 547	select SPI_INTEL
 548	help
 549	  This enables platform support for the Intel PCH/PCU SPI
 550	  controller in master mode that is used to hold BIOS and other
 551	  persistent settings. Most of these controllers work in
 552	  software sequencing mode, which means that the controller
 553	  exposes the low level SPI-NOR opcodes to the software. Using
 554	  this driver it is possible to upgrade BIOS directly from Linux.
 555
 556	  Say N here unless you know what you are doing. Overwriting the
 557	  SPI flash may render the system unbootable.
 558
 559	  To compile this driver as a module, choose M here: the module
 560	  will be called spi-intel-platform.
 561
 562config SPI_JCORE
 563	tristate "J-Core SPI Master"
 564	depends on OF && (SUPERH || COMPILE_TEST)
 565	help
 566	  This enables support for the SPI master controller in the J-Core
 567	  synthesizable, open source SoC.
 568
 569config SPI_KSPI2
 570	tristate "Support for KEBA SPI master type 2 hardware"
 571	depends on HAS_IOMEM
 572	depends on KEBA_CP500 || COMPILE_TEST
 573	select AUXILIARY_BUS
 574	help
 575	  This driver supports KEBA SPI master type 2 FPGA implementation,
 576	  as found on CP500 devices for example.
 577
 578	  This driver can also be built as a module. If so, the module
 579	  will be called spi-kspi2.
 580
 581config SPI_LM70_LLP
 582	tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)"
 583	depends on PARPORT
 584	select SPI_BITBANG
 585	help
 586	  This driver supports the NS LM70 LLP Evaluation Board,
 587	  which interfaces to an LM70 temperature sensor using
 588	  a parallel port.
 589
 590config SPI_LOONGSON_CORE
 591	tristate
 592	depends on LOONGARCH || COMPILE_TEST
 593
 594config SPI_LOONGSON_PCI
 595	tristate "Loongson SPI Controller PCI Driver Support"
 596	select SPI_LOONGSON_CORE
 597	depends on PCI && (LOONGARCH || COMPILE_TEST)
 598	help
 599	  This bus driver supports the Loongson SPI hardware controller in
 600	  the Loongson platforms and supports to use PCI framework to
 601	  register SPI device resources.
 602	  Say Y or M here if you want to use the SPI controller on
 603	  Loongson platform.
 604
 605config SPI_LOONGSON_PLATFORM
 606	tristate "Loongson SPI Controller Platform Driver Support"
 607	select SPI_LOONGSON_CORE
 608	depends on OF && (LOONGARCH || COMPILE_TEST)
 609	help
 610	  This bus driver supports the Loongson SPI hardware controller in
 611	  the Loongson platforms and supports to use DTS framework to
 612	  register SPI device resources.
 613	  Say Y or M here if you want to use the SPI controller on
 614	  Loongson platform.
 615
 616config SPI_LP8841_RTC
 617	tristate "ICP DAS LP-8841 SPI Controller for RTC"
 618	depends on MACH_PXA27X_DT || COMPILE_TEST
 619	help
 620	  This driver provides an SPI master device to drive Maxim
 621	  DS-1302 real time clock.
 622
 623	  Say N here unless you plan to run the kernel on an ICP DAS
 624	  LP-8x4x industrial computer.
 625
 626config SPI_MPC52xx
 627	tristate "Freescale MPC52xx SPI (non-PSC) controller support"
 628	depends on PPC_MPC52xx
 629	help
 630	  This drivers supports the MPC52xx SPI controller in master SPI
 631	  mode.
 632
 633config SPI_MPC52xx_PSC
 634	tristate "Freescale MPC52xx PSC SPI controller"
 635	depends on PPC_MPC52xx
 636	help
 637	  This enables using the Freescale MPC52xx Programmable Serial
 638	  Controller in master SPI mode.
 639
 640config SPI_MPC512x_PSC
 641	tristate "Freescale MPC512x PSC SPI controller"
 642	depends on PPC_MPC512x
 643	help
 644	  This enables using the Freescale MPC5121 Programmable Serial
 645	  Controller in SPI master mode.
 646
 647config SPI_FSL_LIB
 648	tristate
 649	depends on OF
 650
 651config SPI_FSL_CPM
 652	tristate
 653	depends on FSL_SOC
 654
 655config SPI_FSL_SPI
 656	tristate "Freescale SPI controller and Aeroflex Gaisler GRLIB SPI controller"
 657	depends on OF
 658	select SPI_FSL_LIB
 659	select SPI_FSL_CPM if FSL_SOC
 660	help
 661	  This enables using the Freescale SPI controllers in master mode.
 662	  MPC83xx platform uses the controller in cpu mode or CPM/QE mode.
 663	  MPC8569 uses the controller in QE mode, MPC8610 in cpu mode.
 664	  This also enables using the Aeroflex Gaisler GRLIB SPI controller in
 665	  master mode.
 666
 667config SPI_FSL_DSPI
 668	tristate "Freescale DSPI controller"
 669	select REGMAP_MMIO
 670	depends on ARCH_MXC || ARCH_NXP || M5441x || COMPILE_TEST
 671	help
 672	  This enables support for the Freescale DSPI controller in master
 673	  mode. S32, VF610, LS1021A and ColdFire platforms uses the controller.
 674
 675config SPI_FSL_ESPI
 676	tristate "Freescale eSPI controller"
 677	depends on FSL_SOC
 678	help
 679	  This enables using the Freescale eSPI controllers in master mode.
 680	  From MPC8536, 85xx platform uses the controller, and all P10xx,
 681	  P20xx, P30xx,P40xx, P50xx uses this controller.
 682
 683config SPI_LJCA
 684	tristate "Intel La Jolla Cove Adapter SPI support"
 685	depends on USB_LJCA
 686	default USB_LJCA
 687	help
 688	  Select this option to enable SPI driver for the Intel
 689	  La Jolla Cove Adapter (LJCA) board.
 690
 691	  This driver can also be built as a module. If so, the module
 692	  will be called spi-ljca.
 693
 694config SPI_MESON_SPICC
 695	tristate "Amlogic Meson SPICC controller"
 696	depends on COMMON_CLK
 697	depends on ARCH_MESON || COMPILE_TEST
 698	help
 699	  This enables master mode support for the SPICC (SPI communication
 700	  controller) available in Amlogic Meson SoCs.
 701
 702config SPI_MESON_SPIFC
 703	tristate "Amlogic Meson SPIFC controller"
 704	depends on ARCH_MESON || COMPILE_TEST
 705	select REGMAP_MMIO
 706	help
 707	  This enables master mode support for the SPIFC (SPI flash
 708	  controller) available in Amlogic Meson SoCs.
 709
 710config SPI_MICROCHIP_CORE_QSPI
 711	tristate "Microchip FPGA QSPI controllers"
 712	depends on SPI_MASTER
 713	help
 714	  This enables the QSPI driver for Microchip FPGA QSPI controllers.
 715	  Say Y or M here if you want to use the QSPI controllers on
 716	  PolarFire SoC.
 717	  If built as a module, it will be called spi-microchip-core-qspi.
 718
 719config SPI_MICROCHIP_CORE_SPI
 720	tristate "Microchip FPGA CoreSPI controller"
 721	depends on SPI_MASTER
 722	help
 723	  This enables the SPI driver for Microchip FPGA CoreSPI controller.
 724	  Say Y or M here if you want to use the "soft" controllers on
 725	  PolarFire SoC.
 726	  If built as a module, it will be called spi-microchip-core-spi.
 727
 728config SPI_MT65XX
 729	tristate "MediaTek SPI controller"
 730	depends on ARCH_MEDIATEK || COMPILE_TEST
 731	help
 732	  This selects the MediaTek(R) SPI bus driver.
 733	  If you want to use MediaTek(R) SPI interface,
 734	  say Y or M here.If you are not sure, say N.
 735	  SPI drivers for Mediatek MT65XX and MT81XX series ARM SoCs.
 736
 737config SPI_MT7621
 738	tristate "MediaTek MT7621 SPI Controller"
 739	depends on RALINK || COMPILE_TEST
 740	help
 741	  This selects a driver for the MediaTek MT7621 SPI Controller.
 742
 743config SPI_MTK_NOR
 744	tristate "MediaTek SPI NOR controller"
 745	depends on ARCH_MEDIATEK || COMPILE_TEST
 746	help
 747	  This enables support for SPI NOR controller found on MediaTek
 748	  ARM SoCs. This is a controller specifically for SPI NOR flash.
 749	  It can perform generic SPI transfers up to 6 bytes via generic
 750	  SPI interface as well as several SPI NOR specific instructions
 751	  via SPI MEM interface.
 752
 753config SPI_MTK_SNFI
 754	tristate "MediaTek SPI NAND Flash Interface"
 755	depends on ARCH_MEDIATEK || COMPILE_TEST
 756	depends on MTD_NAND_ECC_MEDIATEK
 757	help
 758	  This enables support for SPI-NAND mode on the MediaTek NAND
 759	  Flash Interface found on MediaTek ARM SoCs. This controller
 760	  is implemented as a SPI-MEM controller with pipelined ECC
 761	  capability.
 762
 763config SPI_WPCM_FIU
 764	tristate "Nuvoton WPCM450 Flash Interface Unit"
 765	depends on ARCH_NPCM || COMPILE_TEST
 766	select REGMAP
 767	help
 768	  This enables support got the Flash Interface Unit SPI controller
 769	  present in the Nuvoton WPCM450 SoC.
 770
 771	  This driver does not support generic SPI. The implementation only
 772	  supports the spi-mem interface.
 773
 774config SPI_NPCM_FIU
 775	tristate "Nuvoton NPCM FLASH Interface Unit"
 776	depends on ARCH_NPCM || COMPILE_TEST
 777	depends on OF && HAS_IOMEM
 778	help
 779	  This enables support for the Flash Interface Unit SPI controller
 780	  in master mode.
 781	  This driver does not support generic SPI. The implementation only
 782	  supports spi-mem interface.
 783
 784config SPI_NPCM_PSPI
 785	tristate "Nuvoton NPCM PSPI Controller"
 786	depends on ARCH_NPCM || COMPILE_TEST
 787	help
 788	  This driver provides support for Nuvoton NPCM BMC
 789	  Peripheral SPI controller in master mode.
 790
 791config SPI_LANTIQ_SSC
 792	tristate "Lantiq SSC SPI controller"
 793	depends on LANTIQ || X86 || COMPILE_TEST
 794	help
 795	  This driver supports the Lantiq SSC SPI controller in master
 796	  mode. This controller is found on Intel (former Lantiq) SoCs like
 797	  the Danube, Falcon, xRX200, xRX300, Lightning Mountain.
 798
 799config SPI_OC_TINY
 800	tristate "OpenCores tiny SPI"
 801	depends on GPIOLIB || COMPILE_TEST
 802	select SPI_BITBANG
 803	help
 804	  This is the driver for OpenCores tiny SPI master controller.
 805
 806config SPI_OCTEON
 807	tristate "Cavium OCTEON SPI controller"
 808	depends on CAVIUM_OCTEON_SOC
 809	help
 810	  SPI host driver for the hardware found on some Cavium OCTEON
 811	  SOCs.
 812
 813config SPI_OMAP_UWIRE
 814	tristate "OMAP1 MicroWire"
 815	depends on ARCH_OMAP1 || (ARM && COMPILE_TEST)
 816	select SPI_BITBANG
 817	help
 818	  This hooks up to the MicroWire controller on OMAP1 chips.
 819
 820config SPI_OMAP24XX
 821	tristate "McSPI driver for OMAP"
 822	depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST
 823	select SG_SPLIT
 824	help
 825	  SPI master controller for OMAP24XX and later Multichannel SPI
 826	  (McSPI) modules.
 827
 828config SPI_TI_QSPI
 829	tristate "DRA7xxx QSPI controller support"
 830	depends on ARCH_OMAP2PLUS || COMPILE_TEST
 831	help
 832	  QSPI master controller for DRA7xxx used for flash devices.
 833	  This device supports single, dual and quad read support, while
 834	  it only supports single write mode.
 835
 836config SPI_ORION
 837	tristate "Orion SPI master"
 838	depends on PLAT_ORION || ARCH_MVEBU || COMPILE_TEST
 839	help
 840	  This enables using the SPI master controller on the Orion
 841	  and MVEBU chips.
 842
 843config SPI_PCI1XXXX
 844	tristate "PCI1XXXX SPI Bus support"
 845	depends on PCI
 846	help
 847	  Say "yes" to Enable the SPI Bus support for the PCI1xxxx card
 848	  This is a PCI to SPI Bus driver
 849	  This driver can be built as module. If so, the module will be
 850	  called as spi-pci1xxxx.
 851
 852config SPI_PIC32
 853	tristate "Microchip PIC32 series SPI"
 854	depends on MACH_PIC32 || COMPILE_TEST
 855	help
 856	  SPI driver for Microchip PIC32 SPI master controller.
 857
 858config SPI_PIC32_SQI
 859	tristate "Microchip PIC32 Quad SPI driver"
 860	depends on MACH_PIC32 || COMPILE_TEST
 861	help
 862	  SPI driver for PIC32 Quad SPI controller.
 863
 864config SPI_PL022
 865	tristate "ARM AMBA PL022 SSP controller"
 866	depends on ARM_AMBA
 867	default y if ARCH_REALVIEW
 868	default y if INTEGRATOR_IMPD1
 869	default y if ARCH_VERSATILE
 870	help
 871	  This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP
 872	  controller. If you have an embedded system with an AMBA(R)
 873	  bus and a PL022 controller, say Y or M here.
 874
 875config SPI_POLARFIRE_SOC
 876	tristate "Microchip FPGA SPI controllers"
 877	depends on SPI_MASTER
 878	depends on ARCH_MICROCHIP || COMPILE_TEST
 879	help
 880	  This enables the SPI driver for Microchip FPGA SPI controllers.
 881	  Say Y or M here if you want to use the "hard" controllers on
 882	  PolarFire SoC.
 883	  If built as a module, it will be called spi-mpfs.
 884
 885config SPI_PPC4xx
 886	tristate "PPC4xx SPI Controller"
 887	depends on PPC32 && 4xx
 888	select SPI_BITBANG
 889	help
 890	  This selects a driver for the PPC4xx SPI Controller.
 891
 892config SPI_PXA2XX
 893	tristate "PXA2xx SSP SPI master"
 894	depends on ARCH_PXA || ARCH_MMP || (X86 && (PCI || ACPI)) || COMPILE_TEST
 895	select PXA_SSP if ARCH_PXA || ARCH_MMP
 896	help
 897	  This enables using a PXA2xx or Sodaville SSP port as a SPI master
 898	  controller. The driver can be configured to use any SSP port.
 899
 900config SPI_PXA2XX_PCI
 901	def_tristate SPI_PXA2XX && PCI && COMMON_CLK
 902
 903config SPI_REALTEK_SNAND
 904	tristate "Realtek SPI-NAND Flash Controller"
 905	depends on MACH_REALTEK_RTL || COMPILE_TEST
 906	select REGMAP
 907	help
 908	  This enables support for the SPI-NAND Flash controller on
 909	  Realtek SoCs.
 910
 911	  This driver does not support generic SPI. The implementation
 912	  only supports the spi-mem interface.
 913
 914config SPI_ROCKCHIP
 915	tristate "Rockchip SPI controller driver"
 916	depends on ARCH_ROCKCHIP || COMPILE_TEST
 917	help
 918	  This selects a driver for Rockchip SPI controller.
 919
 920	  If you say yes to this option, support will be included for
 921	  RK3066, RK3188 and RK3288 families of SPI controller.
 922	  Rockchip SPI controller support DMA transport and PIO mode.
 923	  The main usecase of this controller is to use spi flash as boot
 924	  device.
 925
 926config SPI_ROCKCHIP_SFC
 927	tristate "Rockchip Serial Flash Controller (SFC)"
 928	depends on ARCH_ROCKCHIP || COMPILE_TEST
 929	depends on HAS_IOMEM && HAS_DMA
 930	help
 931	  This enables support for Rockchip serial flash controller. This
 932	  is a specialized controller used to access SPI flash on some
 933	  Rockchip SOCs.
 934
 935	  ROCKCHIP SFC supports DMA and PIO modes. When DMA is not available,
 936	  the driver automatically falls back to PIO mode.
 937
 938config SPI_RB4XX
 939	tristate "Mikrotik RB4XX SPI master"
 940	depends on SPI_MASTER && (ATH79 || COMPILE_TEST)
 941	depends on OF
 942	help
 943	  SPI controller driver for the Mikrotik RB4xx series boards.
 944
 945config SPI_RPCIF
 946	tristate "Renesas RPC-IF SPI driver"
 947	depends on RENESAS_RPCIF
 948	help
 949	  SPI driver for Renesas R-Car Gen3 or RZ/G2 RPC-IF.
 950
 951config SPI_RSPI
 952	tristate "Renesas RSPI/QSPI controller"
 953	depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
 954	help
 955	  SPI driver for Renesas RSPI and QSPI blocks.
 956
 957config SPI_RZV2H_RSPI
 958	tristate "Renesas RZ/V2H RSPI controller"
 959	depends on ARCH_RENESAS || COMPILE_TEST
 960	help
 961	  RSPI driver for the Renesas RZ/V2H Serial Peripheral Interface (RSPI).
 962	  RSPI supports both SPI host and SPI target roles. This option only
 963	  enables the SPI host role.
 964
 965config SPI_RZV2M_CSI
 966	tristate "Renesas RZ/V2M CSI controller"
 967	depends on ARCH_RENESAS || COMPILE_TEST
 968	help
 969	  SPI driver for Renesas RZ/V2M Clocked Serial Interface (CSI).
 970	  CSI supports both SPI host and SPI target roles.
 971
 972config SPI_QCOM_QSPI
 973	tristate "QTI QSPI controller"
 974	depends on ARCH_QCOM || COMPILE_TEST
 975	help
 976	  QSPI(Quad SPI) driver for Qualcomm QSPI controller.
 977
 978config SPI_QPIC_SNAND
 979	tristate "QPIC SNAND controller"
 980	depends on ARCH_QCOM || COMPILE_TEST
 981	depends on MTD
 982	help
 983	  QPIC_SNAND (QPIC SPI NAND) driver for Qualcomm QPIC controller.
 984	  QPIC controller supports both parallel nand and serial nand.
 985	  This config will enable serial nand driver for QPIC controller.
 986
 987config SPI_QUP
 988	tristate "Qualcomm SPI controller with QUP interface"
 989	depends on ARCH_QCOM || COMPILE_TEST
 990	help
 991	  Qualcomm Universal Peripheral (QUP) core is an AHB slave that
 992	  provides a common data path (an output FIFO and an input FIFO)
 993	  for serial peripheral interface (SPI) mini-core. SPI in master
 994	  mode supports up to 50MHz, up to four chip selects, programmable
 995	  data path from 4 bits to 32 bits and numerous protocol variants.
 996
 997	  This driver can also be built as a module.  If so, the module
 998	  will be called spi_qup.
 999
1000config SPI_QCOM_GENI
1001	tristate "Qualcomm GENI based SPI controller"
1002	depends on QCOM_GENI_SE
1003	help
1004	  This driver supports GENI serial engine based SPI controller in
1005	  master mode on the Qualcomm Technologies Inc.'s SoCs. If you say
1006	  yes to this option, support will be included for the built-in SPI
1007	  interface on the Qualcomm Technologies Inc.'s SoCs.
1008
1009	  This driver can also be built as a module.  If so, the module
1010	  will be called spi-geni-qcom.
1011
1012config SPI_S3C64XX
1013	tristate "Samsung S3C64XX/Exynos SoC series type SPI"
1014	depends on (PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST)
1015	help
1016	  SPI driver for Samsung S3C64XX, S5Pv210 and Exynos SoCs.
1017	  Choose Y/M here only if you build for such Samsung SoC.
1018
1019config SPI_SC18IS602
1020	tristate "NXP SC18IS602/602B/603 I2C to SPI bridge"
1021	depends on I2C
1022	help
1023	  SPI driver for NXP SC18IS602/602B/603 I2C to SPI bridge.
1024
1025config SPI_SH_MSIOF
1026	tristate "SuperH MSIOF SPI controller"
1027	depends on HAVE_CLK
1028	depends on ARCH_SHMOBILE || ARCH_RENESAS || COMPILE_TEST
1029	help
1030	  SPI driver for SuperH and SH Mobile MSIOF blocks.
1031
1032config SPI_SH
1033	tristate "SuperH SPI controller"
1034	depends on SUPERH || COMPILE_TEST
1035	help
1036	  SPI driver for SuperH SPI blocks.
1037
1038config SPI_SH_SCI
1039	tristate "SuperH SCI SPI controller"
1040	depends on SUPERH
1041	select SPI_BITBANG
1042	help
1043	  SPI driver for SuperH SCI blocks.
1044
1045config SPI_SH_HSPI
1046	tristate "SuperH HSPI controller"
1047	depends on ARCH_RENESAS || COMPILE_TEST
1048	help
1049	  SPI driver for SuperH HSPI blocks.
1050
1051config SPI_SIFIVE
1052	tristate "SiFive SPI controller"
1053	depends on HAS_IOMEM
1054	help
1055	  This exposes the SPI controller IP from SiFive.
1056
1057config SPI_SLAVE_MT27XX
1058	tristate "MediaTek SPI slave device"
1059	depends on ARCH_MEDIATEK || COMPILE_TEST
1060	depends on SPI_SLAVE
1061	help
1062	  This selects the MediaTek(R) SPI slave device driver.
1063	  If you want to use MediaTek(R) SPI slave interface,
1064	  say Y or M here.If you are not sure, say N.
1065	  SPI slave drivers for Mediatek MT27XX series ARM SoCs.
1066
1067config SPI_SN_F_OSPI
1068	tristate "Socionext F_OSPI SPI flash controller"
1069	depends on OF && HAS_IOMEM
1070	depends on SPI_MEM
1071	help
1072	  This enables support for the Socionext F_OSPI controller
1073	  for connecting an SPI Flash memory over up to 8-bit wide bus.
1074	  It supports indirect access mode only.
1075
1076config SPI_SG2044_NOR
1077	tristate "SG2044 SPI NOR Controller"
1078	depends on ARCH_SOPHGO || COMPILE_TEST
1079	help
1080	  This enables support for the SG2044 SPI NOR controller,
1081	  which supports Dual/Quad read and write operations while
1082	  also supporting 3Byte address devices and 4Byte address
1083	  devices.
1084
1085config SPI_SPRD
1086	tristate "Spreadtrum SPI controller"
1087	depends on ARCH_SPRD || COMPILE_TEST
1088	help
1089	  SPI driver for Spreadtrum SoCs.
1090
1091config SPI_SPRD_ADI
1092	tristate "Spreadtrum ADI controller"
1093	depends on ARCH_SPRD || COMPILE_TEST
1094	depends on HWSPINLOCK || (COMPILE_TEST && !HWSPINLOCK)
1095	help
1096	  ADI driver based on SPI for Spreadtrum SoCs.
1097
1098config SPI_STM32
1099	tristate "STMicroelectronics STM32 SPI controller"
1100	depends on ARCH_STM32 || COMPILE_TEST
1101	select SPI_SLAVE
1102	help
1103	  SPI driver for STMicroelectronics STM32 SoCs.
1104
1105	  STM32 SPI controller supports DMA and PIO modes. When DMA
1106	  is not available, the driver automatically falls back to
1107	  PIO mode.
1108
1109config SPI_STM32_OSPI
1110	tristate "STMicroelectronics STM32 OCTO SPI controller"
1111	depends on ARCH_STM32 || COMPILE_TEST
1112	depends on OF
1113	depends on SPI_MEM
1114	help
1115	  This enables support for the Octo SPI controller in master mode.
1116	  This driver does not support generic SPI. The implementation only
1117	  supports spi-mem interface.
1118
1119config SPI_STM32_QSPI
1120	tristate "STMicroelectronics STM32 QUAD SPI controller"
1121	depends on ARCH_STM32 || COMPILE_TEST
1122	depends on OF
1123	depends on SPI_MEM
1124	help
1125	  This enables support for the Quad SPI controller in master mode.
1126	  This driver does not support generic SPI. The implementation only
1127	  supports spi-mem interface.
1128
1129config SPI_ST_SSC4
1130	tristate "STMicroelectronics SPI SSC-based driver"
1131	depends on ARCH_STI || COMPILE_TEST
1132	help
1133	  STMicroelectronics SoCs support for SPI. If you say yes to
1134	  this option, support will be included for the SSC driven SPI.
1135
1136config SPI_SUN4I
1137	tristate "Allwinner A10 SoCs SPI controller"
1138	depends on ARCH_SUNXI || COMPILE_TEST
1139	help
1140	  SPI driver for Allwinner sun4i, sun5i and sun7i SoCs
1141
1142config SPI_SUN6I
1143	tristate "Allwinner A31 SPI controller"
1144	depends on ARCH_SUNXI || COMPILE_TEST
1145	depends on RESET_CONTROLLER
1146	help
1147	  This enables using the SPI controller on the Allwinner A31 SoCs.
1148
1149config SPI_SUNPLUS_SP7021
1150	tristate "Sunplus SP7021 SPI controller"
1151	depends on SOC_SP7021 || COMPILE_TEST
1152	help
1153	  This enables Sunplus SP7021 SPI controller driver on the SP7021 SoCs.
1154	  This driver can also be built as a module. If so, the module will be
1155	  called as spi-sunplus-sp7021.
1156
1157	  If you have a  Sunplus SP7021 platform say Y here.
1158	  If unsure, say N.
1159
1160config SPI_SYNQUACER
1161	tristate "Socionext's SynQuacer HighSpeed SPI controller"
1162	depends on ARCH_SYNQUACER || COMPILE_TEST
1163	help
1164	  SPI driver for Socionext's High speed SPI controller which provides
1165	  various operating modes for interfacing to serial peripheral devices
1166	  that use the de-facto standard SPI protocol.
1167
1168	  It also supports the new dual-bit and quad-bit SPI protocol.
1169
1170config SPI_MXIC
1171	tristate "Macronix MX25F0A SPI controller"
1172	depends on SPI_MASTER
1173	imply MTD_NAND_ECC_MXIC
1174	help
1175	  This selects the Macronix MX25F0A SPI controller driver.
1176
1177config SPI_MXS
1178	tristate "Freescale MXS SPI controller"
1179	depends on ARCH_MXS
1180	select STMP_DEVICE
1181	help
1182	  SPI driver for Freescale MXS devices.
1183
1184config SPI_TEGRA210_QUAD
1185	tristate "NVIDIA Tegra QSPI Controller"
1186	depends on ARCH_TEGRA || COMPILE_TEST
1187	depends on RESET_CONTROLLER
1188	help
1189	  QSPI driver for NVIDIA Tegra QSPI Controller interface. This
1190	  controller is different from the SPI controller and is available
1191	  on Tegra SoCs starting from Tegra210.
1192
1193config SPI_TEGRA114
1194	tristate "NVIDIA Tegra114 SPI Controller"
1195	depends on ARCH_TEGRA || COMPILE_TEST
1196	depends on RESET_CONTROLLER
1197	help
1198	  SPI controller driver for NVIDIA Tegra114 and later SoCs. This controller
1199	  is different than the older SoCs SPI controller and also register interface
1200	  get changed with this controller.
1201
1202config SPI_TEGRA20_SFLASH
1203	tristate "Nvidia Tegra20 Serial flash Controller"
1204	depends on ARCH_TEGRA || COMPILE_TEST
1205	depends on RESET_CONTROLLER
1206	help
1207	  SPI driver for Nvidia Tegra20 Serial flash Controller interface.
1208	  The main usecase of this controller is to use spi flash as boot
1209	  device.
1210
1211config SPI_TEGRA20_SLINK
1212	tristate "Nvidia Tegra20/Tegra30 SLINK Controller"
1213	depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
1214	depends on RESET_CONTROLLER
1215	help
1216	  SPI driver for Nvidia Tegra20/Tegra30 SLINK Controller interface.
1217
1218config SPI_THUNDERX
1219	tristate "Cavium ThunderX SPI controller"
1220	depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
1221	help
1222	  SPI host driver for the hardware found on Cavium ThunderX
1223	  SOCs.
1224
1225config SPI_TOPCLIFF_PCH
1226	tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI"
1227	depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
1228	help
1229	  SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus
1230	  used in some x86 embedded processors.
1231
1232	  This driver also supports the ML7213/ML7223/ML7831, a companion chip
1233	  for the Atom E6xx series and compatible with the Intel EG20T PCH.
1234
1235config SPI_UNIPHIER
1236	tristate "Socionext UniPhier SPI Controller"
1237	depends on (ARCH_UNIPHIER || COMPILE_TEST) && OF
1238	depends on HAS_IOMEM
1239	help
1240	  This enables a driver for the Socionext UniPhier SoC SCSSI SPI controller.
1241
1242	  UniPhier SoCs have SCSSI and MCSSI SPI controllers.
1243	  Every UniPhier SoC has SCSSI which supports single channel.
1244	  Older UniPhier Pro4/Pro5 also has MCSSI which support multiple channels.
1245	  This driver supports SCSSI only.
1246
1247	  If your SoC supports SCSSI, say Y here.
1248
1249config SPI_VIRTIO
1250	tristate "Virtio SPI Controller"
1251	depends on SPI_MASTER && VIRTIO
1252	help
1253	  If you say yes to this option, support will be included for the virtio
1254	  SPI controller driver. The hardware can be emulated by any device model
1255	  software according to the virtio protocol.
1256
1257	  This driver can also be built as a module. If so, the module
1258	  will be called spi-virtio.
1259
1260config SPI_XCOMM
1261	tristate "Analog Devices AD-FMCOMMS1-EBZ SPI-I2C-bridge driver"
1262	depends on I2C
1263	help
1264	  Support for the SPI-I2C bridge found on the Analog Devices
1265	  AD-FMCOMMS1-EBZ board.
1266
1267config SPI_XILINX
1268	tristate "Xilinx SPI controller common module"
1269	depends on HAS_IOMEM
1270	select SPI_BITBANG
1271	help
1272	  This exposes the SPI controller IP from the Xilinx EDK.
1273
1274	  See the "OPB Serial Peripheral Interface (SPI) (v1.00e)"
1275	  Product Specification document (DS464) for hardware details.
1276
1277	  Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)"
1278
1279config SPI_XLP
1280	tristate "Cavium ThunderX2 SPI controller driver"
1281	depends on ARCH_THUNDER2 || COMPILE_TEST
1282	help
1283	  Enable support for the SPI controller on the Cavium ThunderX2.
1284	  (Originally on Netlogic XLP SoCs.)
1285
1286	  If you have a Cavium ThunderX2 platform say Y here.
1287	  If unsure, say N.
1288
1289config SPI_XTENSA_XTFPGA
1290	tristate "Xtensa SPI controller for xtfpga"
1291	depends on (XTENSA && XTENSA_PLATFORM_XTFPGA) || COMPILE_TEST
1292	select SPI_BITBANG
1293	help
1294	  SPI driver for xtfpga SPI master controller.
1295
1296	  This simple SPI master controller is built into xtfpga bitstreams
1297	  and is used to control daughterboard audio codec. It always transfers
1298	  16 bit words in SPI mode 0, automatically asserting CS on transfer
1299	  start and deasserting on end.
1300
1301config SPI_ZYNQ_QSPI
1302	tristate "Xilinx Zynq QSPI controller"
1303	depends on ARCH_ZYNQ || COMPILE_TEST
1304	depends on SPI_MEM
1305	help
1306	  This enables support for the Zynq Quad SPI controller
1307	  in master mode.
1308	  This controller only supports SPI memory interface.
1309
1310config SPI_ZYNQMP_GQSPI
1311	tristate "Xilinx ZynqMP GQSPI controller"
1312	depends on (SPI_MEM && HAS_DMA) || COMPILE_TEST
1313	help
1314	  Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC.
1315	  This controller only supports SPI memory interface.
1316
1317config SPI_AMD
1318	tristate "AMD SPI controller"
1319	depends on PCI
1320	depends on SPI_MASTER || X86 || COMPILE_TEST
1321	depends on SPI_MEM
1322	help
1323	  Enables SPI controller driver for AMD SoC.
1324
1325#
1326# Add new SPI master controllers in alphabetical order above this line
1327#
1328
1329comment "SPI Multiplexer support"
1330
1331config SPI_MUX
1332	tristate "SPI multiplexer support"
1333	select MULTIPLEXER
1334	help
1335	  This adds support for SPI multiplexers. Each SPI mux will be
1336	  accessible as a SPI controller, the devices behind the mux will appear
1337	  to be chip selects on this controller. It is still necessary to
1338	  select one or more specific mux-controller drivers.
1339
1340#
1341# There are lots of SPI device types, with sensors and memory
1342# being probably the most widely used ones.
1343#
1344comment "SPI Protocol Masters"
1345
1346config SPI_SPIDEV
1347	tristate "User mode SPI device driver support"
1348	help
1349	  This supports user mode SPI protocol drivers.
1350
1351config SPI_LOOPBACK_TEST
1352	tristate "spi loopback test framework support"
1353	depends on m
1354	help
1355	  This enables the SPI loopback testing framework driver
1356
1357	  primarily used for development of spi_master drivers
1358	  and to detect regressions
1359
1360config SPI_TLE62X0
1361	tristate "Infineon TLE62X0 (for power switching)"
1362	depends on SYSFS
1363	help
1364	  SPI driver for Infineon TLE62X0 series line driver chips,
1365	  such as the TLE6220, TLE6230 and TLE6240.  This provides a
1366	  sysfs interface, with each line presented as a kind of GPIO
1367	  exposing both switch control and diagnostic feedback.
1368
1369#
1370# Add new SPI protocol masters in alphabetical order above this line
1371#
1372
1373endif # SPI_MASTER
1374
1375#
1376# SLAVE side ... listening to other SPI masters
1377#
1378
1379config SPI_SLAVE
1380	bool "SPI slave protocol handlers"
1381	help
1382	  If your system has a slave-capable SPI controller, you can enable
1383	  slave protocol handlers.
1384
1385if SPI_SLAVE
1386
1387config SPI_SLAVE_TIME
1388	tristate "SPI slave handler reporting boot up time"
1389	help
1390	  SPI slave handler responding with the time of reception of the last
1391	  SPI message.
1392
1393config SPI_SLAVE_SYSTEM_CONTROL
1394	tristate "SPI slave handler controlling system state"
1395	help
1396	  SPI slave handler to allow remote control of system reboot, power
1397	  off, halt, and suspend.
1398
1399endif # SPI_SLAVE
1400
1401config SPI_DYNAMIC
1402	def_bool ACPI || OF_DYNAMIC || SPI_SLAVE
1403
1404if SPI_OFFLOAD
1405
1406comment "SPI Offload triggers"
1407
1408config SPI_OFFLOAD_TRIGGER_ADI_UTIL_SD
1409	tristate "SPI offload trigger using ADI sigma-delta utility"
1410	help
1411	  SPI offload trigger from ADI sigma-delta utility FPGA IP block.
1412
1413config SPI_OFFLOAD_TRIGGER_PWM
1414	tristate "SPI offload trigger using PWM"
1415	depends on PWM
1416	help
1417	  Generic SPI offload trigger implemented using PWM output.
1418
1419endif # SPI_OFFLOAD
1420
1421endif # SPI
~/ Read-only file preview.