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