]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - drivers/spi/Kconfig
x86/speculation: Move arch_smt_update() call to after mitigation decisions
[mirror_ubuntu-bionic-kernel.git] / drivers / spi / Kconfig
CommitLineData
8ae12a0d
DB
1#
2# SPI driver configuration
3#
79d8c7a8 4menuconfig SPI
8ae12a0d 5 bool "SPI support"
79d8c7a8 6 depends on HAS_IOMEM
8ae12a0d
DB
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
3cb2fccc 14 SPI is widely used by microcontrollers to talk with sensors,
8ae12a0d
DB
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
79d8c7a8
AG
25if SPI
26
8ae12a0d 27config SPI_DEBUG
6341e62b 28 bool "Debug support for SPI drivers"
79d8c7a8 29 depends on DEBUG_KERNEL
8ae12a0d
DB
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
6341e62b
CJ
39# bool "SPI Master Support"
40 bool
8ae12a0d
DB
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
6291fe2a
RD
48if SPI_MASTER
49
8ae12a0d 50comment "SPI Master Controller Drivers"
8ae12a0d 51
0b782531
TC
52config SPI_ALTERA
53 tristate "Altera SPI Controller"
0b782531
TC
54 help
55 This is the driver for the Altera SPI Controller.
56
8efaef4d
GJ
57config SPI_ATH79
58 tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver"
76ec9d18 59 depends on ATH79 && GPIOLIB
8efaef4d
GJ
60 select SPI_BITBANG
61 help
62 This enables support for the SPI controller present on the
63 Atheros AR71XX/AR724X/AR913X SoCs.
64
5762ab71
RP
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
754ce4f2
HS
72config SPI_ATMEL
73 tristate "Atmel SPI Controller"
f59838a0 74 depends on HAS_DMA
dd1053a9 75 depends on (ARCH_AT91 || AVR32 || COMPILE_TEST)
754ce4f2
HS
76 help
77 This selects a driver for the Atmel SPI Controller, present on
78 many AT32 (AVR32) and AT91 (ARM) chips.
79
e32bb870
MB
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
b1353d1c
LPC
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
f8043872
CB
96config SPI_BCM2835
97 tristate "BCM2835 SPI controller"
e0d58cdc 98 depends on GPIOLIB
dd1053a9 99 depends on ARCH_BCM2835 || COMPILE_TEST
f8043872
CB
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
1ea29b39
MS
108config SPI_BCM2835AUX
109 tristate "BCM2835 SPI auxiliary controller"
0697ae80 110 depends on (ARCH_BCM2835 && GPIOLIB) || COMPILE_TEST
1ea29b39
MS
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
22ac3e82 118config SPI_BFIN5XX
a5f6abd4 119 tristate "SPI controller driver for ADI Blackfin5xx"
fa4bd4f1 120 depends on BLACKFIN && !BF60x
a5f6abd4
WB
121 help
122 This is the SPI controller master driver for Blackfin 5xx processor.
123
766e3721
SJ
124config SPI_ADI_V3
125 tristate "SPI controller v3 for ADI"
fa4bd4f1
SJ
126 depends on BF60x
127 help
128 This is the SPI controller v3 master driver
129 found on Blackfin 60x processor.
130
9c3e7375
CC
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
0fc6a323
RM
137config SPI_BCM53XX
138 tristate "Broadcom BCM53xx SPI controller"
139 depends on ARCH_BCM_5301X
933fc7b0
AL
140 depends on BCMA_POSSIBLE
141 select BCMA
0fc6a323
RM
142 help
143 Enable support for the SPI controller on Broadcom BCM53xx ARM SoCs.
144
b42dfed8
FF
145config SPI_BCM63XX
146 tristate "Broadcom BCM63xx SPI controller"
44d8fb30 147 depends on BCM63XX || COMPILE_TEST
b42dfed8
FF
148 help
149 Enable support for the SPI controller on the Broadcom BCM63xx SoCs.
150
142168eb
JG
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
fa236a7e
KD
158config SPI_BCM_QSPI
159 tristate "Broadcom BSPI and MSPI controller support"
279e4af7
JS
160 depends on ARCH_BRCMSTB || ARCH_BCM || ARCH_BCM_IPROC || \
161 BMIPS_GENERIC || COMPILE_TEST
fa236a7e
KD
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
9904f22a 169config SPI_BITBANG
d29389de 170 tristate "Utilities for Bitbanging SPI masters"
9904f22a
DB
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.
8ae12a0d 181
7111763d
DB
182config SPI_BUTTERFLY
183 tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)"
6291fe2a 184 depends on PARPORT
7111763d
DB
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
c474b386
HK
192config SPI_CADENCE
193 tristate "Cadence SPI controller"
c474b386
HK
194 help
195 This selects the Cadence SPI controller master driver
38b6484e 196 used by Xilinx Zynq and ZynqMP.
c474b386 197
161b96c3
AS
198config SPI_CLPS711X
199 tristate "CLPS711X host SPI controller"
5634dd8b 200 depends on ARCH_CLPS711X || COMPILE_TEST
161b96c3
AS
201 help
202 This enables dedicated general purpose SPI/Microwire1-compatible
203 master mode interface (SSI1) for CLPS711X-based CPUs.
204
34b8c661
SK
205config SPI_COLDFIRE_QSPI
206 tristate "Freescale Coldfire QSPI controller"
bce4d12b 207 depends on (M520x || M523x || M5249 || M525x || M527x || M528x || M532x)
34b8c661
SK
208 help
209 This enables support for the Coldfire QSPI controller in master
210 mode.
211
358934a6 212config SPI_DAVINCI
23ce17ad 213 tristate "Texas Instruments DaVinci/DA8x/OMAP-L/AM1x SoC SPI controller"
78848914 214 depends on ARCH_DAVINCI || ARCH_KEYSTONE
358934a6
SP
215 select SPI_BITBANG
216 help
23ce17ad
SN
217 SPI master controller for DaVinci/DA8x/OMAP-L/AM1x SPI modules.
218
e32bb870
MB
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
3d8c0d74
LP
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
86f8973c
UKK
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
011f23a3
MW
253config SPI_EP93XX
254 tristate "Cirrus Logic EP93xx SPI controller"
f59838a0 255 depends on HAS_DMA
dd1053a9 256 depends on ARCH_EP93XX || COMPILE_TEST
011f23a3
MW
257 help
258 This enables using the Cirrus EP93xx SPI controller in master
259 mode.
260
6cd3c7e2 261config SPI_FALCON
9c6a3af0 262 bool "Falcon SPI controller support"
6cd3c7e2
TL
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
5314987d
GP
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
d29389de
DB
276config SPI_GPIO
277 tristate "GPIO-based bitbanging SPI Master"
5c2301a9 278 depends on GPIOLIB || COMPILE_TEST
d29389de
DB
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
deba2580
AB
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
b5f3294f
SH
299config SPI_IMX
300 tristate "Freescale i.MX SPI controllers"
dd1053a9 301 depends on ARCH_MXC || COMPILE_TEST
b5f3294f
SH
302 select SPI_BITBANG
303 help
304 This enables using the Freescale i.MX SPI controllers in master
305 mode.
306
2cb1b3b3
RF
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
78961a57
KB
314config SPI_LM70_LLP
315 tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)"
6d1f56aa 316 depends on PARPORT
78961a57
KB
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
7ecbfff6
SI
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
42bbb709
GL
333config SPI_MPC52xx
334 tristate "Freescale MPC52xx SPI (non-PSC) controller support"
7433f2b7 335 depends on PPC_MPC52xx
42bbb709
GL
336 help
337 This drivers supports the MPC52xx SPI controller in master SPI
338 mode.
339
00b8fd23
DC
340config SPI_MPC52xx_PSC
341 tristate "Freescale MPC52xx PSC SPI controller"
6d1f56aa 342 depends on PPC_MPC52xx
00b8fd23
DC
343 help
344 This enables using the Freescale MPC52xx Programmable Serial
345 Controller in master SPI mode.
346
6e27388f
AG
347config SPI_MPC512x_PSC
348 tristate "Freescale MPC512x PSC SPI controller"
5e8afa34 349 depends on PPC_MPC512x
6e27388f
AG
350 help
351 This enables using the Freescale MPC5121 Programmable Serial
352 Controller in SPI master mode.
353
b36ece83 354config SPI_FSL_LIB
e8beacbb
AL
355 tristate
356 depends on OF
357
358config SPI_FSL_CPM
b36ece83
MH
359 tristate
360 depends on FSL_SOC
361
3272029f 362config SPI_FSL_SPI
38455d7a 363 tristate "Freescale SPI controller and Aeroflex Gaisler GRLIB SPI controller"
e8beacbb 364 depends on OF
b36ece83 365 select SPI_FSL_LIB
e8beacbb 366 select SPI_FSL_CPM if FSL_SOC
ccf06998 367 help
3272029f
MH
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.
447b0c7b
AL
371 This also enables using the Aeroflex Gaisler GRLIB SPI controller in
372 master mode.
ccf06998 373
349ad66c
CF
374config SPI_FSL_DSPI
375 tristate "Freescale DSPI controller"
1acbdeb9 376 select REGMAP_MMIO
dadab2d4 377 depends on HAS_DMA
ec7ed770 378 depends on SOC_VF610 || SOC_LS1021A || ARCH_LAYERSCAPE || M5441x || COMPILE_TEST
349ad66c
CF
379 help
380 This enables support for the Freescale DSPI controller in master
381 mode. VF610 platform uses the controller.
382
8b60d6c2 383config SPI_FSL_ESPI
38455d7a 384 tristate "Freescale eSPI controller"
8b60d6c2 385 depends on FSL_SOC
8b60d6c2
MH
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
454fa271
NA
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
c3e4bc54
BG
398config SPI_MESON_SPIFC
399 tristate "Amlogic Meson SPIFC controller"
400 depends on ARCH_MESON || COMPILE_TEST
1327ecd4 401 select REGMAP_MMIO
c3e4bc54
BG
402 help
403 This enables master mode support for the SPIFC (SPI flash
404 controller) available in Amlogic Meson SoCs.
405
a568231f
LL
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
e32bb870
MB
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
17f84b79
HM
422config SPI_LANTIQ_SSC
423 tristate "Lantiq SSC SPI controller"
582c97f6 424 depends on LANTIQ || COMPILE_TEST
17f84b79
HM
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
ce792580
TC
430config SPI_OC_TINY
431 tristate "OpenCores tiny SPI"
5c2301a9 432 depends on GPIOLIB || COMPILE_TEST
ce792580
TC
433 select SPI_BITBANG
434 help
435 This is the driver for OpenCores tiny SPI master controller.
436
6b52c00f
DD
437config SPI_OCTEON
438 tristate "Cavium OCTEON SPI controller"
9ddebc46 439 depends on CAVIUM_OCTEON_SOC
6b52c00f
DD
440 help
441 SPI host driver for the hardware found on some Cavium OCTEON
442 SOCs.
443
fdb3c18d
DB
444config SPI_OMAP_UWIRE
445 tristate "OMAP1 MicroWire"
6291fe2a 446 depends on ARCH_OMAP1
fdb3c18d
DB
447 select SPI_BITBANG
448 help
449 This hooks up to the MicroWire controller on OMAP1 chips.
450
ccdc7bf9 451config SPI_OMAP24XX
8ebeb545 452 tristate "McSPI driver for OMAP"
f59838a0 453 depends on HAS_DMA
dd1053a9 454 depends on ARCH_OMAP2PLUS || COMPILE_TEST
2b32e987 455 select SG_SPLIT
ccdc7bf9 456 help
8ebeb545 457 SPI master controller for OMAP24XX and later Multichannel SPI
ccdc7bf9 458 (McSPI) modules.
69c202af 459
505a1495
SP
460config SPI_TI_QSPI
461 tristate "DRA7xxx QSPI controller support"
967d6941 462 depends on HAS_DMA
505a1495
SP
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
35c9049b
CM
469config SPI_OMAP_100K
470 tristate "OMAP SPI 100K"
dd1053a9 471 depends on ARCH_OMAP850 || ARCH_OMAP730 || COMPILE_TEST
35c9049b
CM
472 help
473 OMAP SPI 100K master controller for omap7xx boards.
474
60cadec9 475config SPI_ORION
6d1f56aa 476 tristate "Orion SPI master"
710a1d54 477 depends on PLAT_ORION || ARCH_MVEBU || COMPILE_TEST
60cadec9 478 help
73482910
UKK
479 This enables using the SPI master controller on the Orion
480 and MVEBU chips.
60cadec9 481
1bcb9f8c
PCM
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
3270ac23
PCM
488config SPI_PIC32_SQI
489 tristate "Microchip PIC32 Quad SPI driver"
490 depends on MACH_PIC32 || COMPILE_TEST
21825ff1 491 depends on HAS_DMA
3270ac23
PCM
492 help
493 SPI driver for PIC32 Quad SPI controller.
494
b43d65f7 495config SPI_PL022
7f9a4b97
LW
496 tristate "ARM AMBA PL022 SSP controller"
497 depends on ARM_AMBA
b43d65f7 498 default y if MACH_U300
f33b29ee 499 default y if ARCH_REALVIEW
500 default y if INTEGRATOR_IMPD1
501 default y if ARCH_VERSATILE
b43d65f7
LW
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
44dab88e
SF
507config SPI_PPC4xx
508 tristate "PPC4xx SPI Controller"
5e8afa34 509 depends on PPC32 && 4xx
44dab88e
SF
510 select SPI_BITBANG
511 help
512 This selects a driver for the PPC4xx SPI Controller.
513
e0c9905e
SS
514config SPI_PXA2XX
515 tristate "PXA2xx SSP SPI master"
128345b1
AB
516 depends on (ARCH_PXA || ARCH_MMP || PCI || ACPI)
517 select PXA_SSP if ARCH_PXA || ARCH_MMP
e0c9905e 518 help
d6ea3df0
SAS
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
afa93c90 524 def_tristate SPI_PXA2XX && PCI && COMMON_CLK
e0c9905e 525
64e36824 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
05aec357
BV
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
0b2182dd 543config SPI_RSPI
e290c343 544 tristate "Renesas RSPI/QSPI controller"
3aec3166 545 depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
0b2182dd 546 help
e290c343 547 SPI driver for Renesas RSPI and QSPI blocks.
0b2182dd 548
64ff247a
II
549config SPI_QUP
550 tristate "Qualcomm SPI controller with QUP interface"
058f11c8 551 depends on ARCH_QCOM || (ARM && COMPILE_TEST)
64ff247a
II
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.
0b2182dd 561
85abfaa7
DB
562config SPI_S3C24XX
563 tristate "Samsung S3C24XX series SPI"
6d1f56aa 564 depends on ARCH_S3C24XX
da0abc27 565 select SPI_BITBANG
85abfaa7
DB
566 help
567 SPI driver for Samsung S3C24XX series ARM SoCs
568
bec0806c
BD
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
230d42d4
JB
580config SPI_S3C64XX
581 tristate "Samsung S3C64XX series type SPI"
b099b131 582 depends on (PLAT_SAMSUNG || ARCH_EXYNOS || COMPILE_TEST)
230d42d4
JB
583 help
584 SPI driver for Samsung S3C64XX and newer SoCs.
585
3ce8859e
GR
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
8051effc
MD
592config SPI_SH_MSIOF
593 tristate "SuperH MSIOF SPI controller"
51fd5090 594 depends on HAVE_CLK && HAS_DMA
6ffc84dd 595 depends on ARCH_SHMOBILE || ARCH_RENESAS || COMPILE_TEST
8051effc 596 help
746aeffd 597 SPI driver for SuperH and SH Mobile MSIOF blocks.
8051effc 598
5c05dd07
YS
599config SPI_SH
600 tristate "SuperH SPI controller"
dd1053a9 601 depends on SUPERH || COMPILE_TEST
5c05dd07
YS
602 help
603 SPI driver for SuperH SPI blocks.
604
37e46640
MD
605config SPI_SH_SCI
606 tristate "SuperH SCI SPI controller"
6291fe2a 607 depends on SUPERH
37e46640
MD
608 select SPI_BITBANG
609 help
610 SPI driver for SuperH SCI blocks.
611
d1c8bbd7
KM
612config SPI_SH_HSPI
613 tristate "SuperH HSPI controller"
3aec3166 614 depends on ARCH_RENESAS || COMPILE_TEST
d1c8bbd7
KM
615 help
616 SPI driver for SuperH HSPI blocks.
617
1cc2df9d
ZS
618config SPI_SIRF
619 tristate "CSR SiRFprimaII SPI controller"
7668c294 620 depends on SIRF_DMA
1cc2df9d
ZS
621 select SPI_BITBANG
622 help
623 SPI driver for CSR SiRFprimaII SoCs
624
7e2903cb
BW
625config SPI_SPRD_ADI
626 tristate "Spreadtrum ADI controller"
627 depends on ARCH_SPRD || COMPILE_TEST
e83f3742 628 depends on HWSPINLOCK || (COMPILE_TEST && !HWSPINLOCK)
7e2903cb
BW
629 help
630 ADI driver based on SPI for Spreadtrum SoCs.
631
dcbe0d84
AD
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
9e862375
LJ
642config SPI_ST_SSC4
643 tristate "STMicroelectronics SPI SSC-based driver"
83fefd2d 644 depends on ARCH_STI || COMPILE_TEST
9e862375
LJ
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
b5f65179
MR
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
3558fe90
MR
655config SPI_SUN6I
656 tristate "Allwinner A31 SPI controller"
657 depends on ARCH_SUNXI || COMPILE_TEST
7961656a 658 depends on RESET_CONTROLLER
3558fe90
MR
659 help
660 This enables using the SPI controller on the Allwinner A31 SoCs.
661
646781d3
MV
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
f333a331
LD
669config SPI_TEGRA114
670 tristate "NVIDIA Tegra114 SPI Controller"
dd1053a9 671 depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
f59838a0 672 depends on RESET_CONTROLLER && HAS_DMA
f333a331
LD
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
8528547b
LD
678config SPI_TEGRA20_SFLASH
679 tristate "Nvidia Tegra20 Serial flash Controller"
dd1053a9 680 depends on ARCH_TEGRA || COMPILE_TEST
ff2251e3 681 depends on RESET_CONTROLLER
8528547b
LD
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
dc4dc360
LD
687config SPI_TEGRA20_SLINK
688 tristate "Nvidia Tegra20/Tegra30 SLINK Controller"
dd1053a9 689 depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
f59838a0 690 depends on RESET_CONTROLLER && HAS_DMA
dc4dc360
LD
691 help
692 SPI driver for Nvidia Tegra20/Tegra30 SLINK Controller interface.
693
7347a6c7
JG
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
e8b17b5b 701config SPI_TOPCLIFF_PCH
92b3a5c1 702 tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI"
f05ca854 703 depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
e8b17b5b 704 help
cdbc8f04
GL
705 SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus
706 used in some x86 embedded processors.
e8b17b5b 707
92b3a5c1
TM
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.
f016aeb6 710
f2cac67d
AN
711config SPI_TXX9
712 tristate "Toshiba TXx9 SPI controller"
dd1053a9 713 depends on GPIOLIB && (CPU_TX49XX || COMPILE_TEST)
f2cac67d
AN
714 help
715 SPI driver for Toshiba TXx9 MIPS SoCs
716
b3165900
LPC
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
ae918c02 724config SPI_XILINX
c9da2e12 725 tristate "Xilinx SPI controller common module"
6d1f56aa 726 depends on HAS_IOMEM
ae918c02
AK
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
c9da2e12
RR
734 Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)"
735
d8c80d49
KP
736config SPI_XLP
737 tristate "Netlogic XLP SPI controller driver"
251831bd 738 depends on CPU_XLP || ARCH_THUNDER2 || COMPILE_TEST
d8c80d49
KP
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
6840cc29
MF
747config SPI_XTENSA_XTFPGA
748 tristate "Xtensa SPI controller for xtfpga"
be8dde46 749 depends on (XTENSA && XTENSA_PLATFORM_XTFPGA) || COMPILE_TEST
6840cc29
MF
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
dfe11a11
RW
759config SPI_ZYNQMP_GQSPI
760 tristate "Xilinx ZynqMP GQSPI controller"
2e1c75f4 761 depends on SPI_MASTER && HAS_DMA
dfe11a11
RW
762 help
763 Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC.
764
8ae12a0d
DB
765#
766# Add new SPI master controllers in alphabetical order above this line
767#
768
8ae12a0d
DB
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"
8ae12a0d 774
814a8d50
AP
775config SPI_SPIDEV
776 tristate "User mode SPI device driver support"
814a8d50
AP
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
97896195
MS
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
447aef1a
BD
792config SPI_TLE62X0
793 tristate "Infineon TLE62X0 (for power switching)"
6291fe2a 794 depends on SYSFS
447aef1a
BD
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
8ae12a0d
DB
801#
802# Add new SPI protocol masters in alphabetical order above this line
803#
804
6291fe2a
RD
805endif # SPI_MASTER
806
6c364062
GU
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
29f9ffa0
GU
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
ce70e06c
GU
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
6c364062 831endif # SPI_SLAVE
8ae12a0d 832
79d8c7a8 833endif # SPI