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