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