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