Adam Ford | 4e96ff8 | 2018-04-15 13:51:26 -0400 | [diff] [blame] | 1 | menuconfig SPI |
| 2 | bool "SPI Support" |
Jagan Teki | 38d91fe | 2019-10-16 18:04:13 +0530 | [diff] [blame] | 3 | help |
| 4 | The "Serial Peripheral Interface" is a low level synchronous |
| 5 | protocol. Chips that support SPI can have data transfer rates |
| 6 | up to several tens of Mbit/sec. Chips are addressed with a |
| 7 | controller and a chipselect. Most SPI slaves don't support |
| 8 | dynamic device discovery; some are even write-only or read-only. |
| 9 | |
| 10 | SPI is widely used by microcontrollers to talk with sensors, |
| 11 | eeprom and flash memory, codecs and various other controller |
| 12 | chips, analog to digital (and d-to-a) converters, and more. |
| 13 | MMC and SD cards can be accessed using SPI protocol; and for |
| 14 | DataFlash cards used in MMC sockets, SPI must always be used. |
| 15 | |
| 16 | SPI is one of a family of similar protocols using a four wire |
| 17 | interface (select, clock, data in, data out) including Microwire |
| 18 | (half duplex), SSP, SSI, and PSP. This driver framework should |
| 19 | work with most such devices and controllers. |
Adam Ford | 4e96ff8 | 2018-04-15 13:51:26 -0400 | [diff] [blame] | 20 | |
| 21 | if SPI |
Jagan Teki | bfd3f8b | 2015-06-27 22:35:14 +0530 | [diff] [blame] | 22 | |
Masahiro Yamada | 57ad8ee | 2014-10-23 22:26:09 +0900 | [diff] [blame] | 23 | config DM_SPI |
| 24 | bool "Enable Driver Model for SPI drivers" |
| 25 | depends on DM |
| 26 | help |
Simon Glass | d8b771d | 2015-02-05 21:41:35 -0700 | [diff] [blame] | 27 | Enable driver model for SPI. The SPI slave interface |
| 28 | (spi_setup_slave(), spi_xfer(), etc.) is then implemented by |
| 29 | the SPI uclass. Drivers provide methods to access the SPI |
| 30 | buses that they control. The uclass interface is defined in |
| 31 | include/spi.h. The existing spi_slave structure is attached |
| 32 | as 'parent data' to every slave on each bus. Slaves |
| 33 | typically use driver-private data instead of extending the |
| 34 | spi_slave structure. |
Simon Glass | 4b322d3 | 2015-03-06 13:19:05 -0700 | [diff] [blame] | 35 | |
Boris Brezillon | 32473fe | 2018-08-16 17:30:11 +0200 | [diff] [blame] | 36 | config SPI_MEM |
| 37 | bool "SPI memory extension" |
| 38 | help |
| 39 | Enable this option if you want to enable the SPI memory extension. |
| 40 | This extension is meant to simplify interaction with SPI memories |
| 41 | by providing an high-level interface to send memory-like commands. |
| 42 | |
Chin-Ting Kuo | a891be8 | 2022-08-19 17:01:08 +0800 | [diff] [blame] | 43 | config SPI_DIRMAP |
| 44 | bool "SPI direct mapping" |
| 45 | depends on SPI_MEM |
| 46 | help |
| 47 | Enable the SPI direct mapping API. Most modern SPI controllers can |
| 48 | directly map a SPI memory (or a portion of the SPI memory) in the CPU |
| 49 | address space. Most of the time this brings significant performance |
| 50 | improvements as it automates the whole process of sending SPI memory |
| 51 | operations every time a new region is accessed. |
| 52 | |
Vignesh R | 4e341d3 | 2019-02-05 11:29:15 +0530 | [diff] [blame] | 53 | if DM_SPI |
| 54 | |
Thomas Chou | c589954 | 2015-10-14 08:33:34 +0800 | [diff] [blame] | 55 | config ALTERA_SPI |
| 56 | bool "Altera SPI driver" |
| 57 | help |
| 58 | Enable the Altera SPI driver. This driver can be used to |
| 59 | access the SPI NOR flash on platforms embedding this Altera |
| 60 | IP core. Please find details on the "Embedded Peripherals IP |
| 61 | User Guide" of Altera. |
| 62 | |
Mark Kettenis | 0c3e924 | 2022-01-23 16:48:12 +0100 | [diff] [blame] | 63 | config APPLE_SPI |
| 64 | bool "Apple SPI driver" |
| 65 | default y if ARCH_APPLE |
| 66 | help |
| 67 | Enable the Apple SPI driver. This driver can be used to |
| 68 | access the SPI flash and keyboard on machines based on Apple SoCs. |
| 69 | |
Jagan Teki | 353dffb | 2018-03-07 10:33:33 +0530 | [diff] [blame] | 70 | config ATCSPI200_SPI |
| 71 | bool "Andestech ATCSPI200 SPI driver" |
| 72 | help |
| 73 | Enable the Andestech ATCSPI200 SPI driver. This driver can be |
| 74 | used to access the SPI flash on AE3XX and AE250 platforms embedding |
| 75 | this Andestech IP core. |
| 76 | |
Wills Wang | f502148 | 2016-03-16 16:59:58 +0800 | [diff] [blame] | 77 | config ATH79_SPI |
| 78 | bool "Atheros SPI driver" |
| 79 | depends on ARCH_ATH79 |
| 80 | help |
| 81 | Enable the Atheros ar7xxx/ar9xxx SoC SPI driver, it was used |
| 82 | to access SPI NOR flash and other SPI peripherals. This driver |
| 83 | uses driver model and requires a device tree binding to operate. |
| 84 | please refer to doc/device-tree-bindings/spi/spi-ath79.txt. |
| 85 | |
Tudor Ambarus | 88151bb | 2019-06-18 08:51:50 +0000 | [diff] [blame] | 86 | config ATMEL_QSPI |
| 87 | bool "Atmel Quad SPI Controller" |
| 88 | depends on ARCH_AT91 |
| 89 | help |
| 90 | Enable the Atmel Quad SPI controller in master mode. This driver |
| 91 | does not support generic SPI. The implementation supports only the |
| 92 | spi-mem interface. |
| 93 | |
Wenyou Yang | da8ee98 | 2016-10-28 14:17:49 +0800 | [diff] [blame] | 94 | config ATMEL_SPI |
| 95 | bool "Atmel SPI driver" |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 96 | depends on ARCH_AT91 |
Jagan Teki | 1d831b6 | 2018-03-14 18:46:44 +0530 | [diff] [blame] | 97 | default y if ARCH_AT91 |
Wenyou Yang | da8ee98 | 2016-10-28 14:17:49 +0800 | [diff] [blame] | 98 | help |
| 99 | This enables driver for the Atmel SPI Controller, present on |
Andy Shevchenko | 8cb5cdd | 2017-07-05 16:25:22 +0300 | [diff] [blame] | 100 | many AT91 (ARM) chips. This driver can be used to access |
| 101 | the SPI Flash, such as AT25DF321. |
Wenyou Yang | da8ee98 | 2016-10-28 14:17:49 +0800 | [diff] [blame] | 102 | |
Álvaro Fernández Rojas | 55d96ec | 2018-01-20 02:13:38 +0100 | [diff] [blame] | 103 | config BCM63XX_HSSPI |
| 104 | bool "BCM63XX HSSPI driver" |
William Zhang | 96c65fa | 2023-06-07 16:37:01 -0700 | [diff] [blame] | 105 | depends on (ARCH_BMIPS || ARCH_BCMBCA) |
Álvaro Fernández Rojas | 55d96ec | 2018-01-20 02:13:38 +0100 | [diff] [blame] | 106 | help |
William Zhang | 96c65fa | 2023-06-07 16:37:01 -0700 | [diff] [blame] | 107 | Enable the BCM63XX HSSPI driver. This driver can be used to |
Álvaro Fernández Rojas | 55d96ec | 2018-01-20 02:13:38 +0100 | [diff] [blame] | 108 | access the SPI NOR flash on platforms embedding this Broadcom |
| 109 | SPI core. |
| 110 | |
William Zhang | 7ff5855 | 2023-06-07 16:37:05 -0700 | [diff] [blame] | 111 | config BCMBCA_HSSPI |
| 112 | bool "BCMBCA HSSPI driver" |
| 113 | depends on ARCH_BCMBCA && HAVE_SPI_CS_CTRL |
| 114 | help |
| 115 | This enables support for the High Speed SPI controller present on |
| 116 | newer Broadcom BCMBCA SoCs. These SoCs include an updated SPI controller |
| 117 | that adds the capability to allow the driver to control chip select |
| 118 | explicitly. |
| 119 | |
Álvaro Fernández Rojas | cc243c6 | 2018-01-23 17:14:58 +0100 | [diff] [blame] | 120 | config BCM63XX_SPI |
| 121 | bool "BCM6348 SPI driver" |
| 122 | depends on ARCH_BMIPS |
| 123 | help |
| 124 | Enable the BCM6348/BCM6358 SPI driver. This driver can be used to |
| 125 | access the SPI NOR flash on platforms embedding these Broadcom |
| 126 | SPI cores. |
| 127 | |
Thomas Fitzsimmons | 919646d | 2018-06-08 17:59:45 -0400 | [diff] [blame] | 128 | config BCMSTB_SPI |
| 129 | bool "BCMSTB SPI driver" |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 130 | depends on ARCH_BCMSTB |
Thomas Fitzsimmons | 919646d | 2018-06-08 17:59:45 -0400 | [diff] [blame] | 131 | help |
| 132 | Enable the Broadcom set-top box SPI driver. This driver can |
| 133 | be used to access the SPI flash on platforms embedding this |
| 134 | Broadcom SPI core. |
| 135 | |
Pengpeng Chen | 8f04b52 | 2020-07-30 12:52:45 -0700 | [diff] [blame] | 136 | config CORTINA_SFLASH |
| 137 | bool "Cortina-Access Serial Flash controller driver" |
| 138 | depends on DM_SPI && SPI_MEM |
| 139 | help |
| 140 | Enable the Cortina-Access Serial Flash controller driver. This driver |
| 141 | can be used to access the SPI NOR/NAND flash on platforms embedding this |
| 142 | Cortina-Access IP core. |
| 143 | |
Jagan Teki | 15a932c | 2015-06-27 22:37:00 +0530 | [diff] [blame] | 144 | config CADENCE_QSPI |
| 145 | bool "Cadence QSPI driver" |
| 146 | help |
| 147 | Enable the Cadence Quad-SPI (QSPI) driver. This driver can be |
| 148 | used to access the SPI NOR flash on platforms embedding this |
| 149 | Cadence IP core. |
| 150 | |
Tom Rini | 3fb5b2f | 2022-03-30 18:07:23 -0400 | [diff] [blame] | 151 | config HAS_CQSPI_REF_CLK |
| 152 | bool "Cadence QSPI static reference clock" |
| 153 | depends on CADENCE_QSPI |
| 154 | |
| 155 | config CQSPI_REF_CLK |
| 156 | int "Cadence QSPI reference clock value in Hz" |
| 157 | depends on HAS_CQSPI_REF_CLK |
| 158 | |
T Karthik Reddy | 73701e7 | 2022-05-12 04:05:32 -0600 | [diff] [blame] | 159 | config CADENCE_OSPI_VERSAL |
| 160 | bool "Configure Versal OSPI" |
Michal Simek | 71bfd39 | 2024-05-29 16:48:01 +0200 | [diff] [blame] | 161 | depends on (ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2) && CADENCE_QSPI |
T Karthik Reddy | 73701e7 | 2022-05-12 04:05:32 -0600 | [diff] [blame] | 162 | imply DM_GPIO |
| 163 | help |
| 164 | This option is used to enable Versal OSPI DMA operations which |
| 165 | are used for ospi flash read using cadence qspi controller. |
| 166 | |
Angelo Dureghello | 72e9be3 | 2019-03-13 21:46:46 +0100 | [diff] [blame] | 167 | config CF_SPI |
| 168 | bool "ColdFire SPI driver" |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 169 | depends on M68K |
Angelo Dureghello | 72e9be3 | 2019-03-13 21:46:46 +0100 | [diff] [blame] | 170 | help |
| 171 | Enable the ColdFire SPI driver. This driver can be used on |
| 172 | some m68k SoCs. |
| 173 | |
Kongyang Liu | 61c9f28 | 2024-04-20 15:08:23 +0800 | [diff] [blame] | 174 | config CV1800B_SPIF |
| 175 | bool "Sophgo cv1800b SPI Flash Controller driver" |
| 176 | depends on SPI_MEM |
| 177 | help |
| 178 | Enable the Sophgo cv1800b SPI Flash Controller driver. This driver |
| 179 | can be used to access the SPI NOR flash on platforms embedding this |
| 180 | Sophgo cv1800b IP core. |
| 181 | |
Jagan Teki | 97c18ed | 2020-05-26 13:34:26 +0530 | [diff] [blame] | 182 | config DAVINCI_SPI |
| 183 | bool "Davinci & Keystone SPI driver" |
| 184 | depends on ARCH_DAVINCI || ARCH_KEYSTONE |
| 185 | help |
| 186 | Enable the Davinci SPI driver |
| 187 | |
Jagan Teki | 15a932c | 2015-06-27 22:37:00 +0530 | [diff] [blame] | 188 | config DESIGNWARE_SPI |
| 189 | bool "Designware SPI driver" |
| 190 | help |
| 191 | Enable the Designware SPI driver. This driver can be used to |
| 192 | access the SPI NOR flash on platforms embedding this Designware |
| 193 | IP core. |
| 194 | |
Jagan Teki | 6274bf9 | 2015-06-27 15:32:19 +0530 | [diff] [blame] | 195 | config EXYNOS_SPI |
| 196 | bool "Samsung Exynos SPI driver" |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 197 | depends on ARCH_EXYNOS |
Jagan Teki | 6274bf9 | 2015-06-27 15:32:19 +0530 | [diff] [blame] | 198 | help |
| 199 | Enable the Samsung Exynos SPI driver. This driver can be used to |
| 200 | access the SPI NOR flash on platforms embedding this Samsung |
| 201 | Exynos IP core. |
| 202 | |
Jagan Teki | ae30c02 | 2015-06-27 14:17:06 +0530 | [diff] [blame] | 203 | config FSL_DSPI |
| 204 | bool "Freescale DSPI driver" |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 205 | depends on FSL_LAYERSCAPE || ARCH_VF610 || ARCH_LS1021A || ARCH_LS1028A |
Jagan Teki | ae30c02 | 2015-06-27 14:17:06 +0530 | [diff] [blame] | 206 | help |
| 207 | Enable the Freescale DSPI driver. This driver can be used to |
| 208 | access the SPI NOR flash and SPI Data flash on platforms embedding |
| 209 | this Freescale DSPI IP core. LS102xA and Colibri VF50/VF61 platforms |
| 210 | use this driver. |
| 211 | |
Jagan Teki | 72cedd4 | 2020-05-26 00:24:19 +0530 | [diff] [blame] | 212 | config FSL_QSPI |
| 213 | bool "Freescale QSPI driver" |
| 214 | imply SPI_FLASH_BAR |
| 215 | help |
| 216 | Enable the Freescale Quad-SPI (QSPI) driver. This driver can be |
| 217 | used to access the SPI NOR flash on platforms embedding this |
| 218 | Freescale IP core. |
| 219 | |
Ye Li | d7e3c9a | 2020-06-09 00:59:06 -0700 | [diff] [blame] | 220 | config FSL_QSPI_AHB_FULL_MAP |
| 221 | bool "Use full AHB memory map space" |
| 222 | depends on FSL_QSPI |
| 223 | default y if ARCH_MX6 || ARCH_MX7 || ARCH_MX7ULP || ARCH_IMX8M |
| 224 | help |
| 225 | Enable the Freescale QSPI driver to use full AHB memory map space for |
| 226 | flash access. |
| 227 | |
Nick Hawkins | 2ccea3a | 2022-06-08 16:21:36 -0500 | [diff] [blame] | 228 | config GXP_SPI |
| 229 | bool "SPI driver for GXP" |
| 230 | imply SPI_FLASH_BAR |
| 231 | help |
| 232 | Enable support for SPI on GXP. |
| 233 | |
Jagan Teki | 3872b7c | 2015-06-27 15:43:27 +0530 | [diff] [blame] | 234 | config ICH_SPI |
| 235 | bool "Intel ICH SPI driver" |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 236 | depends on X86 |
Jagan Teki | 3872b7c | 2015-06-27 15:43:27 +0530 | [diff] [blame] | 237 | help |
| 238 | Enable the Intel ICH SPI driver. This driver can be used to |
| 239 | access the SPI NOR flash on platforms embedding this Intel |
| 240 | ICH IP core. |
| 241 | |
Rayagonda Kokatanur | 1969f2b | 2022-02-09 14:16:13 -0800 | [diff] [blame] | 242 | config IPROC_QSPI |
| 243 | bool "Broadcom iProc QSPI Flash Controller driver" |
| 244 | help |
| 245 | Enable Broadcom iProc QSPI Flash Controller driver. |
| 246 | This driver can be used to access the SPI NOR flash. |
| 247 | |
Bhargav Shah | 83a2631 | 2020-06-18 23:15:13 +0530 | [diff] [blame] | 248 | config KIRKWOOD_SPI |
| 249 | bool "Marvell Kirkwood SPI Driver" |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 250 | depends on ARCH_KIRKWOOD || ARCH_MVEBU |
Bhargav Shah | 83a2631 | 2020-06-18 23:15:13 +0530 | [diff] [blame] | 251 | help |
| 252 | Enable support for SPI on various Marvell SoCs, such as |
| 253 | Kirkwood and Armada 375. |
| 254 | |
Neil Armstrong | 5c16217 | 2018-11-22 11:01:05 +0100 | [diff] [blame] | 255 | config MESON_SPIFC |
| 256 | bool "Amlogic Meson SPI Flash Controller driver" |
| 257 | depends on ARCH_MESON |
| 258 | help |
| 259 | Enable the Amlogic Meson SPI Flash Controller SPIFC) driver. |
| 260 | This driver can be used to access the SPI NOR flash chips on |
| 261 | Amlogic Meson SoCs. |
| 262 | |
Padmarao Begari | 32678b0 | 2022-10-27 11:32:01 +0530 | [diff] [blame] | 263 | config MICROCHIP_COREQSPI |
| 264 | bool "Microchip FPGA QSPI Controller driver" |
| 265 | help |
| 266 | Enable the QSPI driver for Microchip FPGA QSPI controllers. |
| 267 | This driver can be used on Polarfire SoC. |
| 268 | |
Igor Prusov | 3f02775 | 2023-10-25 01:51:39 +0300 | [diff] [blame] | 269 | config MESON_SPIFC_A1 |
| 270 | bool "Amlogic Meson A1 SPI Flash Controller driver" |
| 271 | depends on ARCH_MESON |
| 272 | help |
| 273 | Enable the Amlogic A1 SPI Flash Controller (SPIFC) driver. |
| 274 | This driver can be used to access the SPI NOR/NAND flash chips |
| 275 | with STR mode frequency up to 98MHz. Dual and quad modes are |
| 276 | supported by controller. |
| 277 | |
Christophe Leroy | 847362b | 2018-11-21 08:51:57 +0000 | [diff] [blame] | 278 | config MPC8XX_SPI |
| 279 | bool "MPC8XX SPI Driver" |
Christophe Leroy | bc6a457 | 2024-04-02 19:20:07 +0200 | [diff] [blame] | 280 | depends on MPC8xx && DM_GPIO |
Christophe Leroy | 847362b | 2018-11-21 08:51:57 +0000 | [diff] [blame] | 281 | help |
| 282 | Enable support for SPI on MPC8XX |
| 283 | |
Jagan Teki | 52515d5 | 2019-04-29 01:58:53 +0530 | [diff] [blame] | 284 | config MPC8XXX_SPI |
| 285 | bool "MPC8XXX SPI Driver" |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 286 | depends on MPC83xx || MPC85xx |
Jagan Teki | 52515d5 | 2019-04-29 01:58:53 +0530 | [diff] [blame] | 287 | help |
| 288 | Enable support for SPI on the MPC8XXX PowerPC SoCs. |
| 289 | |
Jagan Teki | 72cedd4 | 2020-05-26 00:24:19 +0530 | [diff] [blame] | 290 | config MSCC_BB_SPI |
| 291 | bool "MSCC bitbang SPI driver" |
| 292 | depends on SOC_VCOREIII |
| 293 | help |
| 294 | Enable MSCC bitbang SPI driver. This driver can be used on |
| 295 | MSCC SOCs. |
| 296 | |
developer | 2dfdc3f | 2020-11-12 16:36:42 +0800 | [diff] [blame] | 297 | config MT7620_SPI |
| 298 | bool "MediaTek MT7620 SPI driver" |
| 299 | depends on SOC_MT7620 |
| 300 | help |
| 301 | Enable the MT7620 SPI driver. This driver can be used to access |
| 302 | generic SPI devices on MediaTek MT7620 SoC. |
| 303 | |
Stefan Roese | 8adb8cb | 2018-08-16 10:48:48 +0200 | [diff] [blame] | 304 | config MT7621_SPI |
| 305 | bool "MediaTek MT7621 SPI driver" |
developer | 005064e | 2022-05-20 11:23:08 +0800 | [diff] [blame] | 306 | depends on SOC_MT7621 || SOC_MT7628 |
Stefan Roese | 8adb8cb | 2018-08-16 10:48:48 +0200 | [diff] [blame] | 307 | help |
| 308 | Enable the MT7621 SPI driver. This driver can be used to access |
| 309 | the SPI NOR flash on platforms embedding this Ralink / MediaTek |
| 310 | SPI core, like MT7621/7628/7688. |
| 311 | |
developer | f33cf3c | 2021-01-20 15:31:33 +0800 | [diff] [blame] | 312 | config MTK_SNOR |
| 313 | bool "Mediatek SPI-NOR controller driver" |
| 314 | depends on SPI_MEM |
| 315 | help |
| 316 | Enable the Mediatek SPINOR controller driver. This driver has |
| 317 | better read/write performance with NOR. |
| 318 | |
developer | 8a78b4d | 2019-07-22 17:09:01 +0530 | [diff] [blame] | 319 | config MTK_SNFI_SPI |
| 320 | bool "Mediatek SPI memory controller driver" |
| 321 | depends on SPI_MEM |
| 322 | help |
| 323 | Enable the Mediatek SPI memory controller driver. This driver is |
| 324 | originally based on the MediaTek SNFI IP core. It can only be |
| 325 | used to access SPI memory devices like SPI-NOR or SPI-NAND on |
| 326 | platforms embedding this IP core, like MT7622/M7629. |
| 327 | |
developer | 2420220 | 2022-09-09 19:59:45 +0800 | [diff] [blame] | 328 | config MTK_SPIM |
| 329 | bool "Mediatek SPI-MEM master controller driver" |
| 330 | depends on SPI_MEM |
| 331 | help |
| 332 | Enable MediaTek SPI-MEM master controller driver. This driver mainly |
| 333 | supports SPI flashes. You can use single, dual or quad mode |
| 334 | transmission on this controller. |
| 335 | |
Stefan Roese | 9ec1c78 | 2016-05-19 15:56:44 +0200 | [diff] [blame] | 336 | config MVEBU_A3700_SPI |
| 337 | bool "Marvell Armada 3700 SPI driver" |
Marek Behún | 0afd934 | 2018-04-24 17:21:26 +0200 | [diff] [blame] | 338 | select CLK_ARMADA_3720 |
Stefan Roese | 9ec1c78 | 2016-05-19 15:56:44 +0200 | [diff] [blame] | 339 | help |
| 340 | Enable the Marvell Armada 3700 SPI driver. This driver can be |
| 341 | used to access the SPI NOR flash on platforms embedding this |
| 342 | Marvell IP core. |
| 343 | |
Jagan Teki | 2174d85 | 2020-05-25 23:24:23 +0530 | [diff] [blame] | 344 | config MXS_SPI |
| 345 | bool "MXS SPI Driver" |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 346 | depends on MACH_IMX |
Jagan Teki | 2174d85 | 2020-05-25 23:24:23 +0530 | [diff] [blame] | 347 | help |
| 348 | Enable the MXS SPI controller driver. This driver can be used |
| 349 | on the i.MX23 and i.MX28 SoCs. |
| 350 | |
Zhengxun | c93136b | 2021-06-23 17:15:15 +0000 | [diff] [blame] | 351 | config SPI_MXIC |
| 352 | bool "Macronix MX25F0A SPI controller" |
| 353 | help |
| 354 | Enable the Macronix MX25F0A SPI controller driver. This driver |
| 355 | can be used to access the SPI flash on platforms embedding |
| 356 | this Macronix IP core. |
| 357 | |
Jim Liu | 464b7cd | 2022-04-26 16:52:45 +0800 | [diff] [blame] | 358 | config NPCM_FIU_SPI |
| 359 | bool "FIU driver for Nuvoton NPCM SoC" |
| 360 | help |
| 361 | This enables support for the Flash Interface Unit SPI controller |
| 362 | in master mode. |
| 363 | |
Jim Liu | 68d2912 | 2022-05-31 18:14:02 +0800 | [diff] [blame] | 364 | config NPCM_PSPI |
| 365 | bool "PSPI driver for Nuvoton NPCM SoC" |
| 366 | help |
| 367 | PSPI driver for NPCM SoC |
| 368 | |
Michael Walle | d3967f3 | 2019-12-18 00:09:58 +0100 | [diff] [blame] | 369 | config NXP_FSPI |
| 370 | bool "NXP FlexSPI driver" |
| 371 | depends on SPI_MEM |
| 372 | help |
| 373 | Enable the NXP FlexSPI (FSPI) driver. This driver can be used to |
| 374 | access the SPI NOR flash on platforms embedding this NXP IP core. |
| 375 | |
Suneel Garapati | 4171777 | 2020-07-30 13:56:18 +0200 | [diff] [blame] | 376 | config OCTEON_SPI |
| 377 | bool "Octeon SPI driver" |
Simon Glass | 3933d29 | 2021-08-01 18:54:44 -0600 | [diff] [blame] | 378 | depends on ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2 |
Suneel Garapati | 4171777 | 2020-07-30 13:56:18 +0200 | [diff] [blame] | 379 | help |
| 380 | Enable the Octeon SPI driver. This driver can be used to |
| 381 | access the SPI NOR flash on Octeon II/III and OcteonTX/TX2 |
| 382 | SoC platforms. |
| 383 | |
Jagan Teki | 99899c5 | 2020-05-27 18:26:36 +0530 | [diff] [blame] | 384 | config OMAP3_SPI |
| 385 | bool "McSPI driver for OMAP" |
| 386 | help |
| 387 | SPI master controller for OMAP24XX and later Multichannel SPI |
| 388 | (McSPI). This driver be used to access SPI chips on platforms |
| 389 | embedding this OMAP3 McSPI IP core. |
| 390 | |
Purna Chandra Mandal | ffa5442 | 2016-06-02 14:26:08 +0530 | [diff] [blame] | 391 | config PIC32_SPI |
| 392 | bool "Microchip PIC32 SPI driver" |
| 393 | depends on MACH_PIC32 |
| 394 | help |
| 395 | Enable the Microchip PIC32 SPI driver. This driver can be used |
| 396 | to access the SPI NOR flash, MMC-over-SPI on platforms based on |
| 397 | Microchip PIC32 family devices. |
| 398 | |
Quentin Schulz | 3add62d | 2018-08-31 16:28:29 +0200 | [diff] [blame] | 399 | config PL022_SPI |
| 400 | bool "ARM AMBA PL022 SSP controller driver" |
| 401 | depends on ARM |
| 402 | help |
| 403 | This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP |
| 404 | controller. If you have an embedded system with an AMBA(R) |
| 405 | bus and a PL022 controller, say Y or M here. |
| 406 | |
Robert Marko | e4b17a7 | 2020-10-08 22:05:09 +0200 | [diff] [blame] | 407 | config SPI_QUP |
| 408 | bool "Qualcomm SPI controller with QUP interface" |
| 409 | depends on ARCH_IPQ40XX |
| 410 | help |
| 411 | Qualcomm Universal Peripheral (QUP) core is an AHB slave that |
| 412 | provides a common data path (an output FIFO and an input FIFO) |
| 413 | for serial peripheral interface (SPI) mini-core. SPI in master |
| 414 | mode supports up to 50MHz, up to four chip selects, programmable |
| 415 | data path from 4 bits to 32 bits and numerous protocol variants. |
| 416 | |
Marek Vasut | 6ca967b | 2017-11-29 06:29:46 +0100 | [diff] [blame] | 417 | config RENESAS_RPC_SPI |
| 418 | bool "Renesas RPC SPI driver" |
Marek Vasut | 47c4f50 | 2023-02-28 22:28:30 +0100 | [diff] [blame] | 419 | depends on RCAR_64 || RZA1 |
Hai Pham | 64f3ca8 | 2022-08-25 10:32:56 +0700 | [diff] [blame] | 420 | imply SPI_FLASH_SFDP_SUPPORT |
Marek Vasut | 6ca967b | 2017-11-29 06:29:46 +0100 | [diff] [blame] | 421 | help |
| 422 | Enable the Renesas RPC SPI driver, used to access SPI NOR flash |
| 423 | on Renesas RCar Gen3 SoCs. This uses driver model and requires a |
| 424 | device tree binding to operate. |
| 425 | |
Chris Morgan | 3afbc76 | 2021-08-05 16:26:38 +0800 | [diff] [blame] | 426 | config ROCKCHIP_SFC |
| 427 | bool "Rockchip SFC Driver" |
John Watts | a94e31c | 2024-04-27 15:40:43 +1000 | [diff] [blame] | 428 | select BOUNCE_BUFFER |
Chris Morgan | 3afbc76 | 2021-08-05 16:26:38 +0800 | [diff] [blame] | 429 | help |
| 430 | Enable the Rockchip SFC Driver for SPI NOR flash. This device is |
| 431 | a limited purpose SPI controller for driving NOR flash on certain |
| 432 | Rockchip SoCs. This uses driver model and requires a device tree |
| 433 | binding to operate. |
| 434 | |
Simon Glass | d1c1377 | 2015-09-01 19:19:37 -0600 | [diff] [blame] | 435 | config ROCKCHIP_SPI |
| 436 | bool "Rockchip SPI driver" |
| 437 | help |
| 438 | Enable the Rockchip SPI driver, used to access SPI NOR flash and |
| 439 | other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs. |
| 440 | This uses driver model and requires a device tree binding to |
| 441 | operate. |
| 442 | |
Simon Glass | 4b322d3 | 2015-03-06 13:19:05 -0700 | [diff] [blame] | 443 | config SANDBOX_SPI |
| 444 | bool "Sandbox SPI driver" |
| 445 | depends on SANDBOX && DM |
| 446 | help |
| 447 | Enable SPI support for sandbox. This is an emulation of a real SPI |
| 448 | bus. Devices can be attached to the bus using the device tree |
| 449 | which specifies the driver to use. As an example, see this device |
| 450 | tree fragment from sandbox.dts. It shows that the SPI bus has a |
| 451 | single flash device on chip select 0 which is emulated by the driver |
| 452 | for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c. |
| 453 | |
| 454 | spi@0 { |
| 455 | #address-cells = <1>; |
| 456 | #size-cells = <0>; |
| 457 | reg = <0>; |
| 458 | compatible = "sandbox,spi"; |
| 459 | cs-gpios = <0>, <&gpio_a 0>; |
| 460 | flash@0 { |
| 461 | reg = <0>; |
Simon Glass | 7e36868 | 2019-05-18 11:59:49 -0600 | [diff] [blame] | 462 | compatible = "spansion,m25p16", "jedec,spi-nor"; |
Simon Glass | 4b322d3 | 2015-03-06 13:19:05 -0700 | [diff] [blame] | 463 | spi-max-frequency = <40000000>; |
| 464 | sandbox,filename = "spi.bin"; |
| 465 | }; |
Jagan Teki | 15a932c | 2015-06-27 22:37:00 +0530 | [diff] [blame] | 466 | }; |
Jagan Teki | dd32f51 | 2015-06-27 04:41:11 +0530 | [diff] [blame] | 467 | |
Tom Rini | 8f0dfd4 | 2022-12-02 16:42:43 -0500 | [diff] [blame] | 468 | config SANDBOX_SPI_MAX_BUS |
| 469 | int |
| 470 | depends on SANDBOX |
| 471 | default 1 |
| 472 | |
| 473 | config SANDBOX_SPI_MAX_CS |
| 474 | int |
| 475 | depends on SANDBOX |
| 476 | default 10 |
| 477 | |
Chin-Ting Kuo | 4d2caaf | 2022-08-19 17:01:04 +0800 | [diff] [blame] | 478 | config SPI_ASPEED_SMC |
| 479 | bool "ASPEED SPI flash controller driver" |
| 480 | depends on DM_SPI && SPI_MEM |
Chin-Ting Kuo | 4d2caaf | 2022-08-19 17:01:04 +0800 | [diff] [blame] | 481 | help |
| 482 | Enable ASPEED SPI flash controller driver for AST2500 |
| 483 | and AST2600 SoCs. |
| 484 | |
Bhargav Shah | 3c34f75 | 2019-07-17 04:23:43 +0000 | [diff] [blame] | 485 | config SPI_SIFIVE |
| 486 | bool "SiFive SPI driver" |
| 487 | help |
| 488 | This driver supports the SiFive SPI IP. If unsure say N. |
| 489 | Enable the SiFive SPI controller driver. |
| 490 | |
| 491 | The SiFive SPI controller driver is found on various SiFive SoCs. |
| 492 | |
Jagan Teki | e576244 | 2020-05-26 08:34:37 +0530 | [diff] [blame] | 493 | config SOFT_SPI |
| 494 | bool "Soft SPI driver" |
| 495 | help |
| 496 | Enable Soft SPI driver. This driver is to use GPIO simulate |
| 497 | the SPI protocol. |
| 498 | |
Kunihiko Hayashi | 7509ea1 | 2022-11-29 11:17:09 +0900 | [diff] [blame] | 499 | config SPI_SN_F_OSPI |
| 500 | tristate "Socionext F_OSPI SPI flash controller" |
| 501 | depends on SPI_MEM |
| 502 | help |
| 503 | This enables support for the Socionext F_OSPI controller |
| 504 | for connecting an SPI flash memory over up to 8-bit wide bus. |
| 505 | It supports indirect access mode only. |
| 506 | |
Jagan Teki | 7b68ef4 | 2019-02-27 20:02:13 +0530 | [diff] [blame] | 507 | config SPI_SUNXI |
| 508 | bool "Allwinner SoC SPI controllers" |
Jagan Teki | 9f6eafd | 2019-10-16 18:05:56 +0530 | [diff] [blame] | 509 | default ARCH_SUNXI |
Jagan Teki | 7b68ef4 | 2019-02-27 20:02:13 +0530 | [diff] [blame] | 510 | help |
| 511 | Enable the Allwinner SoC SPi controller driver. |
| 512 | |
| 513 | Same controller driver can reuse in all Allwinner SoC variants. |
| 514 | |
Michael Kurz | 337ff2a | 2017-01-22 16:04:30 +0100 | [diff] [blame] | 515 | config STM32_QSPI |
| 516 | bool "STM32F7 QSPI driver" |
Patrice Chotard | d43c496 | 2019-04-30 16:09:18 +0200 | [diff] [blame] | 517 | depends on STM32F4 || STM32F7 || ARCH_STM32MP |
Michael Kurz | 337ff2a | 2017-01-22 16:04:30 +0100 | [diff] [blame] | 518 | help |
| 519 | Enable the STM32F7 Quad-SPI (QSPI) driver. This driver can be |
| 520 | used to access the SPI NOR flash chips on platforms embedding |
| 521 | this ST IP core. |
| 522 | |
Patrice Chotard | 0b08bf8 | 2019-04-30 18:08:28 +0200 | [diff] [blame] | 523 | config STM32_SPI |
| 524 | bool "STM32 SPI driver" |
| 525 | depends on ARCH_STM32MP |
| 526 | help |
| 527 | Enable the STM32 Serial Peripheral Interface (SPI) driver for STM32MP |
| 528 | SoCs. This uses driver model and requires a device tree binding to |
| 529 | operate. |
| 530 | |
Jagan Teki | 7977d66 | 2015-06-27 15:57:53 +0530 | [diff] [blame] | 531 | config TEGRA114_SPI |
| 532 | bool "nVidia Tegra114 SPI driver" |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 533 | depends on ARCH_TEGRA |
Jagan Teki | 7977d66 | 2015-06-27 15:57:53 +0530 | [diff] [blame] | 534 | help |
| 535 | Enable the nVidia Tegra114 SPI driver. This driver can be used to |
| 536 | access the SPI NOR flash on platforms embedding this nVidia Tegra114 |
| 537 | IP core. |
| 538 | |
| 539 | This controller is different than the older SoCs SPI controller and |
| 540 | also register interface get changed with this controller. |
| 541 | |
Jagan Teki | a900d40 | 2015-06-27 16:04:05 +0530 | [diff] [blame] | 542 | config TEGRA20_SFLASH |
| 543 | bool "nVidia Tegra20 Serial Flash controller driver" |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 544 | depends on ARCH_TEGRA |
Jagan Teki | a900d40 | 2015-06-27 16:04:05 +0530 | [diff] [blame] | 545 | help |
| 546 | Enable the nVidia Tegra20 Serial Flash controller driver. This driver |
| 547 | can be used to access the SPI NOR flash on platforms embedding this |
| 548 | nVidia Tegra20 IP core. |
| 549 | |
Jagan Teki | 271aa56 | 2015-06-27 16:07:54 +0530 | [diff] [blame] | 550 | config TEGRA20_SLINK |
| 551 | bool "nVidia Tegra20/Tegra30 SLINK driver" |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 552 | depends on ARCH_TEGRA |
Jagan Teki | 271aa56 | 2015-06-27 16:07:54 +0530 | [diff] [blame] | 553 | help |
| 554 | Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can |
| 555 | be used to access the SPI NOR flash on platforms embedding this |
| 556 | nVidia Tegra20/Tegra30 IP cores. |
| 557 | |
Tom Warren | 5fb0c84 | 2015-10-12 14:50:54 -0700 | [diff] [blame] | 558 | config TEGRA210_QSPI |
| 559 | bool "nVidia Tegra210 QSPI driver" |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 560 | depends on ARCH_TEGRA |
Tom Warren | 5fb0c84 | 2015-10-12 14:50:54 -0700 | [diff] [blame] | 561 | help |
| 562 | Enable the Tegra Quad-SPI (QSPI) driver for T210. This driver |
| 563 | be used to access SPI chips on platforms embedding this |
| 564 | NVIDIA Tegra210 IP core. |
| 565 | |
Vignesh Raghavendra | f3603b8 | 2019-04-16 21:31:59 +0530 | [diff] [blame] | 566 | config TI_QSPI |
| 567 | bool "TI QSPI driver" |
| 568 | imply TI_EDMA3 |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 569 | depends on ARCH_OMAP2PLUS |
Vignesh Raghavendra | f3603b8 | 2019-04-16 21:31:59 +0530 | [diff] [blame] | 570 | help |
| 571 | Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms. |
| 572 | This driver support spi flash single, quad and memory reads. |
| 573 | |
Kunihiko Hayashi | 7a40ec0 | 2019-07-05 10:03:18 +0900 | [diff] [blame] | 574 | config UNIPHIER_SPI |
| 575 | bool "Socionext UniPhier SPI driver" |
| 576 | depends on ARCH_UNIPHIER |
| 577 | help |
| 578 | Enable the Socionext UniPhier SPI driver. This driver can |
| 579 | be used to access SPI chips on platforms embedding this |
| 580 | UniPhier IP core. |
| 581 | |
Jagan Teki | cd70d7d | 2015-06-27 04:32:43 +0530 | [diff] [blame] | 582 | config XILINX_SPI |
| 583 | bool "Xilinx SPI driver" |
Jagan Teki | cd70d7d | 2015-06-27 04:32:43 +0530 | [diff] [blame] | 584 | help |
| 585 | Enable the Xilinx SPI driver from the Xilinx EDK. This SPI |
| 586 | controller support 8 bit SPI transfers only, with or w/o FIFO. |
| 587 | For more info on Xilinx SPI Register Definitions and Overview |
| 588 | see driver file - drivers/spi/xilinx_spi.c |
| 589 | |
Jagan Teki | cad526f | 2015-06-27 00:51:38 +0530 | [diff] [blame] | 590 | config ZYNQ_SPI |
| 591 | bool "Zynq SPI driver" |
Jagan Teki | cad526f | 2015-06-27 00:51:38 +0530 | [diff] [blame] | 592 | help |
| 593 | Enable the Zynq SPI driver. This driver can be used to |
| 594 | access the SPI NOR flash on platforms embedding this Zynq |
| 595 | SPI IP core. |
Jagan Teki | bfd3f8b | 2015-06-27 22:35:14 +0530 | [diff] [blame] | 596 | |
Jagan Teki | f2e1c41 | 2015-08-16 00:19:38 +0530 | [diff] [blame] | 597 | config ZYNQ_QSPI |
| 598 | bool "Zynq QSPI driver" |
Vignesh R | 1f66bca | 2019-02-05 11:29:28 +0530 | [diff] [blame] | 599 | imply SPI_FLASH_BAR |
Jagan Teki | f2e1c41 | 2015-08-16 00:19:38 +0530 | [diff] [blame] | 600 | help |
| 601 | Enable the Zynq Quad-SPI (QSPI) driver. This driver can be |
| 602 | used to access the SPI NOR flash on platforms embedding this |
| 603 | Zynq QSPI IP core. This IP is used to connect the flash in |
| 604 | 4-bit qspi, 8-bit dual stacked and shared 4-bit dual parallel. |
| 605 | |
Siva Durga Prasad Paladugu | 7659738 | 2018-07-04 17:31:23 +0530 | [diff] [blame] | 606 | config ZYNQMP_GQSPI |
| 607 | bool "Configure ZynqMP Generic QSPI" |
Siva Durga Prasad Paladugu | 7659738 | 2018-07-04 17:31:23 +0530 | [diff] [blame] | 608 | help |
| 609 | This option is used to enable ZynqMP QSPI controller driver which |
| 610 | is used to communicate with qspi flash devices. |
| 611 | |
Marek Vasut | 41bd923 | 2024-10-26 22:16:25 +0200 | [diff] [blame] | 612 | config SPI_STACKED_PARALLEL |
| 613 | bool "Enable support for stacked or parallel memories" |
| 614 | help |
| 615 | Enable support for stacked/or parallel memories. This functionality |
| 616 | may appear on Xilinx hardware. By default this is disabled. |
| 617 | |
Jagan Teki | 15a932c | 2015-06-27 22:37:00 +0530 | [diff] [blame] | 618 | endif # if DM_SPI |
| 619 | |
Jagan Teki | a0497a3 | 2015-06-27 15:21:36 +0530 | [diff] [blame] | 620 | config FSL_ESPI |
| 621 | bool "Freescale eSPI driver" |
Corentin Guillevic | cffcee9 | 2023-03-24 10:54:19 +0100 | [diff] [blame] | 622 | depends on MPC85xx |
Xiaowei Bao | 72817cd | 2019-10-31 14:34:40 +0800 | [diff] [blame] | 623 | imply SPI_FLASH_BAR |
Jagan Teki | a0497a3 | 2015-06-27 15:21:36 +0530 | [diff] [blame] | 624 | help |
| 625 | Enable the Freescale eSPI driver. This driver can be used to |
| 626 | access the SPI interface and SPI NOR flash on platforms embedding |
| 627 | this Freescale eSPI IP core. |
| 628 | |
Tuomas Tynkkynen | fa8fdfd | 2018-02-07 02:42:17 +0200 | [diff] [blame] | 629 | config SH_QSPI |
| 630 | bool "Renesas Quad SPI driver" |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 631 | depends on ARCH_RENESAS |
Tuomas Tynkkynen | fa8fdfd | 2018-02-07 02:42:17 +0200 | [diff] [blame] | 632 | help |
| 633 | Enable the Renesas Quad SPI controller driver. This driver can be |
| 634 | used on Renesas SoCs. |
| 635 | |
Tuomas Tynkkynen | d395879 | 2018-02-07 02:42:19 +0200 | [diff] [blame] | 636 | config MXC_SPI |
| 637 | bool "MXC SPI Driver" |
John Watts | 60dcbc2 | 2024-04-27 15:40:40 +1000 | [diff] [blame] | 638 | depends on MACH_IMX |
Tuomas Tynkkynen | d395879 | 2018-02-07 02:42:19 +0200 | [diff] [blame] | 639 | help |
| 640 | Enable the MXC SPI controller driver. This driver can be used |
| 641 | on various i.MX SoCs such as i.MX31/35/51/6/7. |
| 642 | |
Jassi Brar | 717bab2 | 2021-06-04 18:44:27 +0900 | [diff] [blame] | 643 | config SYNQUACER_SPI |
| 644 | bool "Socionext SynQuacer HS-SPI driver" |
| 645 | depends on ARCH_SYNQUACER |
| 646 | help |
| 647 | Enable the Socionext HS-SPI driver for SynQuacer. This driver can |
| 648 | be used to access the SPI interface and SPI NOR flash on platforms |
| 649 | embedding this HS-SPI IP core. |
| 650 | |
Adam Ford | 4e96ff8 | 2018-04-15 13:51:26 -0400 | [diff] [blame] | 651 | endif # menu "SPI Support" |