1# SPDX-License-Identifier: GPL-2.0-only 2# 3# SPI driver configuration 4# 5menuconfig SPI 6 bool "SPI support" 7 depends on HAS_IOMEM 8 help 9 The "Serial Peripheral Interface" is a low level synchronous 10 protocol. Chips that support SPI can have data transfer rates 11 up to several tens of Mbit/sec. Chips are addressed with a 12 controller and a chipselect. Most SPI slaves don't support 13 dynamic device discovery; some are even write-only or read-only. 14 15 SPI is widely used by microcontrollers to talk with sensors, 16 eeprom and flash memory, codecs and various other controller 17 chips, analog to digital (and d-to-a) converters, and more. 18 MMC and SD cards can be accessed using SPI protocol; and for 19 DataFlash cards used in MMC sockets, SPI must always be used. 20 21 SPI is one of a family of similar protocols using a four wire 22 interface (select, clock, data in, data out) including Microwire 23 (half duplex), SSP, SSI, and PSP. This driver framework should 24 work with most such devices and controllers. 25 26if SPI 27 28config SPI_DEBUG 29 bool "Debug support for SPI drivers" 30 depends on DEBUG_KERNEL 31 help 32 Say "yes" to enable debug messaging (like dev_dbg and pr_debug), 33 sysfs, and debugfs support in SPI controller and protocol drivers. 34 35# 36# MASTER side ... talking to discrete SPI slave chips including microcontrollers 37# 38 39config SPI_MASTER 40# bool "SPI Master Support" 41 bool 42 default SPI 43 help 44 If your system has an master-capable SPI controller (which 45 provides the clock and chipselect), you can enable that 46 controller and the protocol drivers for the SPI slave chips 47 that are connected. 48 49if SPI_MASTER 50 51config SPI_MEM 52 bool "SPI memory extension" 53 help 54 Enable this option if you want to enable the SPI memory extension. 55 This extension is meant to simplify interaction with SPI memories 56 by providing a high-level interface to send memory-like commands. 57 58config SPI_OFFLOAD 59 bool 60 61comment "SPI Master Controller Drivers" 62 63config SPI_AIROHA_SNFI 64 tristate "Airoha SPI NAND Flash Interface" 65 depends on ARCH_AIROHA || COMPILE_TEST 66 depends on SPI_MASTER 67 select REGMAP_MMIO 68 help 69 This enables support for SPI-NAND mode on the Airoha NAND 70 Flash Interface found on Airoha ARM SoCs. This controller 71 is implemented as a SPI-MEM controller. 72 73config SPI_ALTERA 74 tristate "Altera SPI Controller platform driver" 75 select SPI_ALTERA_CORE 76 select REGMAP_MMIO 77 help 78 This is the driver for the Altera SPI Controller. 79 80config SPI_ALTERA_CORE 81 tristate "Altera SPI Controller core code" if COMPILE_TEST 82 select REGMAP 83 help 84 "The core code for the Altera SPI Controller" 85 86config SPI_ALTERA_DFL 87 tristate "DFL bus driver for Altera SPI Controller" 88 depends on FPGA_DFL 89 select SPI_ALTERA_CORE 90 help 91 This is a Device Feature List (DFL) bus driver for the 92 Altera SPI master controller. The SPI master is connected 93 to a SPI slave to Avalon bridge in a Intel MAX BMC. 94 95config SPI_AMLOGIC_SPIFC_A1 96 tristate "Amlogic A1 SPIFC controller" 97 depends on ARCH_MESON || COMPILE_TEST 98 help 99 This enables master mode support for the SPIFC (SPI flash 100 controller) available in Amlogic A1 (A113L SoC). 101 102config SPI_APPLE 103 tristate "Apple SoC SPI Controller platform driver" 104 depends on ARCH_APPLE || COMPILE_TEST 105 help 106 This enables support for the SPI controller present on 107 many Apple SoCs, including the t8103 (M1), t8112 (M2) 108 and t600x (M1 Pro/Max/Ultra). Multiple SPI controller 109 instances are present on the SoC and each connects usually 110 to a single device like spi-nor (nvram), input device controller 111 or fingerprint sensor. 112 113config SPI_AR934X 114 tristate "Qualcomm Atheros AR934X/QCA95XX SPI controller driver" 115 depends on ATH79 || COMPILE_TEST 116 help 117 This enables support for the SPI controller present on the 118 Qualcomm Atheros AR934X/QCA95XX SoCs. 119 120config SPI_ATH79 121 tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver" 122 depends on ATH79 || COMPILE_TEST 123 select SPI_BITBANG 124 help 125 This enables support for the SPI controller present on the 126 Atheros AR71XX/AR724X/AR913X SoCs. 127 128config SPI_ARMADA_3700 129 tristate "Marvell Armada 3700 SPI Controller" 130 depends on (ARCH_MVEBU && OF) || COMPILE_TEST 131 help 132 This enables support for the SPI controller present on the 133 Marvell Armada 3700 SoCs. 134 135config SPI_ASPEED_SMC 136 tristate "Aspeed flash controllers in SPI mode" 137 depends on ARCH_ASPEED || COMPILE_TEST 138 depends on OF 139 help 140 This enables support for the Firmware Memory controller (FMC) 141 in the Aspeed AST2600, AST2500 and AST2400 SoCs when attached 142 to SPI NOR chips, and support for the SPI flash memory 143 controller (SPI) for the host firmware. The implementation 144 only supports SPI NOR. 145 146config SPI_ATMEL 147 tristate "Atmel SPI Controller" 148 depends on ARCH_AT91 || COMPILE_TEST 149 depends on OF 150 help 151 This selects a driver for the Atmel SPI Controller, present on 152 many AT91 ARM chips. 153 154config SPI_AT91_USART 155 tristate "Atmel USART Controller SPI driver" 156 depends on (ARCH_AT91 || COMPILE_TEST) 157 depends on MFD_AT91_USART 158 help 159 This selects a driver for the AT91 USART Controller as SPI Master, 160 present on AT91 and SAMA5 SoC series. 161 162config SPI_ATMEL_QUADSPI 163 tristate "Atmel Quad SPI Controller" 164 depends on ARCH_AT91 || COMPILE_TEST 165 depends on OF && HAS_IOMEM 166 help 167 This enables support for the Quad SPI controller in master mode. 168 This driver does not support generic SPI. The implementation only 169 supports spi-mem interface. 170 171config SPI_AU1550 172 tristate "Au1550/Au1200/Au1300 SPI Controller" 173 depends on MIPS_ALCHEMY 174 select SPI_BITBANG 175 help 176 If you say yes to this option, support will be included for the 177 PSC SPI controller found on Au1550, Au1200 and Au1300 series. 178 179config SPI_AXI_SPI_ENGINE 180 tristate "Analog Devices AXI SPI Engine controller" 181 depends on HAS_IOMEM 182 help 183 This enables support for the Analog Devices AXI SPI Engine SPI controller. 184 It is part of the SPI Engine framework that is used in some Analog Devices 185 reference designs for FPGAs. 186 187config SPI_BCM2835 188 tristate "BCM2835 SPI controller" 189 depends on GPIOLIB 190 depends on ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST 191 help 192 This selects a driver for the Broadcom BCM2835 SPI master. 193 194 The BCM2835 contains two types of SPI master controller; the 195 "universal SPI master", and the regular SPI controller. This driver 196 is for the regular SPI controller. Slave mode operation is not also 197 not supported. 198 199config SPI_BCM2835AUX 200 tristate "BCM2835 SPI auxiliary controller" 201 depends on ((ARCH_BCM2835 || ARCH_BRCMSTB) && GPIOLIB) || COMPILE_TEST 202 help 203 This selects a driver for the Broadcom BCM2835 SPI aux master. 204 205 The BCM2835 contains two types of SPI master controller; the 206 "universal SPI master", and the regular SPI controller. 207 This driver is for the universal/auxiliary SPI controller. 208 209config SPI_BCM63XX 210 tristate "Broadcom BCM63xx SPI controller" 211 depends on BCM63XX || BMIPS_GENERIC || COMPILE_TEST 212 help 213 Enable support for the SPI controller on the Broadcom BCM63xx SoCs. 214 215config SPI_BCM63XX_HSSPI 216 tristate "Broadcom BCM63XX HS SPI controller driver" 217 depends on BCM63XX || BMIPS_GENERIC || ARCH_BCMBCA || COMPILE_TEST 218 help 219 This enables support for the High Speed SPI controller present on 220 newer Broadcom BCM63XX SoCs. 221 222config SPI_BCM_QSPI 223 tristate "Broadcom BSPI and MSPI controller support" 224 depends on ARCH_BRCMSTB || ARCH_BCM || ARCH_BCM_IPROC || \ 225 BMIPS_GENERIC || COMPILE_TEST 226 default ARCH_BCM_IPROC 227 help 228 Enables support for the Broadcom SPI flash and MSPI controller. 229 Select this option for any one of BRCMSTB, iProc NSP and NS2 SoCs 230 based platforms. This driver works for both SPI master for SPI NOR 231 flash device as well as MSPI device. 232 233config SPI_BCMBCA_HSSPI 234 tristate "Broadcom BCMBCA HS SPI controller driver" 235 depends on ARCH_BCMBCA || COMPILE_TEST 236 help 237 This enables support for the High Speed SPI controller present on 238 newer Broadcom BCMBCA SoCs. These SoCs include an updated SPI controller 239 that adds the capability to allow the driver to control chip select 240 explicitly. 241 242config SPI_BITBANG 243 tristate "Utilities for Bitbanging SPI host controllers" 244 help 245 With a few GPIO pins, your system can bitbang the SPI protocol. 246 Select this to get SPI support through I/O pins (GPIO, parallel 247 port, etc). Or, some systems' SPI host controller drivers use 248 this code to manage the per-word or per-transfer accesses to the 249 hardware shift registers. 250 251 This is library code, and is automatically selected by drivers that 252 need it. You only need to select this explicitly to support driver 253 modules that aren't part of this kernel tree. 254 255config SPI_BUTTERFLY 256 tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)" 257 depends on PARPORT 258 select SPI_BITBANG 259 help 260 This uses a custom parallel port cable to connect to an AVR 261 Butterfly <http://www.atmel.com/products/avr/butterfly>, an 262 inexpensive battery powered microcontroller evaluation board. 263 This same cable can be used to flash new firmware. 264 265config SPI_CADENCE 266 tristate "Cadence SPI controller" 267 help 268 This selects the Cadence SPI controller master driver 269 used by Xilinx Zynq and ZynqMP. 270 271config SPI_CADENCE_QUADSPI 272 tristate "Cadence Quad SPI controller" 273 depends on OF && (ARM || ARM64 || X86 || RISCV || MIPS || COMPILE_TEST) 274 help 275 Enable support for the Cadence Quad SPI Flash controller. 276 277 Cadence QSPI is a specialized controller for connecting an SPI 278 Flash over 1/2/4-bit wide bus. Enable this option if you have a 279 device with a Cadence QSPI controller and want to access the 280 Flash as an MTD device. 281 282config SPI_CADENCE_XSPI 283 tristate "Cadence XSPI controller" 284 depends on OF && HAS_IOMEM && 64BIT 285 depends on SPI_MEM 286 help 287 Enable support for the Cadence XSPI Flash controller. 288 289 Cadence XSPI is a specialized controller for connecting an SPI 290 Flash over up to 8-bit wide bus. Enable this option if you have a 291 device with a Cadence XSPI controller and want to access the 292 Flash as an MTD device. 293 294config SPI_CH341 295 tristate "CH341 USB2SPI adapter" 296 depends on SPI_MASTER && USB 297 help 298 Enables the SPI controller on the CH341a USB to serial chip 299 300config SPI_CLPS711X 301 tristate "CLPS711X host SPI controller" 302 depends on ARCH_CLPS711X || COMPILE_TEST 303 help 304 This enables dedicated general purpose SPI/Microwire1-compatible 305 master mode interface (SSI1) for CLPS711X-based CPUs. 306 307config SPI_COLDFIRE_QSPI 308 tristate "Freescale Coldfire QSPI controller" 309 depends on (M520x || M523x || M5249 || M525x || M527x || M528x || M532x) 310 help 311 This enables support for the Coldfire QSPI controller in master 312 mode. 313 314config SPI_CS42L43 315 tristate "Cirrus Logic CS42L43 SPI controller" 316 depends on MFD_CS42L43 && PINCTRL_CS42L43 317 select GPIO_SWNODE_UNDEFINED 318 help 319 This enables support for the SPI controller inside the Cirrus Logic 320 CS42L43 audio codec. 321 322config SPI_DAVINCI 323 tristate "Texas Instruments DaVinci/DA8x/OMAP-L/AM1x SoC SPI controller" 324 depends on ARCH_DAVINCI || ARCH_KEYSTONE || COMPILE_TEST 325 select SPI_BITBANG 326 help 327 SPI master controller for DaVinci/DA8x/OMAP-L/AM1x SPI modules. 328 329config SPI_DESIGNWARE 330 tristate "DesignWare SPI controller core support" 331 imply SPI_MEM 332 help 333 general driver for SPI controller core from DesignWare 334 335if SPI_DESIGNWARE 336 337config SPI_DW_DMA 338 bool "DMA support for DW SPI controller" 339 340config SPI_DW_PCI 341 tristate "PCI interface driver for DW SPI core" 342 depends on PCI 343 344config SPI_DW_MMIO 345 tristate "Memory-mapped io interface driver for DW SPI core" 346 depends on HAS_IOMEM 347 348config SPI_DW_BT1 349 tristate "Baikal-T1 SPI driver for DW SPI core" 350 depends on MIPS_BAIKAL_T1 || COMPILE_TEST 351 select MULTIPLEXER 352 help 353 Baikal-T1 SoC is equipped with three DW APB SSI-based MMIO SPI 354 controllers. Two of them are pretty much normal: with IRQ, DMA, 355 FIFOs of 64 words depth, 4x CSs, but the third one as being a 356 part of the Baikal-T1 System Boot Controller has got a very 357 limited resources: no IRQ, no DMA, only a single native 358 chip-select and Tx/Rx FIFO with just 8 words depth available. 359 The later one is normally connected to an external SPI-nor flash 360 of 128Mb (in general can be of bigger size). 361 362config SPI_DW_BT1_DIRMAP 363 bool "Directly mapped Baikal-T1 Boot SPI flash support" 364 depends on SPI_DW_BT1 365 help 366 Directly mapped SPI flash memory is an interface specific to the 367 Baikal-T1 System Boot Controller. It is a 16MB MMIO region, which 368 can be used to access a peripheral memory device just by 369 reading/writing data from/to it. Note that the system APB bus 370 will stall during each IO from/to the dirmap region until the 371 operation is finished. So try not to use it concurrently with 372 time-critical tasks (like the SPI memory operations implemented 373 in this driver). 374 375endif 376 377config SPI_DLN2 378 tristate "Diolan DLN-2 USB SPI adapter" 379 depends on MFD_DLN2 380 help 381 If you say yes to this option, support will be included for Diolan 382 DLN2, a USB to SPI interface. 383 384 This driver can also be built as a module. If so, the module 385 will be called spi-dln2. 386 387config SPI_EP93XX 388 tristate "Cirrus Logic EP93xx SPI controller" 389 depends on ARCH_EP93XX || COMPILE_TEST 390 help 391 This enables using the Cirrus EP93xx SPI controller in master 392 mode. 393 394config SPI_FALCON 395 bool "Falcon SPI controller support" 396 depends on SOC_FALCON 397 help 398 The external bus unit (EBU) found on the FALC-ON SoC has SPI 399 emulation that is designed for serial flash access. This driver 400 has only been tested with m25p80 type chips. The hardware has no 401 support for other types of SPI peripherals. 402 403config SPI_FSI 404 tristate "FSI SPI driver" 405 depends on FSI 406 help 407 This enables support for the driver for FSI bus attached SPI 408 controllers. 409 410config SPI_FSL_LPSPI 411 tristate "Freescale i.MX LPSPI controller" 412 depends on ARCH_MXC || COMPILE_TEST 413 help 414 This enables Freescale i.MX LPSPI controllers in master mode. 415 416config SPI_FSL_QUADSPI 417 tristate "Freescale QSPI controller" 418 depends on ARCH_MXC || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST 419 depends on HAS_IOMEM 420 help 421 This enables support for the Quad SPI controller in master mode. 422 Up to four flash chips can be connected on two buses with two 423 chipselects each. 424 This controller does not support generic SPI messages. It only 425 supports the high-level SPI memory interface. 426 427config SPI_GXP 428 tristate "GXP SPI driver" 429 depends on ARCH_HPE || COMPILE_TEST 430 help 431 This enables support for the driver for GXP bus attached SPI 432 controllers. 433 434config SPI_HISI_KUNPENG 435 tristate "HiSilicon SPI Controller for Kunpeng SoCs" 436 depends on (ARM64 && ACPI) || COMPILE_TEST 437 help 438 This enables support for HiSilicon SPI controller found on 439 Kunpeng SoCs. 440 441 This driver can also be built as a module. If so, the module 442 will be called hisi-kunpeng-spi. 443 444config SPI_HISI_SFC_V3XX 445 tristate "HiSilicon SPI NOR Flash Controller for Hi16XX chipsets" 446 depends on (ARM64 && ACPI) || COMPILE_TEST 447 depends on HAS_IOMEM 448 help 449 This enables support for HiSilicon v3xx SPI NOR flash controller 450 found in hi16xx chipsets. 451 452config SPI_NXP_FLEXSPI 453 tristate "NXP Flex SPI controller" 454 depends on ARCH_LAYERSCAPE || ARCH_MXC || COMPILE_TEST 455 depends on HAS_IOMEM 456 help 457 This enables support for the Flex SPI controller in master mode. 458 Up to four slave devices can be connected on two buses with two 459 chipselects each. 460 This controller does not support generic SPI messages and only 461 supports the high-level SPI memory interface. 462 463config SPI_GPIO 464 tristate "GPIO-based bitbanging SPI Master" 465 depends on GPIOLIB || COMPILE_TEST 466 select SPI_BITBANG 467 help 468 This simple GPIO bitbanging SPI master uses the arch-neutral GPIO 469 interface to manage MOSI, MISO, SCK, and chipselect signals. SPI 470 slaves connected to a bus using this driver are configured as usual, 471 except that the spi_board_info.controller_data holds the GPIO number 472 for the chipselect used by this controller driver. 473 474 Note that this driver often won't achieve even 1 Mbit/sec speeds, 475 making it unusually slow for SPI. If your platform can inline 476 GPIO operations, you should be able to leverage that for better 477 speed with a custom version of this driver; see the source code. 478 479config SPI_IMG_SPFI 480 tristate "IMG SPFI controller" 481 depends on MIPS || COMPILE_TEST 482 help 483 This enables support for the SPFI master controller found on 484 IMG SoCs. 485 486config SPI_IMX 487 tristate "Freescale i.MX SPI controllers" 488 depends on ARCH_MXC || COMPILE_TEST 489 help 490 This enables support for the Freescale i.MX SPI controllers. 491 492config SPI_INGENIC 493 tristate "Ingenic SoCs SPI controller" 494 depends on MACH_INGENIC || COMPILE_TEST 495 help 496 This enables support for the Ingenic SoCs SPI controller. 497 498 To compile this driver as a module, choose M here: the module 499 will be called spi-ingenic. 500 501config SPI_INTEL 502 tristate 503 504config SPI_INTEL_PCI 505 tristate "Intel PCH/PCU SPI flash PCI driver" 506 depends on PCI 507 depends on X86 || COMPILE_TEST 508 depends on SPI_MEM 509 select SPI_INTEL 510 help 511 This enables PCI support for the Intel PCH/PCU SPI controller in 512 master mode. This controller is used to hold BIOS and other 513 persistent settings. Controllers present in modern Intel hardware 514 only work in hardware sequencing mode, this means that the 515 controller exposes a subset of operations that makes it safer to 516 use. Using this driver it is possible to upgrade BIOS directly 517 from Linux. 518 519 To compile this driver as a module, choose M here: the module 520 will be called spi-intel-pci. 521 522config SPI_INTEL_PLATFORM 523 tristate "Intel PCH/PCU SPI flash platform driver (DANGEROUS)" 524 depends on X86 || COMPILE_TEST 525 depends on SPI_MEM 526 select SPI_INTEL 527 help 528 This enables platform support for the Intel PCH/PCU SPI 529 controller in master mode that is used to hold BIOS and other 530 persistent settings. Most of these controllers work in 531 software sequencing mode, which means that the controller 532 exposes the low level SPI-NOR opcodes to the software. Using 533 this driver it is possible to upgrade BIOS directly from Linux. 534 535 Say N here unless you know what you are doing. Overwriting the 536 SPI flash may render the system unbootable. 537 538 To compile this driver as a module, choose M here: the module 539 will be called spi-intel-platform. 540 541config SPI_JCORE 542 tristate "J-Core SPI Master" 543 depends on OF && (SUPERH || COMPILE_TEST) 544 help 545 This enables support for the SPI master controller in the J-Core 546 synthesizable, open source SoC. 547 548config SPI_KSPI2 549 tristate "Support for KEBA SPI master type 2 hardware" 550 depends on HAS_IOMEM 551 depends on KEBA_CP500 || COMPILE_TEST 552 select AUXILIARY_BUS 553 help 554 This driver supports KEBA SPI master type 2 FPGA implementation, 555 as found on CP500 devices for example. 556 557 This driver can also be built as a module. If so, the module 558 will be called spi-kspi2. 559 560config SPI_LM70_LLP 561 tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)" 562 depends on PARPORT 563 select SPI_BITBANG 564 help 565 This driver supports the NS LM70 LLP Evaluation Board, 566 which interfaces to an LM70 temperature sensor using 567 a parallel port. 568 569config SPI_LOONGSON_CORE 570 tristate 571 depends on LOONGARCH || COMPILE_TEST 572 573config SPI_LOONGSON_PCI 574 tristate "Loongson SPI Controller PCI Driver Support" 575 select SPI_LOONGSON_CORE 576 depends on PCI && (LOONGARCH || COMPILE_TEST) 577 help 578 This bus driver supports the Loongson SPI hardware controller in 579 the Loongson platforms and supports to use PCI framework to 580 register SPI device resources. 581 Say Y or M here if you want to use the SPI controller on 582 Loongson platform. 583 584config SPI_LOONGSON_PLATFORM 585 tristate "Loongson SPI Controller Platform Driver Support" 586 select SPI_LOONGSON_CORE 587 depends on OF && (LOONGARCH || COMPILE_TEST) 588 help 589 This bus driver supports the Loongson SPI hardware controller in 590 the Loongson platforms and supports to use DTS framework to 591 register SPI device resources. 592 Say Y or M here if you want to use the SPI controller on 593 Loongson platform. 594 595config SPI_LP8841_RTC 596 tristate "ICP DAS LP-8841 SPI Controller for RTC" 597 depends on MACH_PXA27X_DT || COMPILE_TEST 598 help 599 This driver provides an SPI master device to drive Maxim 600 DS-1302 real time clock. 601 602 Say N here unless you plan to run the kernel on an ICP DAS 603 LP-8x4x industrial computer. 604 605config SPI_MPC52xx 606 tristate "Freescale MPC52xx SPI (non-PSC) controller support" 607 depends on PPC_MPC52xx 608 help 609 This drivers supports the MPC52xx SPI controller in master SPI 610 mode. 611 612config SPI_MPC52xx_PSC 613 tristate "Freescale MPC52xx PSC SPI controller" 614 depends on PPC_MPC52xx 615 help 616 This enables using the Freescale MPC52xx Programmable Serial 617 Controller in master SPI mode. 618 619config SPI_MPC512x_PSC 620 tristate "Freescale MPC512x PSC SPI controller" 621 depends on PPC_MPC512x 622 help 623 This enables using the Freescale MPC5121 Programmable Serial 624 Controller in SPI master mode. 625 626config SPI_FSL_LIB 627 tristate 628 depends on OF 629 630config SPI_FSL_CPM 631 tristate 632 depends on FSL_SOC 633 634config SPI_FSL_SPI 635 tristate "Freescale SPI controller and Aeroflex Gaisler GRLIB SPI controller" 636 depends on OF 637 select SPI_FSL_LIB 638 select SPI_FSL_CPM if FSL_SOC 639 help 640 This enables using the Freescale SPI controllers in master mode. 641 MPC83xx platform uses the controller in cpu mode or CPM/QE mode. 642 MPC8569 uses the controller in QE mode, MPC8610 in cpu mode. 643 This also enables using the Aeroflex Gaisler GRLIB SPI controller in 644 master mode. 645 646config SPI_FSL_DSPI 647 tristate "Freescale DSPI controller" 648 select REGMAP_MMIO 649 depends on SOC_VF610 || SOC_LS1021A || ARCH_LAYERSCAPE || M5441x || COMPILE_TEST 650 help 651 This enables support for the Freescale DSPI controller in master 652 mode. VF610, LS1021A and ColdFire platforms uses the controller. 653 654config SPI_FSL_ESPI 655 tristate "Freescale eSPI controller" 656 depends on FSL_SOC 657 help 658 This enables using the Freescale eSPI controllers in master mode. 659 From MPC8536, 85xx platform uses the controller, and all P10xx, 660 P20xx, P30xx,P40xx, P50xx uses this controller. 661 662config SPI_LJCA 663 tristate "Intel La Jolla Cove Adapter SPI support" 664 depends on USB_LJCA 665 default USB_LJCA 666 help 667 Select this option to enable SPI driver for the Intel 668 La Jolla Cove Adapter (LJCA) board. 669 670 This driver can also be built as a module. If so, the module 671 will be called spi-ljca. 672 673config SPI_MESON_SPICC 674 tristate "Amlogic Meson SPICC controller" 675 depends on COMMON_CLK 676 depends on ARCH_MESON || COMPILE_TEST 677 help 678 This enables master mode support for the SPICC (SPI communication 679 controller) available in Amlogic Meson SoCs. 680 681config SPI_MESON_SPIFC 682 tristate "Amlogic Meson SPIFC controller" 683 depends on ARCH_MESON || COMPILE_TEST 684 select REGMAP_MMIO 685 help 686 This enables master mode support for the SPIFC (SPI flash 687 controller) available in Amlogic Meson SoCs. 688 689config SPI_MICROCHIP_CORE 690 tristate "Microchip FPGA SPI controllers" 691 depends on SPI_MASTER 692 help 693 This enables the SPI driver for Microchip FPGA SPI controllers. 694 Say Y or M here if you want to use the "hard" controllers on 695 PolarFire SoC. 696 If built as a module, it will be called spi-microchip-core. 697 698config SPI_MICROCHIP_CORE_QSPI 699 tristate "Microchip FPGA QSPI controllers" 700 depends on SPI_MASTER 701 help 702 This enables the QSPI driver for Microchip FPGA QSPI controllers. 703 Say Y or M here if you want to use the QSPI controllers on 704 PolarFire SoC. 705 If built as a module, it will be called spi-microchip-core-qspi. 706 707config SPI_MT65XX 708 tristate "MediaTek SPI controller" 709 depends on ARCH_MEDIATEK || COMPILE_TEST 710 help 711 This selects the MediaTek(R) SPI bus driver. 712 If you want to use MediaTek(R) SPI interface, 713 say Y or M here.If you are not sure, say N. 714 SPI drivers for Mediatek MT65XX and MT81XX series ARM SoCs. 715 716config SPI_MT7621 717 tristate "MediaTek MT7621 SPI Controller" 718 depends on RALINK || COMPILE_TEST 719 help 720 This selects a driver for the MediaTek MT7621 SPI Controller. 721 722config SPI_MTK_NOR 723 tristate "MediaTek SPI NOR controller" 724 depends on ARCH_MEDIATEK || COMPILE_TEST 725 help 726 This enables support for SPI NOR controller found on MediaTek 727 ARM SoCs. This is a controller specifically for SPI NOR flash. 728 It can perform generic SPI transfers up to 6 bytes via generic 729 SPI interface as well as several SPI NOR specific instructions 730 via SPI MEM interface. 731 732config SPI_MTK_SNFI 733 tristate "MediaTek SPI NAND Flash Interface" 734 depends on ARCH_MEDIATEK || COMPILE_TEST 735 depends on MTD_NAND_ECC_MEDIATEK 736 help 737 This enables support for SPI-NAND mode on the MediaTek NAND 738 Flash Interface found on MediaTek ARM SoCs. This controller 739 is implemented as a SPI-MEM controller with pipelined ECC 740 capability. 741 742config SPI_WPCM_FIU 743 tristate "Nuvoton WPCM450 Flash Interface Unit" 744 depends on ARCH_NPCM || COMPILE_TEST 745 select REGMAP 746 help 747 This enables support got the Flash Interface Unit SPI controller 748 present in the Nuvoton WPCM450 SoC. 749 750 This driver does not support generic SPI. The implementation only 751 supports the spi-mem interface. 752 753config SPI_NPCM_FIU 754 tristate "Nuvoton NPCM FLASH Interface Unit" 755 depends on ARCH_NPCM || COMPILE_TEST 756 depends on OF && HAS_IOMEM 757 help 758 This enables support for the Flash Interface Unit SPI controller 759 in master mode. 760 This driver does not support generic SPI. The implementation only 761 supports spi-mem interface. 762 763config SPI_NPCM_PSPI 764 tristate "Nuvoton NPCM PSPI Controller" 765 depends on ARCH_NPCM || COMPILE_TEST 766 help 767 This driver provides support for Nuvoton NPCM BMC 768 Peripheral SPI controller in master mode. 769 770config SPI_LANTIQ_SSC 771 tristate "Lantiq SSC SPI controller" 772 depends on LANTIQ || X86 || COMPILE_TEST 773 help 774 This driver supports the Lantiq SSC SPI controller in master 775 mode. This controller is found on Intel (former Lantiq) SoCs like 776 the Danube, Falcon, xRX200, xRX300, Lightning Mountain. 777 778config SPI_OC_TINY 779 tristate "OpenCores tiny SPI" 780 depends on GPIOLIB || COMPILE_TEST 781 select SPI_BITBANG 782 help 783 This is the driver for OpenCores tiny SPI master controller. 784 785config SPI_OCTEON 786 tristate "Cavium OCTEON SPI controller" 787 depends on CAVIUM_OCTEON_SOC 788 help 789 SPI host driver for the hardware found on some Cavium OCTEON 790 SOCs. 791 792config SPI_OMAP_UWIRE 793 tristate "OMAP1 MicroWire" 794 depends on ARCH_OMAP1 || (ARM && COMPILE_TEST) 795 select SPI_BITBANG 796 help 797 This hooks up to the MicroWire controller on OMAP1 chips. 798 799config SPI_OMAP24XX 800 tristate "McSPI driver for OMAP" 801 depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST 802 select SG_SPLIT 803 help 804 SPI master controller for OMAP24XX and later Multichannel SPI 805 (McSPI) modules. 806 807config SPI_TI_QSPI 808 tristate "DRA7xxx QSPI controller support" 809 depends on ARCH_OMAP2PLUS || COMPILE_TEST 810 help 811 QSPI master controller for DRA7xxx used for flash devices. 812 This device supports single, dual and quad read support, while 813 it only supports single write mode. 814 815config SPI_ORION 816 tristate "Orion SPI master" 817 depends on PLAT_ORION || ARCH_MVEBU || COMPILE_TEST 818 help 819 This enables using the SPI master controller on the Orion 820 and MVEBU chips. 821 822config SPI_PCI1XXXX 823 tristate "PCI1XXXX SPI Bus support" 824 depends on PCI 825 help 826 Say "yes" to Enable the SPI Bus support for the PCI1xxxx card 827 This is a PCI to SPI Bus driver 828 This driver can be built as module. If so, the module will be 829 called as spi-pci1xxxx. 830 831config SPI_PIC32 832 tristate "Microchip PIC32 series SPI" 833 depends on MACH_PIC32 || COMPILE_TEST 834 help 835 SPI driver for Microchip PIC32 SPI master controller. 836 837config SPI_PIC32_SQI 838 tristate "Microchip PIC32 Quad SPI driver" 839 depends on MACH_PIC32 || COMPILE_TEST 840 help 841 SPI driver for PIC32 Quad SPI controller. 842 843config SPI_PL022 844 tristate "ARM AMBA PL022 SSP controller" 845 depends on ARM_AMBA 846 default y if ARCH_REALVIEW 847 default y if INTEGRATOR_IMPD1 848 default y if ARCH_VERSATILE 849 help 850 This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP 851 controller. If you have an embedded system with an AMBA(R) 852 bus and a PL022 controller, say Y or M here. 853 854config SPI_PPC4xx 855 tristate "PPC4xx SPI Controller" 856 depends on PPC32 && 4xx 857 select SPI_BITBANG 858 help 859 This selects a driver for the PPC4xx SPI Controller. 860 861config SPI_PXA2XX 862 tristate "PXA2xx SSP SPI master" 863 depends on ARCH_PXA || ARCH_MMP || (X86 && (PCI || ACPI)) || COMPILE_TEST 864 select PXA_SSP if ARCH_PXA || ARCH_MMP 865 help 866 This enables using a PXA2xx or Sodaville SSP port as a SPI master 867 controller. The driver can be configured to use any SSP port. 868 869config SPI_PXA2XX_PCI 870 def_tristate SPI_PXA2XX && PCI && COMMON_CLK 871 872config SPI_REALTEK_SNAND 873 tristate "Realtek SPI-NAND Flash Controller" 874 depends on MACH_REALTEK_RTL || COMPILE_TEST 875 select REGMAP 876 help 877 This enables support for the SPI-NAND Flash controller on 878 Realtek SoCs. 879 880 This driver does not support generic SPI. The implementation 881 only supports the spi-mem interface. 882 883config SPI_ROCKCHIP 884 tristate "Rockchip SPI controller driver" 885 depends on ARCH_ROCKCHIP || COMPILE_TEST 886 help 887 This selects a driver for Rockchip SPI controller. 888 889 If you say yes to this option, support will be included for 890 RK3066, RK3188 and RK3288 families of SPI controller. 891 Rockchip SPI controller support DMA transport and PIO mode. 892 The main usecase of this controller is to use spi flash as boot 893 device. 894 895config SPI_ROCKCHIP_SFC 896 tristate "Rockchip Serial Flash Controller (SFC)" 897 depends on ARCH_ROCKCHIP || COMPILE_TEST 898 depends on HAS_IOMEM && HAS_DMA 899 help 900 This enables support for Rockchip serial flash controller. This 901 is a specialized controller used to access SPI flash on some 902 Rockchip SOCs. 903 904 ROCKCHIP SFC supports DMA and PIO modes. When DMA is not available, 905 the driver automatically falls back to PIO mode. 906 907config SPI_RB4XX 908 tristate "Mikrotik RB4XX SPI master" 909 depends on SPI_MASTER && ATH79 910 help 911 SPI controller driver for the Mikrotik RB4xx series boards. 912 913config SPI_RPCIF 914 tristate "Renesas RPC-IF SPI driver" 915 depends on RENESAS_RPCIF 916 help 917 SPI driver for Renesas R-Car Gen3 or RZ/G2 RPC-IF. 918 919config SPI_RSPI 920 tristate "Renesas RSPI/QSPI controller" 921 depends on SUPERH || ARCH_RENESAS || COMPILE_TEST 922 help 923 SPI driver for Renesas RSPI and QSPI blocks. 924 925config SPI_RZV2M_CSI 926 tristate "Renesas RZ/V2M CSI controller" 927 depends on ARCH_RENESAS || COMPILE_TEST 928 help 929 SPI driver for Renesas RZ/V2M Clocked Serial Interface (CSI). 930 CSI supports both SPI host and SPI target roles. 931 932config SPI_QCOM_QSPI 933 tristate "QTI QSPI controller" 934 depends on ARCH_QCOM || COMPILE_TEST 935 help 936 QSPI(Quad SPI) driver for Qualcomm QSPI controller. 937 938config SPI_QUP 939 tristate "Qualcomm SPI controller with QUP interface" 940 depends on ARCH_QCOM || COMPILE_TEST 941 help 942 Qualcomm Universal Peripheral (QUP) core is an AHB slave that 943 provides a common data path (an output FIFO and an input FIFO) 944 for serial peripheral interface (SPI) mini-core. SPI in master 945 mode supports up to 50MHz, up to four chip selects, programmable 946 data path from 4 bits to 32 bits and numerous protocol variants. 947 948 This driver can also be built as a module. If so, the module 949 will be called spi_qup. 950 951config SPI_QCOM_GENI 952 tristate "Qualcomm GENI based SPI controller" 953 depends on QCOM_GENI_SE 954 help 955 This driver supports GENI serial engine based SPI controller in 956 master mode on the Qualcomm Technologies Inc.'s SoCs. If you say 957 yes to this option, support will be included for the built-in SPI 958 interface on the Qualcomm Technologies Inc.'s SoCs. 959 960 This driver can also be built as a module. If so, the module 961 will be called spi-geni-qcom. 962 963config SPI_S3C64XX 964 tristate "Samsung S3C64XX/Exynos SoC series type SPI" 965 depends on (PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST) 966 help 967 SPI driver for Samsung S3C64XX, S5Pv210 and Exynos SoCs. 968 Choose Y/M here only if you build for such Samsung SoC. 969 970config SPI_SC18IS602 971 tristate "NXP SC18IS602/602B/603 I2C to SPI bridge" 972 depends on I2C 973 help 974 SPI driver for NXP SC18IS602/602B/603 I2C to SPI bridge. 975 976config SPI_SH_MSIOF 977 tristate "SuperH MSIOF SPI controller" 978 depends on HAVE_CLK 979 depends on ARCH_SHMOBILE || ARCH_RENESAS || COMPILE_TEST 980 help 981 SPI driver for SuperH and SH Mobile MSIOF blocks. 982 983config SPI_SH 984 tristate "SuperH SPI controller" 985 depends on SUPERH || COMPILE_TEST 986 help 987 SPI driver for SuperH SPI blocks. 988 989config SPI_SH_SCI 990 tristate "SuperH SCI SPI controller" 991 depends on SUPERH 992 select SPI_BITBANG 993 help 994 SPI driver for SuperH SCI blocks. 995 996config SPI_SH_HSPI 997 tristate "SuperH HSPI controller" 998 depends on ARCH_RENESAS || COMPILE_TEST 999 help 1000 SPI driver for SuperH HSPI blocks. 1001 1002config SPI_SIFIVE 1003 tristate "SiFive SPI controller" 1004 depends on HAS_IOMEM 1005 help 1006 This exposes the SPI controller IP from SiFive. 1007 1008config SPI_SLAVE_MT27XX 1009 tristate "MediaTek SPI slave device" 1010 depends on ARCH_MEDIATEK || COMPILE_TEST 1011 depends on SPI_SLAVE 1012 help 1013 This selects the MediaTek(R) SPI slave device driver. 1014 If you want to use MediaTek(R) SPI slave interface, 1015 say Y or M here.If you are not sure, say N. 1016 SPI slave drivers for Mediatek MT27XX series ARM SoCs. 1017 1018config SPI_SN_F_OSPI 1019 tristate "Socionext F_OSPI SPI flash controller" 1020 depends on OF && HAS_IOMEM 1021 depends on SPI_MEM 1022 help 1023 This enables support for the Socionext F_OSPI controller 1024 for connecting an SPI Flash memory over up to 8-bit wide bus. 1025 It supports indirect access mode only. 1026 1027config SPI_SPRD 1028 tristate "Spreadtrum SPI controller" 1029 depends on ARCH_SPRD || COMPILE_TEST 1030 help 1031 SPI driver for Spreadtrum SoCs. 1032 1033config SPI_SPRD_ADI 1034 tristate "Spreadtrum ADI controller" 1035 depends on ARCH_SPRD || COMPILE_TEST 1036 depends on HWSPINLOCK || (COMPILE_TEST && !HWSPINLOCK) 1037 help 1038 ADI driver based on SPI for Spreadtrum SoCs. 1039 1040config SPI_STM32 1041 tristate "STMicroelectronics STM32 SPI controller" 1042 depends on ARCH_STM32 || COMPILE_TEST 1043 select SPI_SLAVE 1044 help 1045 SPI driver for STMicroelectronics STM32 SoCs. 1046 1047 STM32 SPI controller supports DMA and PIO modes. When DMA 1048 is not available, the driver automatically falls back to 1049 PIO mode. 1050 1051config SPI_STM32_QSPI 1052 tristate "STMicroelectronics STM32 QUAD SPI controller" 1053 depends on ARCH_STM32 || COMPILE_TEST 1054 depends on OF 1055 depends on SPI_MEM 1056 help 1057 This enables support for the Quad SPI controller in master mode. 1058 This driver does not support generic SPI. The implementation only 1059 supports spi-mem interface. 1060 1061config SPI_ST_SSC4 1062 tristate "STMicroelectronics SPI SSC-based driver" 1063 depends on ARCH_STI || COMPILE_TEST 1064 help 1065 STMicroelectronics SoCs support for SPI. If you say yes to 1066 this option, support will be included for the SSC driven SPI. 1067 1068config SPI_SUN4I 1069 tristate "Allwinner A10 SoCs SPI controller" 1070 depends on ARCH_SUNXI || COMPILE_TEST 1071 help 1072 SPI driver for Allwinner sun4i, sun5i and sun7i SoCs 1073 1074config SPI_SUN6I 1075 tristate "Allwinner A31 SPI controller" 1076 depends on ARCH_SUNXI || COMPILE_TEST 1077 depends on RESET_CONTROLLER 1078 help 1079 This enables using the SPI controller on the Allwinner A31 SoCs. 1080 1081config SPI_SUNPLUS_SP7021 1082 tristate "Sunplus SP7021 SPI controller" 1083 depends on SOC_SP7021 || COMPILE_TEST 1084 help 1085 This enables Sunplus SP7021 SPI controller driver on the SP7021 SoCs. 1086 This driver can also be built as a module. If so, the module will be 1087 called as spi-sunplus-sp7021. 1088 1089 If you have a Sunplus SP7021 platform say Y here. 1090 If unsure, say N. 1091 1092config SPI_SYNQUACER 1093 tristate "Socionext's SynQuacer HighSpeed SPI controller" 1094 depends on ARCH_SYNQUACER || COMPILE_TEST 1095 help 1096 SPI driver for Socionext's High speed SPI controller which provides 1097 various operating modes for interfacing to serial peripheral devices 1098 that use the de-facto standard SPI protocol. 1099 1100 It also supports the new dual-bit and quad-bit SPI protocol. 1101 1102config SPI_MXIC 1103 tristate "Macronix MX25F0A SPI controller" 1104 depends on SPI_MASTER 1105 imply MTD_NAND_ECC_MXIC 1106 help 1107 This selects the Macronix MX25F0A SPI controller driver. 1108 1109config SPI_MXS 1110 tristate "Freescale MXS SPI controller" 1111 depends on ARCH_MXS 1112 select STMP_DEVICE 1113 help 1114 SPI driver for Freescale MXS devices. 1115 1116config SPI_TEGRA210_QUAD 1117 tristate "NVIDIA Tegra QSPI Controller" 1118 depends on ARCH_TEGRA || COMPILE_TEST 1119 depends on RESET_CONTROLLER 1120 help 1121 QSPI driver for NVIDIA Tegra QSPI Controller interface. This 1122 controller is different from the SPI controller and is available 1123 on Tegra SoCs starting from Tegra210. 1124 1125config SPI_TEGRA114 1126 tristate "NVIDIA Tegra114 SPI Controller" 1127 depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST 1128 depends on RESET_CONTROLLER 1129 help 1130 SPI driver for NVIDIA Tegra114 SPI Controller interface. This controller 1131 is different than the older SoCs SPI controller and also register interface 1132 get changed with this controller. 1133 1134config SPI_TEGRA20_SFLASH 1135 tristate "Nvidia Tegra20 Serial flash Controller" 1136 depends on ARCH_TEGRA || COMPILE_TEST 1137 depends on RESET_CONTROLLER 1138 help 1139 SPI driver for Nvidia Tegra20 Serial flash Controller interface. 1140 The main usecase of this controller is to use spi flash as boot 1141 device. 1142 1143config SPI_TEGRA20_SLINK 1144 tristate "Nvidia Tegra20/Tegra30 SLINK Controller" 1145 depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST 1146 depends on RESET_CONTROLLER 1147 help 1148 SPI driver for Nvidia Tegra20/Tegra30 SLINK Controller interface. 1149 1150config SPI_THUNDERX 1151 tristate "Cavium ThunderX SPI controller" 1152 depends on PCI && 64BIT && (ARM64 || COMPILE_TEST) 1153 help 1154 SPI host driver for the hardware found on Cavium ThunderX 1155 SOCs. 1156 1157config SPI_TOPCLIFF_PCH 1158 tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI" 1159 depends on PCI && (X86_32 || MIPS || COMPILE_TEST) 1160 help 1161 SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus 1162 used in some x86 embedded processors. 1163 1164 This driver also supports the ML7213/ML7223/ML7831, a companion chip 1165 for the Atom E6xx series and compatible with the Intel EG20T PCH. 1166 1167config SPI_UNIPHIER 1168 tristate "Socionext UniPhier SPI Controller" 1169 depends on (ARCH_UNIPHIER || COMPILE_TEST) && OF 1170 depends on HAS_IOMEM 1171 help 1172 This enables a driver for the Socionext UniPhier SoC SCSSI SPI controller. 1173 1174 UniPhier SoCs have SCSSI and MCSSI SPI controllers. 1175 Every UniPhier SoC has SCSSI which supports single channel. 1176 Older UniPhier Pro4/Pro5 also has MCSSI which support multiple channels. 1177 This driver supports SCSSI only. 1178 1179 If your SoC supports SCSSI, say Y here. 1180 1181config SPI_XCOMM 1182 tristate "Analog Devices AD-FMCOMMS1-EBZ SPI-I2C-bridge driver" 1183 depends on I2C 1184 help 1185 Support for the SPI-I2C bridge found on the Analog Devices 1186 AD-FMCOMMS1-EBZ board. 1187 1188config SPI_XILINX 1189 tristate "Xilinx SPI controller common module" 1190 depends on HAS_IOMEM 1191 select SPI_BITBANG 1192 help 1193 This exposes the SPI controller IP from the Xilinx EDK. 1194 1195 See the "OPB Serial Peripheral Interface (SPI) (v1.00e)" 1196 Product Specification document (DS464) for hardware details. 1197 1198 Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)" 1199 1200config SPI_XLP 1201 tristate "Cavium ThunderX2 SPI controller driver" 1202 depends on ARCH_THUNDER2 || COMPILE_TEST 1203 help 1204 Enable support for the SPI controller on the Cavium ThunderX2. 1205 (Originally on Netlogic XLP SoCs.) 1206 1207 If you have a Cavium ThunderX2 platform say Y here. 1208 If unsure, say N. 1209 1210config SPI_XTENSA_XTFPGA 1211 tristate "Xtensa SPI controller for xtfpga" 1212 depends on (XTENSA && XTENSA_PLATFORM_XTFPGA) || COMPILE_TEST 1213 select SPI_BITBANG 1214 help 1215 SPI driver for xtfpga SPI master controller. 1216 1217 This simple SPI master controller is built into xtfpga bitstreams 1218 and is used to control daughterboard audio codec. It always transfers 1219 16 bit words in SPI mode 0, automatically asserting CS on transfer 1220 start and deasserting on end. 1221 1222config SPI_ZYNQ_QSPI 1223 tristate "Xilinx Zynq QSPI controller" 1224 depends on ARCH_ZYNQ || COMPILE_TEST 1225 depends on SPI_MEM 1226 help 1227 This enables support for the Zynq Quad SPI controller 1228 in master mode. 1229 This controller only supports SPI memory interface. 1230 1231config SPI_ZYNQMP_GQSPI 1232 tristate "Xilinx ZynqMP GQSPI controller" 1233 depends on (SPI_MEM && HAS_DMA) || COMPILE_TEST 1234 help 1235 Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC. 1236 This controller only supports SPI memory interface. 1237 1238config SPI_AMD 1239 tristate "AMD SPI controller" 1240 depends on SPI_MASTER || COMPILE_TEST 1241 help 1242 Enables SPI controller driver for AMD SoC. 1243 1244# 1245# Add new SPI master controllers in alphabetical order above this line 1246# 1247 1248comment "SPI Multiplexer support" 1249 1250config SPI_MUX 1251 tristate "SPI multiplexer support" 1252 select MULTIPLEXER 1253 help 1254 This adds support for SPI multiplexers. Each SPI mux will be 1255 accessible as a SPI controller, the devices behind the mux will appear 1256 to be chip selects on this controller. It is still necessary to 1257 select one or more specific mux-controller drivers. 1258 1259# 1260# There are lots of SPI device types, with sensors and memory 1261# being probably the most widely used ones. 1262# 1263comment "SPI Protocol Masters" 1264 1265config SPI_SPIDEV 1266 tristate "User mode SPI device driver support" 1267 help 1268 This supports user mode SPI protocol drivers. 1269 1270config SPI_LOOPBACK_TEST 1271 tristate "spi loopback test framework support" 1272 depends on m 1273 help 1274 This enables the SPI loopback testing framework driver 1275 1276 primarily used for development of spi_master drivers 1277 and to detect regressions 1278 1279config SPI_TLE62X0 1280 tristate "Infineon TLE62X0 (for power switching)" 1281 depends on SYSFS 1282 help 1283 SPI driver for Infineon TLE62X0 series line driver chips, 1284 such as the TLE6220, TLE6230 and TLE6240. This provides a 1285 sysfs interface, with each line presented as a kind of GPIO 1286 exposing both switch control and diagnostic feedback. 1287 1288# 1289# Add new SPI protocol masters in alphabetical order above this line 1290# 1291 1292endif # SPI_MASTER 1293 1294# 1295# SLAVE side ... listening to other SPI masters 1296# 1297 1298config SPI_SLAVE 1299 bool "SPI slave protocol handlers" 1300 help 1301 If your system has a slave-capable SPI controller, you can enable 1302 slave protocol handlers. 1303 1304if SPI_SLAVE 1305 1306config SPI_SLAVE_TIME 1307 tristate "SPI slave handler reporting boot up time" 1308 help 1309 SPI slave handler responding with the time of reception of the last 1310 SPI message. 1311 1312config SPI_SLAVE_SYSTEM_CONTROL 1313 tristate "SPI slave handler controlling system state" 1314 help 1315 SPI slave handler to allow remote control of system reboot, power 1316 off, halt, and suspend. 1317 1318endif # SPI_SLAVE 1319 1320config SPI_DYNAMIC 1321 def_bool ACPI || OF_DYNAMIC || SPI_SLAVE 1322 1323if SPI_OFFLOAD 1324 1325comment "SPI Offload triggers" 1326 1327config SPI_OFFLOAD_TRIGGER_PWM 1328 tristate "SPI offload trigger using PWM" 1329 depends on PWM 1330 help 1331 Generic SPI offload trigger implemented using PWM output. 1332 1333endif # SPI_OFFLOAD 1334 1335endif # SPI 1336