xref: /openbmc/linux/drivers/mtd/spi-nor/Kconfig (revision 74ba9207)
1# SPDX-License-Identifier: GPL-2.0-only
2menuconfig MTD_SPI_NOR
3	tristate "SPI-NOR device support"
4	depends on MTD
5	help
6	  This is the framework for the SPI NOR which can be used by the SPI
7	  device drivers and the SPI-NOR device driver.
8
9if MTD_SPI_NOR
10
11config MTD_SPI_NOR_USE_4K_SECTORS
12	bool "Use small 4096 B erase sectors"
13	default y
14	help
15	  Many flash memories support erasing small (4096 B) sectors. Depending
16	  on the usage this feature may provide performance gain in comparison
17	  to erasing whole blocks (32/64 KiB).
18	  Changing a small part of the flash's contents is usually faster with
19	  small sectors. On the other hand erasing should be faster when using
20	  64 KiB block instead of 16 × 4 KiB sectors.
21
22	  Please note that some tools/drivers/filesystems may not work with
23	  4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum).
24
25config SPI_ASPEED_SMC
26	tristate "Aspeed flash controllers in SPI mode"
27	depends on ARCH_ASPEED || COMPILE_TEST
28	depends on HAS_IOMEM && OF
29	help
30	  This enables support for the Firmware Memory controller (FMC)
31	  in the Aspeed AST2500/AST2400 SoCs when attached to SPI NOR chips,
32	  and support for the SPI flash memory controller (SPI) for
33	  the host firmware. The implementation only supports SPI NOR.
34
35config SPI_CADENCE_QUADSPI
36	tristate "Cadence Quad SPI controller"
37	depends on OF && (ARM || ARM64 || COMPILE_TEST)
38	help
39	  Enable support for the Cadence Quad SPI Flash controller.
40
41	  Cadence QSPI is a specialized controller for connecting an SPI
42	  Flash over 1/2/4-bit wide bus. Enable this option if you have a
43	  device with a Cadence QSPI controller and want to access the
44	  Flash as an MTD device.
45
46config SPI_HISI_SFC
47	tristate "Hisilicon SPI-NOR Flash Controller(SFC)"
48	depends on ARCH_HISI || COMPILE_TEST
49	depends on HAS_IOMEM
50	help
51	  This enables support for hisilicon SPI-NOR flash controller.
52
53config SPI_MTK_QUADSPI
54	tristate "MediaTek Quad SPI controller"
55	depends on HAS_IOMEM
56	help
57	  This enables support for the Quad SPI controller in master mode.
58	  This controller does not support generic SPI. It only supports
59	  SPI NOR.
60
61config SPI_NXP_SPIFI
62	tristate "NXP SPI Flash Interface (SPIFI)"
63	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
64	depends on HAS_IOMEM
65	help
66	  Enable support for the NXP LPC SPI Flash Interface controller.
67
68	  SPIFI is a specialized controller for connecting serial SPI
69	  Flash. Enable this option if you have a device with a SPIFI
70	  controller and want to access the Flash as a mtd device.
71
72config SPI_INTEL_SPI
73	tristate
74
75config SPI_INTEL_SPI_PCI
76	tristate "Intel PCH/PCU SPI flash PCI driver (DANGEROUS)"
77	depends on X86 && PCI
78	select SPI_INTEL_SPI
79	help
80	  This enables PCI support for the Intel PCH/PCU SPI controller in
81	  master mode. This controller is present in modern Intel hardware
82	  and is used to hold BIOS and other persistent settings. Using
83	  this driver it is possible to upgrade BIOS directly from Linux.
84
85	  Say N here unless you know what you are doing. Overwriting the
86	  SPI flash may render the system unbootable.
87
88	  To compile this driver as a module, choose M here: the module
89	  will be called intel-spi-pci.
90
91config SPI_INTEL_SPI_PLATFORM
92	tristate "Intel PCH/PCU SPI flash platform driver (DANGEROUS)"
93	depends on X86
94	select SPI_INTEL_SPI
95	help
96	  This enables platform support for the Intel PCH/PCU SPI
97	  controller in master mode. This controller is present in modern
98	  Intel hardware and is used to hold BIOS and other persistent
99	  settings. Using this driver it is possible to upgrade BIOS
100	  directly from Linux.
101
102	  Say N here unless you know what you are doing. Overwriting the
103	  SPI flash may render the system unbootable.
104
105	  To compile this driver as a module, choose M here: the module
106	  will be called intel-spi-platform.
107
108config SPI_STM32_QUADSPI
109	tristate "STM32 Quad SPI controller"
110	depends on ARCH_STM32 || COMPILE_TEST
111	help
112	  This enables support for the STM32 Quad SPI controller.
113	  We only connect the NOR to this controller.
114
115endif # MTD_SPI_NOR
116