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_NXP_FLEXSPI 285 tristate "NXP Flex SPI controller" 286 depends on ARCH_LAYERSCAPE || HAS_IOMEM 287 help 288 This enables support for the Flex SPI controller in master mode. 289 Up to four slave devices can be connected on two buses with two 290 chipselects each. 291 This controller does not support generic SPI messages and only 292 supports the high-level SPI memory interface. 293 294config SPI_GPIO 295 tristate "GPIO-based bitbanging SPI Master" 296 depends on GPIOLIB || COMPILE_TEST 297 select SPI_BITBANG 298 help 299 This simple GPIO bitbanging SPI master uses the arch-neutral GPIO 300 interface to manage MOSI, MISO, SCK, and chipselect signals. SPI 301 slaves connected to a bus using this driver are configured as usual, 302 except that the spi_board_info.controller_data holds the GPIO number 303 for the chipselect used by this controller driver. 304 305 Note that this driver often won't achieve even 1 Mbit/sec speeds, 306 making it unusually slow for SPI. If your platform can inline 307 GPIO operations, you should be able to leverage that for better 308 speed with a custom version of this driver; see the source code. 309 310config SPI_IMG_SPFI 311 tristate "IMG SPFI controller" 312 depends on MIPS || COMPILE_TEST 313 help 314 This enables support for the SPFI master controller found on 315 IMG SoCs. 316 317config SPI_IMX 318 tristate "Freescale i.MX SPI controllers" 319 depends on ARCH_MXC || COMPILE_TEST 320 select SPI_BITBANG 321 help 322 This enables support for the Freescale i.MX SPI controllers. 323 324config SPI_JCORE 325 tristate "J-Core SPI Master" 326 depends on OF && (SUPERH || COMPILE_TEST) 327 help 328 This enables support for the SPI master controller in the J-Core 329 synthesizable, open source SoC. 330 331config SPI_LM70_LLP 332 tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)" 333 depends on PARPORT 334 select SPI_BITBANG 335 help 336 This driver supports the NS LM70 LLP Evaluation Board, 337 which interfaces to an LM70 temperature sensor using 338 a parallel port. 339 340config SPI_LP8841_RTC 341 tristate "ICP DAS LP-8841 SPI Controller for RTC" 342 depends on MACH_PXA27X_DT || COMPILE_TEST 343 help 344 This driver provides an SPI master device to drive Maxim 345 DS-1302 real time clock. 346 347 Say N here unless you plan to run the kernel on an ICP DAS 348 LP-8x4x industrial computer. 349 350config SPI_MPC52xx 351 tristate "Freescale MPC52xx SPI (non-PSC) controller support" 352 depends on PPC_MPC52xx 353 help 354 This drivers supports the MPC52xx SPI controller in master SPI 355 mode. 356 357config SPI_MPC52xx_PSC 358 tristate "Freescale MPC52xx PSC SPI controller" 359 depends on PPC_MPC52xx 360 help 361 This enables using the Freescale MPC52xx Programmable Serial 362 Controller in master SPI mode. 363 364config SPI_MPC512x_PSC 365 tristate "Freescale MPC512x PSC SPI controller" 366 depends on PPC_MPC512x 367 help 368 This enables using the Freescale MPC5121 Programmable Serial 369 Controller in SPI master mode. 370 371config SPI_FSL_LIB 372 tristate 373 depends on OF 374 375config SPI_FSL_CPM 376 tristate 377 depends on FSL_SOC 378 379config SPI_FSL_SPI 380 tristate "Freescale SPI controller and Aeroflex Gaisler GRLIB SPI controller" 381 depends on OF 382 select SPI_FSL_LIB 383 select SPI_FSL_CPM if FSL_SOC 384 help 385 This enables using the Freescale SPI controllers in master mode. 386 MPC83xx platform uses the controller in cpu mode or CPM/QE mode. 387 MPC8569 uses the controller in QE mode, MPC8610 in cpu mode. 388 This also enables using the Aeroflex Gaisler GRLIB SPI controller in 389 master mode. 390 391config SPI_FSL_DSPI 392 tristate "Freescale DSPI controller" 393 select REGMAP_MMIO 394 depends on SOC_VF610 || SOC_LS1021A || ARCH_LAYERSCAPE || M5441x || COMPILE_TEST 395 help 396 This enables support for the Freescale DSPI controller in master 397 mode. VF610, LS1021A and ColdFire platforms uses the controller. 398 399config SPI_FSL_ESPI 400 tristate "Freescale eSPI controller" 401 depends on FSL_SOC 402 help 403 This enables using the Freescale eSPI controllers in master mode. 404 From MPC8536, 85xx platform uses the controller, and all P10xx, 405 P20xx, P30xx,P40xx, P50xx uses this controller. 406 407config SPI_MESON_SPICC 408 tristate "Amlogic Meson SPICC controller" 409 depends on ARCH_MESON || COMPILE_TEST 410 help 411 This enables master mode support for the SPICC (SPI communication 412 controller) available in Amlogic Meson SoCs. 413 414config SPI_MESON_SPIFC 415 tristate "Amlogic Meson SPIFC controller" 416 depends on ARCH_MESON || COMPILE_TEST 417 select REGMAP_MMIO 418 help 419 This enables master mode support for the SPIFC (SPI flash 420 controller) available in Amlogic Meson SoCs. 421 422config SPI_MT65XX 423 tristate "MediaTek SPI controller" 424 depends on ARCH_MEDIATEK || COMPILE_TEST 425 help 426 This selects the MediaTek(R) SPI bus driver. 427 If you want to use MediaTek(R) SPI interface, 428 say Y or M here.If you are not sure, say N. 429 SPI drivers for Mediatek MT65XX and MT81XX series ARM SoCs. 430 431config SPI_MT7621 432 tristate "MediaTek MT7621 SPI Controller" 433 depends on RALINK || COMPILE_TEST 434 help 435 This selects a driver for the MediaTek MT7621 SPI Controller. 436 437config SPI_NPCM_FIU 438 tristate "Nuvoton NPCM FLASH Interface Unit" 439 depends on ARCH_NPCM || COMPILE_TEST 440 depends on OF && HAS_IOMEM 441 help 442 This enables support for the Flash Interface Unit SPI controller 443 in master mode. 444 This driver does not support generic SPI. The implementation only 445 supports spi-mem interface. 446 447config SPI_NPCM_PSPI 448 tristate "Nuvoton NPCM PSPI Controller" 449 depends on ARCH_NPCM || COMPILE_TEST 450 help 451 This driver provides support for Nuvoton NPCM BMC 452 Peripheral SPI controller in master mode. 453 454config SPI_LANTIQ_SSC 455 tristate "Lantiq SSC SPI controller" 456 depends on LANTIQ || COMPILE_TEST 457 help 458 This driver supports the Lantiq SSC SPI controller in master 459 mode. This controller is found on Intel (former Lantiq) SoCs like 460 the Danube, Falcon, xRX200, xRX300. 461 462config SPI_OC_TINY 463 tristate "OpenCores tiny SPI" 464 depends on GPIOLIB || COMPILE_TEST 465 select SPI_BITBANG 466 help 467 This is the driver for OpenCores tiny SPI master controller. 468 469config SPI_OCTEON 470 tristate "Cavium OCTEON SPI controller" 471 depends on CAVIUM_OCTEON_SOC 472 help 473 SPI host driver for the hardware found on some Cavium OCTEON 474 SOCs. 475 476config SPI_OMAP_UWIRE 477 tristate "OMAP1 MicroWire" 478 depends on ARCH_OMAP1 479 select SPI_BITBANG 480 help 481 This hooks up to the MicroWire controller on OMAP1 chips. 482 483config SPI_OMAP24XX 484 tristate "McSPI driver for OMAP" 485 depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST 486 select SG_SPLIT 487 help 488 SPI master controller for OMAP24XX and later Multichannel SPI 489 (McSPI) modules. 490 491config SPI_TI_QSPI 492 tristate "DRA7xxx QSPI controller support" 493 depends on ARCH_OMAP2PLUS || COMPILE_TEST 494 help 495 QSPI master controller for DRA7xxx used for flash devices. 496 This device supports single, dual and quad read support, while 497 it only supports single write mode. 498 499config SPI_OMAP_100K 500 tristate "OMAP SPI 100K" 501 depends on ARCH_OMAP850 || ARCH_OMAP730 || COMPILE_TEST 502 help 503 OMAP SPI 100K master controller for omap7xx boards. 504 505config SPI_ORION 506 tristate "Orion SPI master" 507 depends on PLAT_ORION || ARCH_MVEBU || COMPILE_TEST 508 help 509 This enables using the SPI master controller on the Orion 510 and MVEBU chips. 511 512config SPI_PIC32 513 tristate "Microchip PIC32 series SPI" 514 depends on MACH_PIC32 || COMPILE_TEST 515 help 516 SPI driver for Microchip PIC32 SPI master controller. 517 518config SPI_PIC32_SQI 519 tristate "Microchip PIC32 Quad SPI driver" 520 depends on MACH_PIC32 || COMPILE_TEST 521 help 522 SPI driver for PIC32 Quad SPI controller. 523 524config SPI_PL022 525 tristate "ARM AMBA PL022 SSP controller" 526 depends on ARM_AMBA 527 default y if MACH_U300 528 default y if ARCH_REALVIEW 529 default y if INTEGRATOR_IMPD1 530 default y if ARCH_VERSATILE 531 help 532 This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP 533 controller. If you have an embedded system with an AMBA(R) 534 bus and a PL022 controller, say Y or M here. 535 536config SPI_PPC4xx 537 tristate "PPC4xx SPI Controller" 538 depends on PPC32 && 4xx 539 select SPI_BITBANG 540 help 541 This selects a driver for the PPC4xx SPI Controller. 542 543config SPI_PXA2XX 544 tristate "PXA2xx SSP SPI master" 545 depends on (ARCH_PXA || ARCH_MMP || PCI || ACPI) 546 select PXA_SSP if ARCH_PXA || ARCH_MMP 547 help 548 This enables using a PXA2xx or Sodaville SSP port as a SPI master 549 controller. The driver can be configured to use any SSP port and 550 additional documentation can be found a Documentation/spi/pxa2xx.rst. 551 552config SPI_PXA2XX_PCI 553 def_tristate SPI_PXA2XX && PCI && COMMON_CLK 554 555config SPI_ROCKCHIP 556 tristate "Rockchip SPI controller driver" 557 help 558 This selects a driver for Rockchip SPI controller. 559 560 If you say yes to this option, support will be included for 561 RK3066, RK3188 and RK3288 families of SPI controller. 562 Rockchip SPI controller support DMA transport and PIO mode. 563 The main usecase of this controller is to use spi flash as boot 564 device. 565 566config SPI_RB4XX 567 tristate "Mikrotik RB4XX SPI master" 568 depends on SPI_MASTER && ATH79 569 help 570 SPI controller driver for the Mikrotik RB4xx series boards. 571 572config SPI_RSPI 573 tristate "Renesas RSPI/QSPI controller" 574 depends on SUPERH || ARCH_RENESAS || COMPILE_TEST 575 help 576 SPI driver for Renesas RSPI and QSPI blocks. 577 578config SPI_QCOM_QSPI 579 tristate "QTI QSPI controller" 580 depends on ARCH_QCOM 581 help 582 QSPI(Quad SPI) driver for Qualcomm QSPI controller. 583 584config SPI_QUP 585 tristate "Qualcomm SPI controller with QUP interface" 586 depends on ARCH_QCOM || (ARM && COMPILE_TEST) 587 help 588 Qualcomm Universal Peripheral (QUP) core is an AHB slave that 589 provides a common data path (an output FIFO and an input FIFO) 590 for serial peripheral interface (SPI) mini-core. SPI in master 591 mode supports up to 50MHz, up to four chip selects, programmable 592 data path from 4 bits to 32 bits and numerous protocol variants. 593 594 This driver can also be built as a module. If so, the module 595 will be called spi_qup. 596 597config SPI_QCOM_GENI 598 tristate "Qualcomm GENI based SPI controller" 599 depends on QCOM_GENI_SE 600 help 601 This driver supports GENI serial engine based SPI controller in 602 master mode on the Qualcomm Technologies Inc.'s SoCs. If you say 603 yes to this option, support will be included for the built-in SPI 604 interface on the Qualcomm Technologies Inc.'s SoCs. 605 606 This driver can also be built as a module. If so, the module 607 will be called spi-geni-qcom. 608 609config SPI_S3C24XX 610 tristate "Samsung S3C24XX series SPI" 611 depends on ARCH_S3C24XX 612 select SPI_BITBANG 613 help 614 SPI driver for Samsung S3C24XX series ARM SoCs 615 616config SPI_S3C24XX_FIQ 617 bool "S3C24XX driver with FIQ pseudo-DMA" 618 depends on SPI_S3C24XX 619 select FIQ 620 help 621 Enable FIQ support for the S3C24XX SPI driver to provide pseudo 622 DMA by using the fast-interrupt request framework, This allows 623 the driver to get DMA-like performance when there are either 624 no free DMA channels, or when doing transfers that required both 625 TX and RX data paths. 626 627config SPI_S3C64XX 628 tristate "Samsung S3C64XX series type SPI" 629 depends on (PLAT_SAMSUNG || ARCH_EXYNOS || COMPILE_TEST) 630 help 631 SPI driver for Samsung S3C64XX and newer SoCs. 632 633config SPI_SC18IS602 634 tristate "NXP SC18IS602/602B/603 I2C to SPI bridge" 635 depends on I2C 636 help 637 SPI driver for NXP SC18IS602/602B/603 I2C to SPI bridge. 638 639config SPI_SH_MSIOF 640 tristate "SuperH MSIOF SPI controller" 641 depends on HAVE_CLK 642 depends on ARCH_SHMOBILE || ARCH_RENESAS || COMPILE_TEST 643 help 644 SPI driver for SuperH and SH Mobile MSIOF blocks. 645 646config SPI_SH 647 tristate "SuperH SPI controller" 648 depends on SUPERH || COMPILE_TEST 649 help 650 SPI driver for SuperH SPI blocks. 651 652config SPI_SH_SCI 653 tristate "SuperH SCI SPI controller" 654 depends on SUPERH 655 select SPI_BITBANG 656 help 657 SPI driver for SuperH SCI blocks. 658 659config SPI_SH_HSPI 660 tristate "SuperH HSPI controller" 661 depends on ARCH_RENESAS || COMPILE_TEST 662 help 663 SPI driver for SuperH HSPI blocks. 664 665config SPI_SIFIVE 666 tristate "SiFive SPI controller" 667 depends on HAS_IOMEM 668 help 669 This exposes the SPI controller IP from SiFive. 670 671config SPI_SIRF 672 tristate "CSR SiRFprimaII SPI controller" 673 depends on SIRF_DMA 674 select SPI_BITBANG 675 help 676 SPI driver for CSR SiRFprimaII SoCs 677 678config SPI_SLAVE_MT27XX 679 tristate "MediaTek SPI slave device" 680 depends on ARCH_MEDIATEK || COMPILE_TEST 681 depends on SPI_SLAVE 682 help 683 This selects the MediaTek(R) SPI slave device driver. 684 If you want to use MediaTek(R) SPI slave interface, 685 say Y or M here.If you are not sure, say N. 686 SPI slave drivers for Mediatek MT27XX series ARM SoCs. 687 688config SPI_SPRD 689 tristate "Spreadtrum SPI controller" 690 depends on ARCH_SPRD || COMPILE_TEST 691 help 692 SPI driver for Spreadtrum SoCs. 693 694config SPI_SPRD_ADI 695 tristate "Spreadtrum ADI controller" 696 depends on ARCH_SPRD || COMPILE_TEST 697 depends on HWSPINLOCK || (COMPILE_TEST && !HWSPINLOCK) 698 help 699 ADI driver based on SPI for Spreadtrum SoCs. 700 701config SPI_STM32 702 tristate "STMicroelectronics STM32 SPI controller" 703 depends on ARCH_STM32 || COMPILE_TEST 704 help 705 SPI driver for STMicroelectronics STM32 SoCs. 706 707 STM32 SPI controller supports DMA and PIO modes. When DMA 708 is not available, the driver automatically falls back to 709 PIO mode. 710 711config SPI_STM32_QSPI 712 tristate "STMicroelectronics STM32 QUAD SPI controller" 713 depends on ARCH_STM32 || COMPILE_TEST 714 depends on OF 715 help 716 This enables support for the Quad SPI controller in master mode. 717 This driver does not support generic SPI. The implementation only 718 supports spi-mem interface. 719 720config SPI_ST_SSC4 721 tristate "STMicroelectronics SPI SSC-based driver" 722 depends on ARCH_STI || COMPILE_TEST 723 help 724 STMicroelectronics SoCs support for SPI. If you say yes to 725 this option, support will be included for the SSC driven SPI. 726 727config SPI_SUN4I 728 tristate "Allwinner A10 SoCs SPI controller" 729 depends on ARCH_SUNXI || COMPILE_TEST 730 help 731 SPI driver for Allwinner sun4i, sun5i and sun7i SoCs 732 733config SPI_SUN6I 734 tristate "Allwinner A31 SPI controller" 735 depends on ARCH_SUNXI || COMPILE_TEST 736 depends on RESET_CONTROLLER 737 help 738 This enables using the SPI controller on the Allwinner A31 SoCs. 739 740config SPI_SYNQUACER 741 tristate "Socionext's SynQuacer HighSpeed SPI controller" 742 depends on ARCH_SYNQUACER || COMPILE_TEST 743 help 744 SPI driver for Socionext's High speed SPI controller which provides 745 various operating modes for interfacing to serial peripheral devices 746 that use the de-facto standard SPI protocol. 747 748 It also supports the new dual-bit and quad-bit SPI protocol. 749 750config SPI_MXIC 751 tristate "Macronix MX25F0A SPI controller" 752 depends on SPI_MASTER 753 help 754 This selects the Macronix MX25F0A SPI controller driver. 755 756config SPI_MXS 757 tristate "Freescale MXS SPI controller" 758 depends on ARCH_MXS 759 select STMP_DEVICE 760 help 761 SPI driver for Freescale MXS devices. 762 763config SPI_TEGRA114 764 tristate "NVIDIA Tegra114 SPI Controller" 765 depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST 766 depends on RESET_CONTROLLER 767 help 768 SPI driver for NVIDIA Tegra114 SPI Controller interface. This controller 769 is different than the older SoCs SPI controller and also register interface 770 get changed with this controller. 771 772config SPI_TEGRA20_SFLASH 773 tristate "Nvidia Tegra20 Serial flash Controller" 774 depends on ARCH_TEGRA || COMPILE_TEST 775 depends on RESET_CONTROLLER 776 help 777 SPI driver for Nvidia Tegra20 Serial flash Controller interface. 778 The main usecase of this controller is to use spi flash as boot 779 device. 780 781config SPI_TEGRA20_SLINK 782 tristate "Nvidia Tegra20/Tegra30 SLINK Controller" 783 depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST 784 depends on RESET_CONTROLLER 785 help 786 SPI driver for Nvidia Tegra20/Tegra30 SLINK Controller interface. 787 788config SPI_THUNDERX 789 tristate "Cavium ThunderX SPI controller" 790 depends on PCI && 64BIT && (ARM64 || COMPILE_TEST) 791 help 792 SPI host driver for the hardware found on Cavium ThunderX 793 SOCs. 794 795config SPI_TOPCLIFF_PCH 796 tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI" 797 depends on PCI && (X86_32 || MIPS || COMPILE_TEST) 798 help 799 SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus 800 used in some x86 embedded processors. 801 802 This driver also supports the ML7213/ML7223/ML7831, a companion chip 803 for the Atom E6xx series and compatible with the Intel EG20T PCH. 804 805config SPI_TXX9 806 tristate "Toshiba TXx9 SPI controller" 807 depends on GPIOLIB && (CPU_TX49XX || COMPILE_TEST) 808 help 809 SPI driver for Toshiba TXx9 MIPS SoCs 810 811config SPI_UNIPHIER 812 tristate "Socionext UniPhier SPI Controller" 813 depends on (ARCH_UNIPHIER || COMPILE_TEST) && OF 814 help 815 This enables a driver for the Socionext UniPhier SoC SCSSI SPI controller. 816 817 UniPhier SoCs have SCSSI and MCSSI SPI controllers. 818 Every UniPhier SoC has SCSSI which supports single channel. 819 Older UniPhier Pro4/Pro5 also has MCSSI which support multiple channels. 820 This driver supports SCSSI only. 821 822 If your SoC supports SCSSI, say Y here. 823 824config SPI_XCOMM 825 tristate "Analog Devices AD-FMCOMMS1-EBZ SPI-I2C-bridge driver" 826 depends on I2C 827 help 828 Support for the SPI-I2C bridge found on the Analog Devices 829 AD-FMCOMMS1-EBZ board. 830 831config SPI_XILINX 832 tristate "Xilinx SPI controller common module" 833 depends on HAS_IOMEM 834 select SPI_BITBANG 835 help 836 This exposes the SPI controller IP from the Xilinx EDK. 837 838 See the "OPB Serial Peripheral Interface (SPI) (v1.00e)" 839 Product Specification document (DS464) for hardware details. 840 841 Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)" 842 843config SPI_XLP 844 tristate "Netlogic XLP SPI controller driver" 845 depends on CPU_XLP || ARCH_THUNDER2 || COMPILE_TEST 846 help 847 Enable support for the SPI controller on the Netlogic XLP SoCs. 848 Currently supported XLP variants are XLP8XX, XLP3XX, XLP2XX, XLP9XX 849 and XLP5XX. 850 851 If you have a Netlogic XLP platform say Y here. 852 If unsure, say N. 853 854config SPI_XTENSA_XTFPGA 855 tristate "Xtensa SPI controller for xtfpga" 856 depends on (XTENSA && XTENSA_PLATFORM_XTFPGA) || COMPILE_TEST 857 select SPI_BITBANG 858 help 859 SPI driver for xtfpga SPI master controller. 860 861 This simple SPI master controller is built into xtfpga bitstreams 862 and is used to control daughterboard audio codec. It always transfers 863 16 bit words in SPI mode 0, automatically asserting CS on transfer 864 start and deasserting on end. 865 866config SPI_ZYNQ_QSPI 867 tristate "Xilinx Zynq QSPI controller" 868 depends on ARCH_ZYNQ || COMPILE_TEST 869 help 870 This enables support for the Zynq Quad SPI controller 871 in master mode. 872 This controller only supports SPI memory interface. 873 874config SPI_ZYNQMP_GQSPI 875 tristate "Xilinx ZynqMP GQSPI controller" 876 depends on (SPI_MASTER && HAS_DMA) || COMPILE_TEST 877 help 878 Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC. 879 880# 881# Add new SPI master controllers in alphabetical order above this line 882# 883 884# 885# There are lots of SPI device types, with sensors and memory 886# being probably the most widely used ones. 887# 888comment "SPI Protocol Masters" 889 890config SPI_SPIDEV 891 tristate "User mode SPI device driver support" 892 help 893 This supports user mode SPI protocol drivers. 894 895 Note that this application programming interface is EXPERIMENTAL 896 and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes. 897 898config SPI_LOOPBACK_TEST 899 tristate "spi loopback test framework support" 900 depends on m 901 help 902 This enables the SPI loopback testing framework driver 903 904 primarily used for development of spi_master drivers 905 and to detect regressions 906 907config SPI_TLE62X0 908 tristate "Infineon TLE62X0 (for power switching)" 909 depends on SYSFS 910 help 911 SPI driver for Infineon TLE62X0 series line driver chips, 912 such as the TLE6220, TLE6230 and TLE6240. This provides a 913 sysfs interface, with each line presented as a kind of GPIO 914 exposing both switch control and diagnostic feedback. 915 916# 917# Add new SPI protocol masters in alphabetical order above this line 918# 919 920endif # SPI_MASTER 921 922# 923# SLAVE side ... listening to other SPI masters 924# 925 926config SPI_SLAVE 927 bool "SPI slave protocol handlers" 928 help 929 If your system has a slave-capable SPI controller, you can enable 930 slave protocol handlers. 931 932if SPI_SLAVE 933 934config SPI_SLAVE_TIME 935 tristate "SPI slave handler reporting boot up time" 936 help 937 SPI slave handler responding with the time of reception of the last 938 SPI message. 939 940config SPI_SLAVE_SYSTEM_CONTROL 941 tristate "SPI slave handler controlling system state" 942 help 943 SPI slave handler to allow remote control of system reboot, power 944 off, halt, and suspend. 945 946endif # SPI_SLAVE 947 948endif # SPI 949