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