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 58comment "SPI Master Controller Drivers" 59 60config SPI_ALTERA 61 tristate "Altera SPI Controller" 62 help 63 This is the driver for the Altera SPI Controller. 64 65config SPI_AR934X 66 tristate "Qualcomm Atheros AR934X/QCA95XX SPI controller driver" 67 depends on ATH79 || COMPILE_TEST 68 help 69 This enables support for the SPI controller present on the 70 Qualcomm Atheros AR934X/QCA95XX SoCs. 71 72config SPI_ATH79 73 tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver" 74 depends on ATH79 || COMPILE_TEST 75 select SPI_BITBANG 76 help 77 This enables support for the SPI controller present on the 78 Atheros AR71XX/AR724X/AR913X SoCs. 79 80config SPI_ARMADA_3700 81 tristate "Marvell Armada 3700 SPI Controller" 82 depends on (ARCH_MVEBU && OF) || COMPILE_TEST 83 help 84 This enables support for the SPI controller present on the 85 Marvell Armada 3700 SoCs. 86 87config SPI_ATMEL 88 tristate "Atmel SPI Controller" 89 depends on ARCH_AT91 || COMPILE_TEST 90 depends on OF 91 help 92 This selects a driver for the Atmel SPI Controller, present on 93 many AT91 ARM chips. 94 95config SPI_AT91_USART 96 tristate "Atmel USART Controller SPI driver" 97 depends on (ARCH_AT91 || COMPILE_TEST) 98 depends on MFD_AT91_USART 99 help 100 This selects a driver for the AT91 USART Controller as SPI Master, 101 present on AT91 and SAMA5 SoC series. 102 103config SPI_ATMEL_QUADSPI 104 tristate "Atmel Quad SPI Controller" 105 depends on ARCH_AT91 || (ARM && COMPILE_TEST && !ARCH_EBSA110) 106 depends on OF && HAS_IOMEM 107 help 108 This enables support for the Quad SPI controller in master mode. 109 This driver does not support generic SPI. The implementation only 110 supports spi-mem interface. 111 112config SPI_AU1550 113 tristate "Au1550/Au1200/Au1300 SPI Controller" 114 depends on MIPS_ALCHEMY 115 select SPI_BITBANG 116 help 117 If you say yes to this option, support will be included for the 118 PSC SPI controller found on Au1550, Au1200 and Au1300 series. 119 120config SPI_AXI_SPI_ENGINE 121 tristate "Analog Devices AXI SPI Engine controller" 122 depends on HAS_IOMEM 123 help 124 This enables support for the Analog Devices AXI SPI Engine SPI controller. 125 It is part of the SPI Engine framework that is used in some Analog Devices 126 reference designs for FPGAs. 127 128config SPI_BCM2835 129 tristate "BCM2835 SPI controller" 130 depends on GPIOLIB 131 depends on ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST 132 help 133 This selects a driver for the Broadcom BCM2835 SPI master. 134 135 The BCM2835 contains two types of SPI master controller; the 136 "universal SPI master", and the regular SPI controller. This driver 137 is for the regular SPI controller. Slave mode operation is not also 138 not supported. 139 140config SPI_BCM2835AUX 141 tristate "BCM2835 SPI auxiliary controller" 142 depends on ((ARCH_BCM2835 || ARCH_BRCMSTB) && GPIOLIB) || COMPILE_TEST 143 help 144 This selects a driver for the Broadcom BCM2835 SPI aux master. 145 146 The BCM2835 contains two types of SPI master controller; the 147 "universal SPI master", and the regular SPI controller. 148 This driver is for the universal/auxiliary SPI controller. 149 150config SPI_BCM63XX 151 tristate "Broadcom BCM63xx SPI controller" 152 depends on BCM63XX || COMPILE_TEST 153 help 154 Enable support for the SPI controller on the Broadcom BCM63xx SoCs. 155 156config SPI_BCM63XX_HSSPI 157 tristate "Broadcom BCM63XX HS SPI controller driver" 158 depends on BCM63XX || ARCH_BCM_63XX || COMPILE_TEST 159 help 160 This enables support for the High Speed SPI controller present on 161 newer Broadcom BCM63XX SoCs. 162 163config SPI_BCM_QSPI 164 tristate "Broadcom BSPI and MSPI controller support" 165 depends on ARCH_BRCMSTB || ARCH_BCM || ARCH_BCM_IPROC || \ 166 BMIPS_GENERIC || COMPILE_TEST 167 default ARCH_BCM_IPROC 168 help 169 Enables support for the Broadcom SPI flash and MSPI controller. 170 Select this option for any one of BRCMSTB, iProc NSP and NS2 SoCs 171 based platforms. This driver works for both SPI master for spi-nor 172 flash device as well as MSPI device. 173 174config SPI_BITBANG 175 tristate "Utilities for Bitbanging SPI masters" 176 help 177 With a few GPIO pins, your system can bitbang the SPI protocol. 178 Select this to get SPI support through I/O pins (GPIO, parallel 179 port, etc). Or, some systems' SPI master controller drivers use 180 this code to manage the per-word or per-transfer accesses to the 181 hardware shift registers. 182 183 This is library code, and is automatically selected by drivers that 184 need it. You only need to select this explicitly to support driver 185 modules that aren't part of this kernel tree. 186 187config SPI_BUTTERFLY 188 tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)" 189 depends on PARPORT 190 select SPI_BITBANG 191 help 192 This uses a custom parallel port cable to connect to an AVR 193 Butterfly <http://www.atmel.com/products/avr/butterfly>, an 194 inexpensive battery powered microcontroller evaluation board. 195 This same cable can be used to flash new firmware. 196 197config SPI_CADENCE 198 tristate "Cadence SPI controller" 199 help 200 This selects the Cadence SPI controller master driver 201 used by Xilinx Zynq and ZynqMP. 202 203config SPI_CLPS711X 204 tristate "CLPS711X host SPI controller" 205 depends on ARCH_CLPS711X || COMPILE_TEST 206 help 207 This enables dedicated general purpose SPI/Microwire1-compatible 208 master mode interface (SSI1) for CLPS711X-based CPUs. 209 210config SPI_COLDFIRE_QSPI 211 tristate "Freescale Coldfire QSPI controller" 212 depends on (M520x || M523x || M5249 || M525x || M527x || M528x || M532x) 213 help 214 This enables support for the Coldfire QSPI controller in master 215 mode. 216 217config SPI_DAVINCI 218 tristate "Texas Instruments DaVinci/DA8x/OMAP-L/AM1x SoC SPI controller" 219 depends on ARCH_DAVINCI || ARCH_KEYSTONE 220 select SPI_BITBANG 221 help 222 SPI master controller for DaVinci/DA8x/OMAP-L/AM1x SPI modules. 223 224config SPI_DESIGNWARE 225 tristate "DesignWare SPI controller core support" 226 help 227 general driver for SPI controller core from DesignWare 228 229config SPI_DW_PCI 230 tristate "PCI interface driver for DW SPI core" 231 depends on SPI_DESIGNWARE && PCI 232 233config SPI_DW_MID_DMA 234 bool "DMA support for DW SPI controller on Intel MID platform" 235 depends on SPI_DW_PCI && DW_DMAC_PCI 236 237config SPI_DW_MMIO 238 tristate "Memory-mapped io interface driver for DW SPI core" 239 depends on SPI_DESIGNWARE 240 241config SPI_DLN2 242 tristate "Diolan DLN-2 USB SPI adapter" 243 depends on MFD_DLN2 244 help 245 If you say yes to this option, support will be included for Diolan 246 DLN2, a USB to SPI interface. 247 248 This driver can also be built as a module. If so, the module 249 will be called spi-dln2. 250 251config SPI_EFM32 252 tristate "EFM32 SPI controller" 253 depends on OF && ARM && (ARCH_EFM32 || COMPILE_TEST) 254 select SPI_BITBANG 255 help 256 Driver for the spi controller found on Energy Micro's EFM32 SoCs. 257 258config SPI_EP93XX 259 tristate "Cirrus Logic EP93xx SPI controller" 260 depends on ARCH_EP93XX || COMPILE_TEST 261 help 262 This enables using the Cirrus EP93xx SPI controller in master 263 mode. 264 265config SPI_FALCON 266 bool "Falcon SPI controller support" 267 depends on SOC_FALCON 268 help 269 The external bus unit (EBU) found on the FALC-ON SoC has SPI 270 emulation that is designed for serial flash access. This driver 271 has only been tested with m25p80 type chips. The hardware has no 272 support for other types of SPI peripherals. 273 274config SPI_FSI 275 tristate "FSI SPI driver" 276 depends on FSI 277 help 278 This enables support for the driver for FSI bus attached SPI 279 controllers. 280 281config SPI_FSL_LPSPI 282 tristate "Freescale i.MX LPSPI controller" 283 depends on ARCH_MXC || COMPILE_TEST 284 help 285 This enables Freescale i.MX LPSPI controllers in master mode. 286 287config SPI_FSL_QUADSPI 288 tristate "Freescale QSPI controller" 289 depends on ARCH_MXC || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST 290 depends on HAS_IOMEM 291 help 292 This enables support for the Quad SPI controller in master mode. 293 Up to four flash chips can be connected on two buses with two 294 chipselects each. 295 This controller does not support generic SPI messages. It only 296 supports the high-level SPI memory interface. 297 298config SPI_HISI_SFC_V3XX 299 tristate "HiSilicon SPI-NOR Flash Controller for Hi16XX chipsets" 300 depends on (ARM64 && ACPI) || COMPILE_TEST 301 depends on HAS_IOMEM 302 help 303 This enables support for HiSilicon v3xx SPI-NOR flash controller 304 found in hi16xx chipsets. 305 306config SPI_NXP_FLEXSPI 307 tristate "NXP Flex SPI controller" 308 depends on ARCH_LAYERSCAPE || HAS_IOMEM 309 help 310 This enables support for the Flex SPI controller in master mode. 311 Up to four slave devices can be connected on two buses with two 312 chipselects each. 313 This controller does not support generic SPI messages and only 314 supports the high-level SPI memory interface. 315 316config SPI_GPIO 317 tristate "GPIO-based bitbanging SPI Master" 318 depends on GPIOLIB || COMPILE_TEST 319 select SPI_BITBANG 320 help 321 This simple GPIO bitbanging SPI master uses the arch-neutral GPIO 322 interface to manage MOSI, MISO, SCK, and chipselect signals. SPI 323 slaves connected to a bus using this driver are configured as usual, 324 except that the spi_board_info.controller_data holds the GPIO number 325 for the chipselect used by this controller driver. 326 327 Note that this driver often won't achieve even 1 Mbit/sec speeds, 328 making it unusually slow for SPI. If your platform can inline 329 GPIO operations, you should be able to leverage that for better 330 speed with a custom version of this driver; see the source code. 331 332config SPI_IMG_SPFI 333 tristate "IMG SPFI controller" 334 depends on MIPS || COMPILE_TEST 335 help 336 This enables support for the SPFI master controller found on 337 IMG SoCs. 338 339config SPI_IMX 340 tristate "Freescale i.MX SPI controllers" 341 depends on ARCH_MXC || COMPILE_TEST 342 select SPI_BITBANG 343 help 344 This enables support for the Freescale i.MX SPI controllers. 345 346config SPI_JCORE 347 tristate "J-Core SPI Master" 348 depends on OF && (SUPERH || COMPILE_TEST) 349 help 350 This enables support for the SPI master controller in the J-Core 351 synthesizable, open source SoC. 352 353config SPI_LM70_LLP 354 tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)" 355 depends on PARPORT 356 select SPI_BITBANG 357 help 358 This driver supports the NS LM70 LLP Evaluation Board, 359 which interfaces to an LM70 temperature sensor using 360 a parallel port. 361 362config SPI_LP8841_RTC 363 tristate "ICP DAS LP-8841 SPI Controller for RTC" 364 depends on MACH_PXA27X_DT || COMPILE_TEST 365 help 366 This driver provides an SPI master device to drive Maxim 367 DS-1302 real time clock. 368 369 Say N here unless you plan to run the kernel on an ICP DAS 370 LP-8x4x industrial computer. 371 372config SPI_MPC52xx 373 tristate "Freescale MPC52xx SPI (non-PSC) controller support" 374 depends on PPC_MPC52xx 375 help 376 This drivers supports the MPC52xx SPI controller in master SPI 377 mode. 378 379config SPI_MPC52xx_PSC 380 tristate "Freescale MPC52xx PSC SPI controller" 381 depends on PPC_MPC52xx 382 help 383 This enables using the Freescale MPC52xx Programmable Serial 384 Controller in master SPI mode. 385 386config SPI_MPC512x_PSC 387 tristate "Freescale MPC512x PSC SPI controller" 388 depends on PPC_MPC512x 389 help 390 This enables using the Freescale MPC5121 Programmable Serial 391 Controller in SPI master mode. 392 393config SPI_FSL_LIB 394 tristate 395 depends on OF 396 397config SPI_FSL_CPM 398 tristate 399 depends on FSL_SOC 400 401config SPI_FSL_SPI 402 tristate "Freescale SPI controller and Aeroflex Gaisler GRLIB SPI controller" 403 depends on OF 404 select SPI_FSL_LIB 405 select SPI_FSL_CPM if FSL_SOC 406 help 407 This enables using the Freescale SPI controllers in master mode. 408 MPC83xx platform uses the controller in cpu mode or CPM/QE mode. 409 MPC8569 uses the controller in QE mode, MPC8610 in cpu mode. 410 This also enables using the Aeroflex Gaisler GRLIB SPI controller in 411 master mode. 412 413config SPI_FSL_DSPI 414 tristate "Freescale DSPI controller" 415 select REGMAP_MMIO 416 depends on SOC_VF610 || SOC_LS1021A || ARCH_LAYERSCAPE || M5441x || COMPILE_TEST 417 help 418 This enables support for the Freescale DSPI controller in master 419 mode. VF610, LS1021A and ColdFire platforms uses the controller. 420 421config SPI_FSL_ESPI 422 tristate "Freescale eSPI controller" 423 depends on FSL_SOC 424 help 425 This enables using the Freescale eSPI controllers in master mode. 426 From MPC8536, 85xx platform uses the controller, and all P10xx, 427 P20xx, P30xx,P40xx, P50xx uses this controller. 428 429config SPI_MESON_SPICC 430 tristate "Amlogic Meson SPICC controller" 431 depends on COMMON_CLK 432 depends on ARCH_MESON || COMPILE_TEST 433 help 434 This enables master mode support for the SPICC (SPI communication 435 controller) available in Amlogic Meson SoCs. 436 437config SPI_MESON_SPIFC 438 tristate "Amlogic Meson SPIFC controller" 439 depends on ARCH_MESON || COMPILE_TEST 440 select REGMAP_MMIO 441 help 442 This enables master mode support for the SPIFC (SPI flash 443 controller) available in Amlogic Meson SoCs. 444 445config SPI_MT65XX 446 tristate "MediaTek SPI controller" 447 depends on ARCH_MEDIATEK || COMPILE_TEST 448 help 449 This selects the MediaTek(R) SPI bus driver. 450 If you want to use MediaTek(R) SPI interface, 451 say Y or M here.If you are not sure, say N. 452 SPI drivers for Mediatek MT65XX and MT81XX series ARM SoCs. 453 454config SPI_MT7621 455 tristate "MediaTek MT7621 SPI Controller" 456 depends on RALINK || COMPILE_TEST 457 help 458 This selects a driver for the MediaTek MT7621 SPI Controller. 459 460config SPI_MTK_NOR 461 tristate "MediaTek SPI NOR controller" 462 depends on ARCH_MEDIATEK || COMPILE_TEST 463 help 464 This enables support for SPI NOR controller found on MediaTek 465 ARM SoCs. This is a controller specifically for SPI-NOR flash. 466 It can perform generic SPI transfers up to 6 bytes via generic 467 SPI interface as well as several SPI-NOR specific instructions 468 via SPI MEM interface. 469 470config SPI_NPCM_FIU 471 tristate "Nuvoton NPCM FLASH Interface Unit" 472 depends on ARCH_NPCM || COMPILE_TEST 473 depends on OF && HAS_IOMEM 474 help 475 This enables support for the Flash Interface Unit SPI controller 476 in master mode. 477 This driver does not support generic SPI. The implementation only 478 supports spi-mem interface. 479 480config SPI_NPCM_PSPI 481 tristate "Nuvoton NPCM PSPI Controller" 482 depends on ARCH_NPCM || COMPILE_TEST 483 help 484 This driver provides support for Nuvoton NPCM BMC 485 Peripheral SPI controller in master mode. 486 487config SPI_LANTIQ_SSC 488 tristate "Lantiq SSC SPI controller" 489 depends on LANTIQ || COMPILE_TEST 490 help 491 This driver supports the Lantiq SSC SPI controller in master 492 mode. This controller is found on Intel (former Lantiq) SoCs like 493 the Danube, Falcon, xRX200, xRX300. 494 495config SPI_OC_TINY 496 tristate "OpenCores tiny SPI" 497 depends on GPIOLIB || COMPILE_TEST 498 select SPI_BITBANG 499 help 500 This is the driver for OpenCores tiny SPI master controller. 501 502config SPI_OCTEON 503 tristate "Cavium OCTEON SPI controller" 504 depends on CAVIUM_OCTEON_SOC 505 help 506 SPI host driver for the hardware found on some Cavium OCTEON 507 SOCs. 508 509config SPI_OMAP_UWIRE 510 tristate "OMAP1 MicroWire" 511 depends on ARCH_OMAP1 512 select SPI_BITBANG 513 help 514 This hooks up to the MicroWire controller on OMAP1 chips. 515 516config SPI_OMAP24XX 517 tristate "McSPI driver for OMAP" 518 depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST 519 select SG_SPLIT 520 help 521 SPI master controller for OMAP24XX and later Multichannel SPI 522 (McSPI) modules. 523 524config SPI_TI_QSPI 525 tristate "DRA7xxx QSPI controller support" 526 depends on ARCH_OMAP2PLUS || COMPILE_TEST 527 help 528 QSPI master controller for DRA7xxx used for flash devices. 529 This device supports single, dual and quad read support, while 530 it only supports single write mode. 531 532config SPI_OMAP_100K 533 tristate "OMAP SPI 100K" 534 depends on ARCH_OMAP850 || ARCH_OMAP730 || COMPILE_TEST 535 help 536 OMAP SPI 100K master controller for omap7xx boards. 537 538config SPI_ORION 539 tristate "Orion SPI master" 540 depends on PLAT_ORION || ARCH_MVEBU || COMPILE_TEST 541 help 542 This enables using the SPI master controller on the Orion 543 and MVEBU chips. 544 545config SPI_PIC32 546 tristate "Microchip PIC32 series SPI" 547 depends on MACH_PIC32 || COMPILE_TEST 548 help 549 SPI driver for Microchip PIC32 SPI master controller. 550 551config SPI_PIC32_SQI 552 tristate "Microchip PIC32 Quad SPI driver" 553 depends on MACH_PIC32 || COMPILE_TEST 554 help 555 SPI driver for PIC32 Quad SPI controller. 556 557config SPI_PL022 558 tristate "ARM AMBA PL022 SSP controller" 559 depends on ARM_AMBA 560 default y if MACH_U300 561 default y if ARCH_REALVIEW 562 default y if INTEGRATOR_IMPD1 563 default y if ARCH_VERSATILE 564 help 565 This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP 566 controller. If you have an embedded system with an AMBA(R) 567 bus and a PL022 controller, say Y or M here. 568 569config SPI_PPC4xx 570 tristate "PPC4xx SPI Controller" 571 depends on PPC32 && 4xx 572 select SPI_BITBANG 573 help 574 This selects a driver for the PPC4xx SPI Controller. 575 576config SPI_PXA2XX 577 tristate "PXA2xx SSP SPI master" 578 depends on ARCH_PXA || ARCH_MMP || PCI || ACPI || COMPILE_TEST 579 select PXA_SSP if ARCH_PXA || ARCH_MMP 580 help 581 This enables using a PXA2xx or Sodaville SSP port as a SPI master 582 controller. The driver can be configured to use any SSP port and 583 additional documentation can be found a Documentation/spi/pxa2xx.rst. 584 585config SPI_PXA2XX_PCI 586 def_tristate SPI_PXA2XX && PCI && COMMON_CLK 587 588config SPI_ROCKCHIP 589 tristate "Rockchip SPI controller driver" 590 help 591 This selects a driver for Rockchip SPI controller. 592 593 If you say yes to this option, support will be included for 594 RK3066, RK3188 and RK3288 families of SPI controller. 595 Rockchip SPI controller support DMA transport and PIO mode. 596 The main usecase of this controller is to use spi flash as boot 597 device. 598 599config SPI_RB4XX 600 tristate "Mikrotik RB4XX SPI master" 601 depends on SPI_MASTER && ATH79 602 help 603 SPI controller driver for the Mikrotik RB4xx series boards. 604 605config SPI_RSPI 606 tristate "Renesas RSPI/QSPI controller" 607 depends on SUPERH || ARCH_RENESAS || COMPILE_TEST 608 help 609 SPI driver for Renesas RSPI and QSPI blocks. 610 611config SPI_QCOM_QSPI 612 tristate "QTI QSPI controller" 613 depends on ARCH_QCOM 614 help 615 QSPI(Quad SPI) driver for Qualcomm QSPI controller. 616 617config SPI_QUP 618 tristate "Qualcomm SPI controller with QUP interface" 619 depends on ARCH_QCOM || (ARM && COMPILE_TEST) 620 help 621 Qualcomm Universal Peripheral (QUP) core is an AHB slave that 622 provides a common data path (an output FIFO and an input FIFO) 623 for serial peripheral interface (SPI) mini-core. SPI in master 624 mode supports up to 50MHz, up to four chip selects, programmable 625 data path from 4 bits to 32 bits and numerous protocol variants. 626 627 This driver can also be built as a module. If so, the module 628 will be called spi_qup. 629 630config SPI_QCOM_GENI 631 tristate "Qualcomm GENI based SPI controller" 632 depends on QCOM_GENI_SE 633 help 634 This driver supports GENI serial engine based SPI controller in 635 master mode on the Qualcomm Technologies Inc.'s SoCs. If you say 636 yes to this option, support will be included for the built-in SPI 637 interface on the Qualcomm Technologies Inc.'s SoCs. 638 639 This driver can also be built as a module. If so, the module 640 will be called spi-geni-qcom. 641 642config SPI_S3C24XX 643 tristate "Samsung S3C24XX series SPI" 644 depends on ARCH_S3C24XX 645 select SPI_BITBANG 646 help 647 SPI driver for Samsung S3C24XX series ARM SoCs 648 649config SPI_S3C24XX_FIQ 650 bool "S3C24XX driver with FIQ pseudo-DMA" 651 depends on SPI_S3C24XX 652 select FIQ 653 help 654 Enable FIQ support for the S3C24XX SPI driver to provide pseudo 655 DMA by using the fast-interrupt request framework, This allows 656 the driver to get DMA-like performance when there are either 657 no free DMA channels, or when doing transfers that required both 658 TX and RX data paths. 659 660config SPI_S3C64XX 661 tristate "Samsung S3C64XX series type SPI" 662 depends on (PLAT_SAMSUNG || ARCH_EXYNOS || COMPILE_TEST) 663 help 664 SPI driver for Samsung S3C64XX and newer SoCs. 665 666config SPI_SC18IS602 667 tristate "NXP SC18IS602/602B/603 I2C to SPI bridge" 668 depends on I2C 669 help 670 SPI driver for NXP SC18IS602/602B/603 I2C to SPI bridge. 671 672config SPI_SH_MSIOF 673 tristate "SuperH MSIOF SPI controller" 674 depends on HAVE_CLK 675 depends on ARCH_SHMOBILE || ARCH_RENESAS || COMPILE_TEST 676 help 677 SPI driver for SuperH and SH Mobile MSIOF blocks. 678 679config SPI_SH 680 tristate "SuperH SPI controller" 681 depends on SUPERH || COMPILE_TEST 682 help 683 SPI driver for SuperH SPI blocks. 684 685config SPI_SH_SCI 686 tristate "SuperH SCI SPI controller" 687 depends on SUPERH 688 select SPI_BITBANG 689 help 690 SPI driver for SuperH SCI blocks. 691 692config SPI_SH_HSPI 693 tristate "SuperH HSPI controller" 694 depends on ARCH_RENESAS || COMPILE_TEST 695 help 696 SPI driver for SuperH HSPI blocks. 697 698config SPI_SIFIVE 699 tristate "SiFive SPI controller" 700 depends on HAS_IOMEM 701 help 702 This exposes the SPI controller IP from SiFive. 703 704config SPI_SIRF 705 tristate "CSR SiRFprimaII SPI controller" 706 depends on SIRF_DMA 707 select SPI_BITBANG 708 help 709 SPI driver for CSR SiRFprimaII SoCs 710 711config SPI_SLAVE_MT27XX 712 tristate "MediaTek SPI slave device" 713 depends on ARCH_MEDIATEK || COMPILE_TEST 714 depends on SPI_SLAVE 715 help 716 This selects the MediaTek(R) SPI slave device driver. 717 If you want to use MediaTek(R) SPI slave interface, 718 say Y or M here.If you are not sure, say N. 719 SPI slave drivers for Mediatek MT27XX series ARM SoCs. 720 721config SPI_SPRD 722 tristate "Spreadtrum SPI controller" 723 depends on ARCH_SPRD || COMPILE_TEST 724 help 725 SPI driver for Spreadtrum SoCs. 726 727config SPI_SPRD_ADI 728 tristate "Spreadtrum ADI controller" 729 depends on ARCH_SPRD || COMPILE_TEST 730 depends on HWSPINLOCK || (COMPILE_TEST && !HWSPINLOCK) 731 help 732 ADI driver based on SPI for Spreadtrum SoCs. 733 734config SPI_STM32 735 tristate "STMicroelectronics STM32 SPI controller" 736 depends on ARCH_STM32 || COMPILE_TEST 737 help 738 SPI driver for STMicroelectronics STM32 SoCs. 739 740 STM32 SPI controller supports DMA and PIO modes. When DMA 741 is not available, the driver automatically falls back to 742 PIO mode. 743 744config SPI_STM32_QSPI 745 tristate "STMicroelectronics STM32 QUAD SPI controller" 746 depends on ARCH_STM32 || COMPILE_TEST 747 depends on OF 748 help 749 This enables support for the Quad SPI controller in master mode. 750 This driver does not support generic SPI. The implementation only 751 supports spi-mem interface. 752 753config SPI_ST_SSC4 754 tristate "STMicroelectronics SPI SSC-based driver" 755 depends on ARCH_STI || COMPILE_TEST 756 help 757 STMicroelectronics SoCs support for SPI. If you say yes to 758 this option, support will be included for the SSC driven SPI. 759 760config SPI_SUN4I 761 tristate "Allwinner A10 SoCs SPI controller" 762 depends on ARCH_SUNXI || COMPILE_TEST 763 help 764 SPI driver for Allwinner sun4i, sun5i and sun7i SoCs 765 766config SPI_SUN6I 767 tristate "Allwinner A31 SPI controller" 768 depends on ARCH_SUNXI || COMPILE_TEST 769 depends on RESET_CONTROLLER 770 help 771 This enables using the SPI controller on the Allwinner A31 SoCs. 772 773config SPI_SYNQUACER 774 tristate "Socionext's SynQuacer HighSpeed SPI controller" 775 depends on ARCH_SYNQUACER || COMPILE_TEST 776 help 777 SPI driver for Socionext's High speed SPI controller which provides 778 various operating modes for interfacing to serial peripheral devices 779 that use the de-facto standard SPI protocol. 780 781 It also supports the new dual-bit and quad-bit SPI protocol. 782 783config SPI_MXIC 784 tristate "Macronix MX25F0A SPI controller" 785 depends on SPI_MASTER 786 help 787 This selects the Macronix MX25F0A SPI controller driver. 788 789config SPI_MXS 790 tristate "Freescale MXS SPI controller" 791 depends on ARCH_MXS 792 select STMP_DEVICE 793 help 794 SPI driver for Freescale MXS devices. 795 796config SPI_TEGRA114 797 tristate "NVIDIA Tegra114 SPI Controller" 798 depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST 799 depends on RESET_CONTROLLER 800 help 801 SPI driver for NVIDIA Tegra114 SPI Controller interface. This controller 802 is different than the older SoCs SPI controller and also register interface 803 get changed with this controller. 804 805config SPI_TEGRA20_SFLASH 806 tristate "Nvidia Tegra20 Serial flash Controller" 807 depends on ARCH_TEGRA || COMPILE_TEST 808 depends on RESET_CONTROLLER 809 help 810 SPI driver for Nvidia Tegra20 Serial flash Controller interface. 811 The main usecase of this controller is to use spi flash as boot 812 device. 813 814config SPI_TEGRA20_SLINK 815 tristate "Nvidia Tegra20/Tegra30 SLINK Controller" 816 depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST 817 depends on RESET_CONTROLLER 818 help 819 SPI driver for Nvidia Tegra20/Tegra30 SLINK Controller interface. 820 821config SPI_THUNDERX 822 tristate "Cavium ThunderX SPI controller" 823 depends on PCI && 64BIT && (ARM64 || COMPILE_TEST) 824 help 825 SPI host driver for the hardware found on Cavium ThunderX 826 SOCs. 827 828config SPI_TOPCLIFF_PCH 829 tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI" 830 depends on PCI && (X86_32 || MIPS || COMPILE_TEST) 831 help 832 SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus 833 used in some x86 embedded processors. 834 835 This driver also supports the ML7213/ML7223/ML7831, a companion chip 836 for the Atom E6xx series and compatible with the Intel EG20T PCH. 837 838config SPI_TXX9 839 tristate "Toshiba TXx9 SPI controller" 840 depends on GPIOLIB && (CPU_TX49XX || COMPILE_TEST) 841 help 842 SPI driver for Toshiba TXx9 MIPS SoCs 843 844config SPI_UNIPHIER 845 tristate "Socionext UniPhier SPI Controller" 846 depends on (ARCH_UNIPHIER || COMPILE_TEST) && OF 847 help 848 This enables a driver for the Socionext UniPhier SoC SCSSI SPI controller. 849 850 UniPhier SoCs have SCSSI and MCSSI SPI controllers. 851 Every UniPhier SoC has SCSSI which supports single channel. 852 Older UniPhier Pro4/Pro5 also has MCSSI which support multiple channels. 853 This driver supports SCSSI only. 854 855 If your SoC supports SCSSI, say Y here. 856 857config SPI_XCOMM 858 tristate "Analog Devices AD-FMCOMMS1-EBZ SPI-I2C-bridge driver" 859 depends on I2C 860 help 861 Support for the SPI-I2C bridge found on the Analog Devices 862 AD-FMCOMMS1-EBZ board. 863 864config SPI_XILINX 865 tristate "Xilinx SPI controller common module" 866 depends on HAS_IOMEM 867 select SPI_BITBANG 868 help 869 This exposes the SPI controller IP from the Xilinx EDK. 870 871 See the "OPB Serial Peripheral Interface (SPI) (v1.00e)" 872 Product Specification document (DS464) for hardware details. 873 874 Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)" 875 876config SPI_XLP 877 tristate "Netlogic XLP SPI controller driver" 878 depends on CPU_XLP || ARCH_THUNDER2 || COMPILE_TEST 879 help 880 Enable support for the SPI controller on the Netlogic XLP SoCs. 881 Currently supported XLP variants are XLP8XX, XLP3XX, XLP2XX, XLP9XX 882 and XLP5XX. 883 884 If you have a Netlogic XLP platform say Y here. 885 If unsure, say N. 886 887config SPI_XTENSA_XTFPGA 888 tristate "Xtensa SPI controller for xtfpga" 889 depends on (XTENSA && XTENSA_PLATFORM_XTFPGA) || COMPILE_TEST 890 select SPI_BITBANG 891 help 892 SPI driver for xtfpga SPI master controller. 893 894 This simple SPI master controller is built into xtfpga bitstreams 895 and is used to control daughterboard audio codec. It always transfers 896 16 bit words in SPI mode 0, automatically asserting CS on transfer 897 start and deasserting on end. 898 899config SPI_ZYNQ_QSPI 900 tristate "Xilinx Zynq QSPI controller" 901 depends on ARCH_ZYNQ || COMPILE_TEST 902 help 903 This enables support for the Zynq Quad SPI controller 904 in master mode. 905 This controller only supports SPI memory interface. 906 907config SPI_ZYNQMP_GQSPI 908 tristate "Xilinx ZynqMP GQSPI controller" 909 depends on (SPI_MASTER && HAS_DMA) || COMPILE_TEST 910 help 911 Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC. 912 913# 914# Add new SPI master controllers in alphabetical order above this line 915# 916 917comment "SPI Multiplexer support" 918 919config SPI_MUX 920 tristate "SPI multiplexer support" 921 select MULTIPLEXER 922 help 923 This adds support for SPI multiplexers. Each SPI mux will be 924 accessible as a SPI controller, the devices behind the mux will appear 925 to be chip selects on this controller. It is still necessary to 926 select one or more specific mux-controller drivers. 927 928# 929# There are lots of SPI device types, with sensors and memory 930# being probably the most widely used ones. 931# 932comment "SPI Protocol Masters" 933 934config SPI_SPIDEV 935 tristate "User mode SPI device driver support" 936 help 937 This supports user mode SPI protocol drivers. 938 939 Note that this application programming interface is EXPERIMENTAL 940 and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes. 941 942config SPI_LOOPBACK_TEST 943 tristate "spi loopback test framework support" 944 depends on m 945 help 946 This enables the SPI loopback testing framework driver 947 948 primarily used for development of spi_master drivers 949 and to detect regressions 950 951config SPI_TLE62X0 952 tristate "Infineon TLE62X0 (for power switching)" 953 depends on SYSFS 954 help 955 SPI driver for Infineon TLE62X0 series line driver chips, 956 such as the TLE6220, TLE6230 and TLE6240. This provides a 957 sysfs interface, with each line presented as a kind of GPIO 958 exposing both switch control and diagnostic feedback. 959 960# 961# Add new SPI protocol masters in alphabetical order above this line 962# 963 964endif # SPI_MASTER 965 966# 967# SLAVE side ... listening to other SPI masters 968# 969 970config SPI_SLAVE 971 bool "SPI slave protocol handlers" 972 help 973 If your system has a slave-capable SPI controller, you can enable 974 slave protocol handlers. 975 976if SPI_SLAVE 977 978config SPI_SLAVE_TIME 979 tristate "SPI slave handler reporting boot up time" 980 help 981 SPI slave handler responding with the time of reception of the last 982 SPI message. 983 984config SPI_SLAVE_SYSTEM_CONTROL 985 tristate "SPI slave handler controlling system state" 986 help 987 SPI slave handler to allow remote control of system reboot, power 988 off, halt, and suspend. 989 990endif # SPI_SLAVE 991 992endif # SPI 993