Lines Matching +full:spi +full:- +full:flash
1 # SPDX-License-Identifier: GPL-2.0-only
3 # SPI driver configuration
5 menuconfig SPI config
6 bool "SPI support"
10 protocol. Chips that support SPI can have data transfer rates
12 controller and a chipselect. Most SPI slaves don't support
13 dynamic device discovery; some are even write-only or read-only.
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.
21 SPI is one of a family of similar protocols using a four wire
26 if SPI
29 bool "Debug support for SPI drivers"
33 sysfs, and debugfs support in SPI controller and protocol drivers.
36 # MASTER side ... talking to discrete SPI slave chips including microcontrollers
40 # bool "SPI Master Support"
42 default SPI
44 If your system has an master-capable SPI controller (which
46 controller and the protocol drivers for the SPI slave chips
52 bool "SPI memory extension"
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.
61 comment "SPI Master Controller Drivers"
64 tristate "Airoha SPI NAND Flash Interface"
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.
74 tristate "Altera SPI Controller platform driver"
78 This is the driver for the Altera SPI Controller.
81 tristate "Altera SPI Controller core code" if COMPILE_TEST
84 "The core code for the Altera SPI Controller"
87 tristate "DFL bus driver for Altera SPI Controller"
92 Altera SPI master controller. The SPI master is connected
93 to a SPI slave to Avalon bridge in a Intel MAX BMC.
99 This enables master mode support for the SPIFC (SPI flash
103 tristate "Apple SoC SPI Controller platform driver"
106 This enables support for the SPI controller present on
108 and t600x (M1 Pro/Max/Ultra). Multiple SPI controller
110 to a single device like spi-nor (nvram), input device controller
114 tristate "Qualcomm Atheros AR934X/QCA95XX SPI controller driver"
117 This enables support for the SPI controller present on the
121 tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver"
125 This enables support for the SPI controller present on the
129 tristate "Marvell Armada 3700 SPI Controller"
132 This enables support for the SPI controller present on the
136 tristate "Aspeed flash controllers in SPI mode"
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.
147 tristate "Atmel SPI Controller"
151 This selects a driver for the Atmel SPI Controller, present on
155 tristate "Atmel USART Controller SPI driver"
159 This selects a driver for the AT91 USART Controller as SPI Master,
163 tristate "Atmel Quad SPI Controller"
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.
172 tristate "Au1550/Au1200/Au1300 SPI Controller"
177 PSC SPI controller found on Au1550, Au1200 and Au1300 series.
180 tristate "Analog Devices AXI SPI Engine controller"
184 This enables support for the Analog Devices AXI SPI Engine SPI controller.
185 It is part of the SPI Engine framework that is used in some Analog Devices
189 tristate "BCM2835 SPI controller"
193 This selects a driver for the Broadcom BCM2835 SPI master.
195 The BCM2835 contains two types of SPI master controller; the
196 "universal SPI master", and the regular SPI controller. This driver
197 is for the regular SPI controller. Slave mode operation is not also
201 tristate "BCM2835 SPI auxiliary controller"
204 This selects a driver for the Broadcom BCM2835 SPI aux master.
206 The BCM2835 contains two types of SPI master controller; the
207 "universal SPI master", and the regular SPI controller.
208 This driver is for the universal/auxiliary SPI controller.
211 tristate "Broadcom BCM63xx SPI controller"
214 Enable support for the SPI controller on the Broadcom BCM63xx SoCs.
217 tristate "Broadcom BCM63XX HS SPI controller driver"
220 This enables support for the High Speed SPI controller present on
229 Enables support for the Broadcom SPI flash and MSPI controller.
231 based platforms. This driver works for both SPI master for SPI NOR
232 flash device as well as MSPI device.
235 tristate "Broadcom BCMBCA HS SPI controller driver"
238 This enables support for the High Speed SPI controller present on
239 newer Broadcom BCMBCA SoCs. These SoCs include an updated SPI controller
244 tristate "Utilities for Bitbanging SPI host controllers"
246 With a few GPIO pins, your system can bitbang the SPI protocol.
247 Select this to get SPI support through I/O pins (GPIO, parallel
248 port, etc). Or, some systems' SPI host controller drivers use
249 this code to manage the per-word or per-transfer accesses to the
264 This same cable can be used to flash new firmware.
267 tristate "Cadence SPI controller"
269 This selects the Cadence SPI controller master driver
273 tristate "Cadence Quad SPI controller"
276 Enable support for the Cadence Quad SPI Flash controller.
278 Cadence QSPI is a specialized controller for connecting an SPI
279 Flash over 1/2/4-bit wide bus. Enable this option if you have a
281 Flash as an MTD device.
288 Enable support for the Cadence XSPI Flash controller.
290 Cadence XSPI is a specialized controller for connecting an SPI
291 Flash over up to 8-bit wide bus. Enable this option if you have a
293 Flash as an MTD device.
299 Enables the SPI controller on the CH341a USB to serial chip
302 tristate "CLPS711X host SPI controller"
305 This enables dedicated general purpose SPI/Microwire1-compatible
306 master mode interface (SSI1) for CLPS711X-based CPUs.
316 tristate "Cirrus Logic CS42L43 SPI controller"
320 This enables support for the SPI controller inside the Cirrus Logic
324 tristate "Texas Instruments DaVinci/DA8x/OMAP-L/AM1x SoC SPI controller"
328 SPI master controller for DaVinci/DA8x/OMAP-L/AM1x SPI modules.
331 tristate "DesignWare SPI controller core support"
334 general driver for SPI controller core from DesignWare
339 bool "DMA support for DW SPI controller"
342 tristate "PCI interface driver for DW SPI core"
346 tristate "Memory-mapped io interface driver for DW SPI core"
350 tristate "Baikal-T1 SPI driver for DW SPI core"
354 Baikal-T1 SoC is equipped with three DW APB SSI-based MMIO SPI
357 part of the Baikal-T1 System Boot Controller has got a very
359 chip-select and Tx/Rx FIFO with just 8 words depth available.
360 The later one is normally connected to an external SPI-nor flash
364 bool "Directly mapped Baikal-T1 Boot SPI flash support"
367 Directly mapped SPI flash memory is an interface specific to the
368 Baikal-T1 System Boot Controller. It is a 16MB MMIO region, which
373 time-critical tasks (like the SPI memory operations implemented
379 tristate "Diolan DLN-2 USB SPI adapter"
383 DLN2, a USB to SPI interface.
386 will be called spi-dln2.
389 tristate "Cirrus Logic EP93xx SPI controller"
392 This enables using the Cirrus EP93xx SPI controller in master
396 bool "Falcon SPI controller support"
399 The external bus unit (EBU) found on the FALC-ON SoC has SPI
400 emulation that is designed for serial flash access. This driver
402 support for other types of SPI peripherals.
405 tristate "FSI SPI driver"
408 This enables support for the driver for FSI bus attached SPI
422 This enables support for the Quad SPI controller in master mode.
423 Up to four flash chips can be connected on two buses with two
425 This controller does not support generic SPI messages. It only
426 supports the high-level SPI memory interface.
429 tristate "GXP SPI driver"
432 This enables support for the driver for GXP bus attached SPI
436 tristate "HiSilicon SPI Controller for Kunpeng SoCs"
439 This enables support for HiSilicon SPI controller found on
443 will be called hisi-kunpeng-spi.
446 tristate "HiSilicon SPI NOR Flash Controller for Hi16XX chipsets"
450 This enables support for HiSilicon v3xx SPI NOR flash controller
454 tristate "NXP Flex SPI controller"
458 This enables support for the Flex SPI controller in master mode.
461 This controller does not support generic SPI messages and only
462 supports the high-level SPI memory interface.
465 tristate "GPIO-based bitbanging SPI Master"
469 This simple GPIO bitbanging SPI master uses the arch-neutral GPIO
470 interface to manage MOSI, MISO, SCK, and chipselect signals. SPI
476 making it unusually slow for SPI. If your platform can inline
488 tristate "Freescale i.MX SPI controllers"
491 This enables support for the Freescale i.MX SPI controllers.
494 tristate "Ingenic SoCs SPI controller"
497 This enables support for the Ingenic SoCs SPI controller.
500 will be called spi-ingenic.
506 tristate "Intel PCH/PCU SPI flash PCI driver"
512 This enables PCI support for the Intel PCH/PCU SPI controller in
521 will be called spi-intel-pci.
524 tristate "Intel PCH/PCU SPI flash platform driver (DANGEROUS)"
529 This enables platform support for the Intel PCH/PCU SPI
533 exposes the low level SPI-NOR opcodes to the software. Using
537 SPI flash may render the system unbootable.
540 will be called spi-intel-platform.
543 tristate "J-Core SPI Master"
546 This enables support for the SPI master controller in the J-Core
550 tristate "Support for KEBA SPI master type 2 hardware"
555 This driver supports KEBA SPI master type 2 FPGA implementation,
559 will be called spi-kspi2.
575 tristate "Loongson SPI Controller PCI Driver Support"
579 This bus driver supports the Loongson SPI hardware controller in
581 register SPI device resources.
582 Say Y or M here if you want to use the SPI controller on
586 tristate "Loongson SPI Controller Platform Driver Support"
590 This bus driver supports the Loongson SPI hardware controller in
592 register SPI device resources.
593 Say Y or M here if you want to use the SPI controller on
597 tristate "ICP DAS LP-8841 SPI Controller for RTC"
600 This driver provides an SPI master device to drive Maxim
601 DS-1302 real time clock.
604 LP-8x4x industrial computer.
607 tristate "Freescale MPC52xx SPI (non-PSC) controller support"
610 This drivers supports the MPC52xx SPI controller in master SPI
614 tristate "Freescale MPC52xx PSC SPI controller"
618 Controller in master SPI mode.
621 tristate "Freescale MPC512x PSC SPI controller"
625 Controller in SPI master mode.
636 tristate "Freescale SPI controller and Aeroflex Gaisler GRLIB SPI controller"
641 This enables using the Freescale SPI controllers in master mode.
644 This also enables using the Aeroflex Gaisler GRLIB SPI controller in
664 tristate "Intel La Jolla Cove Adapter SPI support"
668 Select this option to enable SPI driver for the Intel
672 will be called spi-ljca.
679 This enables master mode support for the SPICC (SPI communication
687 This enables master mode support for the SPIFC (SPI flash
691 tristate "Microchip FPGA SPI controllers"
694 This enables the SPI driver for Microchip FPGA SPI controllers.
697 If built as a module, it will be called spi-microchip-core.
706 If built as a module, it will be called spi-microchip-core-qspi.
709 tristate "MediaTek SPI controller"
712 This selects the MediaTek(R) SPI bus driver.
713 If you want to use MediaTek(R) SPI interface,
715 SPI drivers for Mediatek MT65XX and MT81XX series ARM SoCs.
718 tristate "MediaTek MT7621 SPI Controller"
721 This selects a driver for the MediaTek MT7621 SPI Controller.
724 tristate "MediaTek SPI NOR controller"
727 This enables support for SPI NOR controller found on MediaTek
728 ARM SoCs. This is a controller specifically for SPI NOR flash.
729 It can perform generic SPI transfers up to 6 bytes via generic
730 SPI interface as well as several SPI NOR specific instructions
731 via SPI MEM interface.
734 tristate "MediaTek SPI NAND Flash Interface"
738 This enables support for SPI-NAND mode on the MediaTek NAND
739 Flash Interface found on MediaTek ARM SoCs. This controller
740 is implemented as a SPI-MEM controller with pipelined ECC
744 tristate "Nuvoton WPCM450 Flash Interface Unit"
748 This enables support got the Flash Interface Unit SPI controller
751 This driver does not support generic SPI. The implementation only
752 supports the spi-mem interface.
755 tristate "Nuvoton NPCM FLASH Interface Unit"
759 This enables support for the Flash Interface Unit SPI controller
761 This driver does not support generic SPI. The implementation only
762 supports spi-mem interface.
769 Peripheral SPI controller in master mode.
772 tristate "Lantiq SSC SPI controller"
775 This driver supports the Lantiq SSC SPI controller in master
780 tristate "OpenCores tiny SPI"
784 This is the driver for OpenCores tiny SPI master controller.
787 tristate "Cavium OCTEON SPI controller"
790 SPI host driver for the hardware found on some Cavium OCTEON
805 SPI master controller for OMAP24XX and later Multichannel SPI
812 QSPI master controller for DRA7xxx used for flash devices.
817 tristate "Orion SPI master"
820 This enables using the SPI master controller on the Orion
824 tristate "PCI1XXXX SPI Bus support"
827 Say "yes" to Enable the SPI Bus support for the PCI1xxxx card
828 This is a PCI to SPI Bus driver
830 called as spi-pci1xxxx.
833 tristate "Microchip PIC32 series SPI"
836 SPI driver for Microchip PIC32 SPI master controller.
839 tristate "Microchip PIC32 Quad SPI driver"
842 SPI driver for PIC32 Quad SPI controller.
856 tristate "PPC4xx SPI Controller"
860 This selects a driver for the PPC4xx SPI Controller.
863 tristate "PXA2xx SSP SPI master"
867 This enables using a PXA2xx or Sodaville SSP port as a SPI master
874 tristate "Realtek SPI-NAND Flash Controller"
878 This enables support for the SPI-NAND Flash controller on
881 This driver does not support generic SPI. The implementation
882 only supports the spi-mem interface.
885 tristate "Rockchip SPI controller driver"
888 This selects a driver for Rockchip SPI controller.
891 RK3066, RK3188 and RK3288 families of SPI controller.
892 Rockchip SPI controller support DMA transport and PIO mode.
893 The main usecase of this controller is to use spi flash as boot
897 tristate "Rockchip Serial Flash Controller (SFC)"
901 This enables support for Rockchip serial flash controller. This
902 is a specialized controller used to access SPI flash on some
909 tristate "Mikrotik RB4XX SPI master"
912 SPI controller driver for the Mikrotik RB4xx series boards.
915 tristate "Renesas RPC-IF SPI driver"
918 SPI driver for Renesas R-Car Gen3 or RZ/G2 RPC-IF.
924 SPI driver for Renesas RSPI and QSPI blocks.
930 SPI driver for Renesas RZ/V2M Clocked Serial Interface (CSI).
931 CSI supports both SPI host and SPI target roles.
937 QSPI(Quad SPI) driver for Qualcomm QSPI controller.
944 QPIC_SNAND (QPIC SPI NAND) driver for Qualcomm QPIC controller.
949 tristate "Qualcomm SPI controller with QUP interface"
954 for serial peripheral interface (SPI) mini-core. SPI in master
962 tristate "Qualcomm GENI based SPI controller"
965 This driver supports GENI serial engine based SPI controller in
967 yes to this option, support will be included for the built-in SPI
971 will be called spi-geni-qcom.
974 tristate "Samsung S3C64XX/Exynos SoC series type SPI"
977 SPI driver for Samsung S3C64XX, S5Pv210 and Exynos SoCs.
981 tristate "NXP SC18IS602/602B/603 I2C to SPI bridge"
984 SPI driver for NXP SC18IS602/602B/603 I2C to SPI bridge.
987 tristate "SuperH MSIOF SPI controller"
991 SPI driver for SuperH and SH Mobile MSIOF blocks.
994 tristate "SuperH SPI controller"
997 SPI driver for SuperH SPI blocks.
1000 tristate "SuperH SCI SPI controller"
1004 SPI driver for SuperH SCI blocks.
1010 SPI driver for SuperH HSPI blocks.
1013 tristate "SiFive SPI controller"
1016 This exposes the SPI controller IP from SiFive.
1019 tristate "MediaTek SPI slave device"
1023 This selects the MediaTek(R) SPI slave device driver.
1024 If you want to use MediaTek(R) SPI slave interface,
1026 SPI slave drivers for Mediatek MT27XX series ARM SoCs.
1029 tristate "Socionext F_OSPI SPI flash controller"
1034 for connecting an SPI Flash memory over up to 8-bit wide bus.
1038 tristate "SG2044 SPI NOR Controller"
1041 This enables support for the SG2044 SPI NOR controller,
1047 tristate "Spreadtrum SPI controller"
1050 SPI driver for Spreadtrum SoCs.
1057 ADI driver based on SPI for Spreadtrum SoCs.
1060 tristate "STMicroelectronics STM32 SPI controller"
1064 SPI driver for STMicroelectronics STM32 SoCs.
1066 STM32 SPI controller supports DMA and PIO modes. When DMA
1071 tristate "STMicroelectronics STM32 OCTO SPI controller"
1076 This enables support for the Octo SPI controller in master mode.
1077 This driver does not support generic SPI. The implementation only
1078 supports spi-mem interface.
1081 tristate "STMicroelectronics STM32 QUAD SPI controller"
1086 This enables support for the Quad SPI controller in master mode.
1087 This driver does not support generic SPI. The implementation only
1088 supports spi-mem interface.
1091 tristate "STMicroelectronics SPI SSC-based driver"
1094 STMicroelectronics SoCs support for SPI. If you say yes to
1095 this option, support will be included for the SSC driven SPI.
1098 tristate "Allwinner A10 SoCs SPI controller"
1101 SPI driver for Allwinner sun4i, sun5i and sun7i SoCs
1104 tristate "Allwinner A31 SPI controller"
1108 This enables using the SPI controller on the Allwinner A31 SoCs.
1111 tristate "Sunplus SP7021 SPI controller"
1114 This enables Sunplus SP7021 SPI controller driver on the SP7021 SoCs.
1116 called as spi-sunplus-sp7021.
1122 tristate "Socionext's SynQuacer HighSpeed SPI controller"
1125 SPI driver for Socionext's High speed SPI controller which provides
1127 that use the de-facto standard SPI protocol.
1129 It also supports the new dual-bit and quad-bit SPI protocol.
1132 tristate "Macronix MX25F0A SPI controller"
1136 This selects the Macronix MX25F0A SPI controller driver.
1139 tristate "Freescale MXS SPI controller"
1143 SPI driver for Freescale MXS devices.
1151 controller is different from the SPI controller and is available
1155 tristate "NVIDIA Tegra114 SPI Controller"
1159 SPI driver for NVIDIA Tegra114 SPI Controller interface. This controller
1160 is different than the older SoCs SPI controller and also register interface
1164 tristate "Nvidia Tegra20 Serial flash Controller"
1168 SPI driver for Nvidia Tegra20 Serial flash Controller interface.
1169 The main usecase of this controller is to use spi flash as boot
1177 SPI driver for Nvidia Tegra20/Tegra30 SLINK Controller interface.
1180 tristate "Cavium ThunderX SPI controller"
1183 SPI host driver for the hardware found on Cavium ThunderX
1187 tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI"
1190 SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus
1197 tristate "Socionext UniPhier SPI Controller"
1201 This enables a driver for the Socionext UniPhier SoC SCSSI SPI controller.
1203 UniPhier SoCs have SCSSI and MCSSI SPI controllers.
1211 tristate "Analog Devices AD-FMCOMMS1-EBZ SPI-I2C-bridge driver"
1214 Support for the SPI-I2C bridge found on the Analog Devices
1215 AD-FMCOMMS1-EBZ board.
1218 tristate "Xilinx SPI controller common module"
1222 This exposes the SPI controller IP from the Xilinx EDK.
1224 See the "OPB Serial Peripheral Interface (SPI) (v1.00e)"
1227 Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)"
1230 tristate "Cavium ThunderX2 SPI controller driver"
1233 Enable support for the SPI controller on the Cavium ThunderX2.
1240 tristate "Xtensa SPI controller for xtfpga"
1244 SPI driver for xtfpga SPI master controller.
1246 This simple SPI master controller is built into xtfpga bitstreams
1248 16 bit words in SPI mode 0, automatically asserting CS on transfer
1256 This enables support for the Zynq Quad SPI controller
1258 This controller only supports SPI memory interface.
1265 This controller only supports SPI memory interface.
1268 tristate "AMD SPI controller"
1273 Enables SPI controller driver for AMD SoC.
1276 # Add new SPI master controllers in alphabetical order above this line
1279 comment "SPI Multiplexer support"
1282 tristate "SPI multiplexer support"
1285 This adds support for SPI multiplexers. Each SPI mux will be
1286 accessible as a SPI controller, the devices behind the mux will appear
1288 select one or more specific mux-controller drivers.
1291 # There are lots of SPI device types, with sensors and memory
1294 comment "SPI Protocol Masters"
1297 tristate "User mode SPI device driver support"
1299 This supports user mode SPI protocol drivers.
1302 tristate "spi loopback test framework support"
1305 This enables the SPI loopback testing framework driver
1314 SPI driver for Infineon TLE62X0 series line driver chips,
1320 # Add new SPI protocol masters in alphabetical order above this line
1326 # SLAVE side ... listening to other SPI masters
1330 bool "SPI slave protocol handlers"
1332 If your system has a slave-capable SPI controller, you can enable
1338 tristate "SPI slave handler reporting boot up time"
1340 SPI slave handler responding with the time of reception of the last
1341 SPI message.
1344 tristate "SPI slave handler controlling system state"
1346 SPI slave handler to allow remote control of system reboot, power
1356 comment "SPI Offload triggers"
1359 tristate "SPI offload trigger using PWM"
1362 Generic SPI offload trigger implemented using PWM output.
1366 endif # SPI