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_ADI 600 tristate "Spreadtrum ADI controller" 601 depends on ARCH_SPRD || COMPILE_TEST 602 depends on HWSPINLOCK || (COMPILE_TEST && !HWSPINLOCK) 603 help 604 ADI driver based on SPI for Spreadtrum SoCs. 605 606config SPI_STM32 607 tristate "STMicroelectronics STM32 SPI controller" 608 depends on ARCH_STM32 || COMPILE_TEST 609 help 610 SPI driver for STMicroelectonics STM32 SoCs. 611 612 STM32 SPI controller supports DMA and PIO modes. When DMA 613 is not available, the driver automatically falls back to 614 PIO mode. 615 616config SPI_ST_SSC4 617 tristate "STMicroelectronics SPI SSC-based driver" 618 depends on ARCH_STI || COMPILE_TEST 619 help 620 STMicroelectronics SoCs support for SPI. If you say yes to 621 this option, support will be included for the SSC driven SPI. 622 623config SPI_SUN4I 624 tristate "Allwinner A10 SoCs SPI controller" 625 depends on ARCH_SUNXI || COMPILE_TEST 626 help 627 SPI driver for Allwinner sun4i, sun5i and sun7i SoCs 628 629config SPI_SUN6I 630 tristate "Allwinner A31 SPI controller" 631 depends on ARCH_SUNXI || COMPILE_TEST 632 depends on RESET_CONTROLLER 633 help 634 This enables using the SPI controller on the Allwinner A31 SoCs. 635 636config SPI_MXS 637 tristate "Freescale MXS SPI controller" 638 depends on ARCH_MXS 639 select STMP_DEVICE 640 help 641 SPI driver for Freescale MXS devices. 642 643config SPI_TEGRA114 644 tristate "NVIDIA Tegra114 SPI Controller" 645 depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST 646 depends on RESET_CONTROLLER 647 help 648 SPI driver for NVIDIA Tegra114 SPI Controller interface. This controller 649 is different than the older SoCs SPI controller and also register interface 650 get changed with this controller. 651 652config SPI_TEGRA20_SFLASH 653 tristate "Nvidia Tegra20 Serial flash Controller" 654 depends on ARCH_TEGRA || COMPILE_TEST 655 depends on RESET_CONTROLLER 656 help 657 SPI driver for Nvidia Tegra20 Serial flash Controller interface. 658 The main usecase of this controller is to use spi flash as boot 659 device. 660 661config SPI_TEGRA20_SLINK 662 tristate "Nvidia Tegra20/Tegra30 SLINK Controller" 663 depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST 664 depends on RESET_CONTROLLER 665 help 666 SPI driver for Nvidia Tegra20/Tegra30 SLINK Controller interface. 667 668config SPI_THUNDERX 669 tristate "Cavium ThunderX SPI controller" 670 depends on PCI && 64BIT && (ARM64 || COMPILE_TEST) 671 help 672 SPI host driver for the hardware found on Cavium ThunderX 673 SOCs. 674 675config SPI_TOPCLIFF_PCH 676 tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI" 677 depends on PCI && (X86_32 || MIPS || COMPILE_TEST) 678 help 679 SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus 680 used in some x86 embedded processors. 681 682 This driver also supports the ML7213/ML7223/ML7831, a companion chip 683 for the Atom E6xx series and compatible with the Intel EG20T PCH. 684 685config SPI_TXX9 686 tristate "Toshiba TXx9 SPI controller" 687 depends on GPIOLIB && (CPU_TX49XX || COMPILE_TEST) 688 help 689 SPI driver for Toshiba TXx9 MIPS SoCs 690 691config SPI_XCOMM 692 tristate "Analog Devices AD-FMCOMMS1-EBZ SPI-I2C-bridge driver" 693 depends on I2C 694 help 695 Support for the SPI-I2C bridge found on the Analog Devices 696 AD-FMCOMMS1-EBZ board. 697 698config SPI_XILINX 699 tristate "Xilinx SPI controller common module" 700 depends on HAS_IOMEM 701 select SPI_BITBANG 702 help 703 This exposes the SPI controller IP from the Xilinx EDK. 704 705 See the "OPB Serial Peripheral Interface (SPI) (v1.00e)" 706 Product Specification document (DS464) for hardware details. 707 708 Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)" 709 710config SPI_XLP 711 tristate "Netlogic XLP SPI controller driver" 712 depends on CPU_XLP || ARCH_THUNDER2 || COMPILE_TEST 713 help 714 Enable support for the SPI controller on the Netlogic XLP SoCs. 715 Currently supported XLP variants are XLP8XX, XLP3XX, XLP2XX, XLP9XX 716 and XLP5XX. 717 718 If you have a Netlogic XLP platform say Y here. 719 If unsure, say N. 720 721config SPI_XTENSA_XTFPGA 722 tristate "Xtensa SPI controller for xtfpga" 723 depends on (XTENSA && XTENSA_PLATFORM_XTFPGA) || COMPILE_TEST 724 select SPI_BITBANG 725 help 726 SPI driver for xtfpga SPI master controller. 727 728 This simple SPI master controller is built into xtfpga bitstreams 729 and is used to control daughterboard audio codec. It always transfers 730 16 bit words in SPI mode 0, automatically asserting CS on transfer 731 start and deasserting on end. 732 733config SPI_ZYNQMP_GQSPI 734 tristate "Xilinx ZynqMP GQSPI controller" 735 depends on SPI_MASTER && HAS_DMA 736 help 737 Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC. 738 739# 740# Add new SPI master controllers in alphabetical order above this line 741# 742 743# 744# There are lots of SPI device types, with sensors and memory 745# being probably the most widely used ones. 746# 747comment "SPI Protocol Masters" 748 749config SPI_SPIDEV 750 tristate "User mode SPI device driver support" 751 help 752 This supports user mode SPI protocol drivers. 753 754 Note that this application programming interface is EXPERIMENTAL 755 and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes. 756 757config SPI_LOOPBACK_TEST 758 tristate "spi loopback test framework support" 759 depends on m 760 help 761 This enables the SPI loopback testing framework driver 762 763 primarily used for development of spi_master drivers 764 and to detect regressions 765 766config SPI_TLE62X0 767 tristate "Infineon TLE62X0 (for power switching)" 768 depends on SYSFS 769 help 770 SPI driver for Infineon TLE62X0 series line driver chips, 771 such as the TLE6220, TLE6230 and TLE6240. This provides a 772 sysfs interface, with each line presented as a kind of GPIO 773 exposing both switch control and diagnostic feedback. 774 775# 776# Add new SPI protocol masters in alphabetical order above this line 777# 778 779endif # SPI_MASTER 780 781# 782# SLAVE side ... listening to other SPI masters 783# 784 785config SPI_SLAVE 786 bool "SPI slave protocol handlers" 787 help 788 If your system has a slave-capable SPI controller, you can enable 789 slave protocol handlers. 790 791if SPI_SLAVE 792 793config SPI_SLAVE_TIME 794 tristate "SPI slave handler reporting boot up time" 795 help 796 SPI slave handler responding with the time of reception of the last 797 SPI message. 798 799config SPI_SLAVE_SYSTEM_CONTROL 800 tristate "SPI slave handler controlling system state" 801 help 802 SPI slave handler to allow remote control of system reboot, power 803 off, halt, and suspend. 804 805endif # SPI_SLAVE 806 807endif # SPI 808