xref: /linux/drivers/mtd/spi-nor/Kconfig (revision 1f37033f05bf924b7f2d84a818fbba8dc2eac528)
18ac326fcSBrian Norrismenuconfig MTD_SPI_NOR
28ac326fcSBrian Norris	tristate "SPI-NOR device support"
3b199489dSHuang Shijie	depends on MTD
4b199489dSHuang Shijie	help
5b199489dSHuang Shijie	  This is the framework for the SPI NOR which can be used by the SPI
6b199489dSHuang Shijie	  device drivers and the SPI-NOR device driver.
7e43b2061SBrian Norris
8e43b2061SBrian Norrisif MTD_SPI_NOR
9e43b2061SBrian Norris
103ce351b5SBayi Chengconfig MTD_MT81xx_NOR
113ce351b5SBayi Cheng	tristate "Mediatek MT81xx SPI NOR flash controller"
1215c0be7bSRichard Weinberger	depends on HAS_IOMEM
133ce351b5SBayi Cheng	help
143ce351b5SBayi Cheng	  This enables access to SPI NOR flash, using MT81xx SPI NOR flash
153ce351b5SBayi Cheng	  controller. This controller does not support generic SPI BUS, it only
163ce351b5SBayi Cheng	  supports SPI NOR Flash.
173ce351b5SBayi Cheng
1857cf26c1SRafał Miłeckiconfig MTD_SPI_NOR_USE_4K_SECTORS
1957cf26c1SRafał Miłecki	bool "Use small 4096 B erase sectors"
2057cf26c1SRafał Miłecki	default y
2157cf26c1SRafał Miłecki	help
2257cf26c1SRafał Miłecki	  Many flash memories support erasing small (4096 B) sectors. Depending
2357cf26c1SRafał Miłecki	  on the usage this feature may provide performance gain in comparison
2457cf26c1SRafał Miłecki	  to erasing whole blocks (32/64 KiB).
2557cf26c1SRafał Miłecki	  Changing a small part of the flash's contents is usually faster with
2657cf26c1SRafał Miłecki	  small sectors. On the other hand erasing should be faster when using
2757cf26c1SRafał Miłecki	  64 KiB block instead of 16 × 4 KiB sectors.
2857cf26c1SRafał Miłecki
2957cf26c1SRafał Miłecki	  Please note that some tools/drivers/filesystems may not work with
3057cf26c1SRafał Miłecki	  4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum).
3157cf26c1SRafał Miłecki
32ceb720c7SCédric Le Goaterconfig SPI_ASPEED_SMC
33ceb720c7SCédric Le Goater	tristate "Aspeed flash controllers in SPI mode"
34ceb720c7SCédric Le Goater	depends on ARCH_ASPEED || COMPILE_TEST
35ceb720c7SCédric Le Goater	depends on HAS_IOMEM && OF
36ceb720c7SCédric Le Goater	help
37ceb720c7SCédric Le Goater	  This enables support for the Firmware Memory controller (FMC)
38e56beebbSCédric Le Goater	  in the Aspeed AST2500/AST2400 SoCs when attached to SPI NOR chips,
39ceb720c7SCédric Le Goater	  and support for the SPI flash memory controller (SPI) for
40ceb720c7SCédric Le Goater	  the host firmware. The implementation only supports SPI NOR.
41ceb720c7SCédric Le Goater
42161aaab8SCyrille Pitchenconfig SPI_ATMEL_QUADSPI
43161aaab8SCyrille Pitchen	tristate "Atmel Quad SPI Controller"
44161aaab8SCyrille Pitchen	depends on ARCH_AT91 || (ARM && COMPILE_TEST)
45161aaab8SCyrille Pitchen	depends on OF && HAS_IOMEM
46161aaab8SCyrille Pitchen	help
47161aaab8SCyrille Pitchen	  This enables support for the Quad SPI controller in master mode.
48161aaab8SCyrille Pitchen	  This driver does not support generic SPI. The implementation only
49161aaab8SCyrille Pitchen	  supports SPI NOR.
50161aaab8SCyrille Pitchen
5114062341SGraham Mooreconfig SPI_CADENCE_QUADSPI
5214062341SGraham Moore	tristate "Cadence Quad SPI controller"
5370597eecSThor Thayer	depends on OF && (ARM || ARM64 || COMPILE_TEST)
5414062341SGraham Moore	help
5514062341SGraham Moore	  Enable support for the Cadence Quad SPI Flash controller.
5614062341SGraham Moore
5714062341SGraham Moore	  Cadence QSPI is a specialized controller for connecting an SPI
5814062341SGraham Moore	  Flash over 1/2/4-bit wide bus. Enable this option if you have a
5914062341SGraham Moore	  device with a Cadence QSPI controller and want to access the
6014062341SGraham Moore	  Flash as an MTD device.
6114062341SGraham Moore
62e46ecda7SHuang Shijieconfig SPI_FSL_QUADSPI
63e46ecda7SHuang Shijie	tristate "Freescale Quad SPI controller"
64a578c4f9SYao Yuan	depends on ARCH_MXC || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST
65d26a22d0SBrian Norris	depends on HAS_IOMEM
66e46ecda7SHuang Shijie	help
67e46ecda7SHuang Shijie	  This enables support for the Quad SPI controller in master mode.
68842c12ddSFabio Estevam	  This controller does not support generic SPI. It only supports
69842c12ddSFabio Estevam	  SPI NOR.
70e43b2061SBrian Norris
71e523f111SJiancheng Xueconfig SPI_HISI_SFC
72e523f111SJiancheng Xue	tristate "Hisilicon SPI-NOR Flash Controller(SFC)"
73e523f111SJiancheng Xue	depends on ARCH_HISI || COMPILE_TEST
74e523f111SJiancheng Xue	depends on HAS_IOMEM && HAS_DMA
75e523f111SJiancheng Xue	help
76e523f111SJiancheng Xue	  This enables support for hisilicon SPI-NOR flash controller.
77e523f111SJiancheng Xue
78f617b958SJoachim Eastwoodconfig SPI_NXP_SPIFI
79f617b958SJoachim Eastwood	tristate "NXP SPI Flash Interface (SPIFI)"
80f617b958SJoachim Eastwood	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
81f617b958SJoachim Eastwood	depends on HAS_IOMEM
82f617b958SJoachim Eastwood	help
83f617b958SJoachim Eastwood	  Enable support for the NXP LPC SPI Flash Interface controller.
84f617b958SJoachim Eastwood
85f617b958SJoachim Eastwood	  SPIFI is a specialized controller for connecting serial SPI
86f617b958SJoachim Eastwood	  Flash. Enable this option if you have a device with a SPIFI
87f617b958SJoachim Eastwood	  controller and want to access the Flash as a mtd device.
88f617b958SJoachim Eastwood
898afda8b2SMika Westerbergconfig SPI_INTEL_SPI
908afda8b2SMika Westerberg	tristate
918afda8b2SMika Westerberg
92fe602838SMika Westerbergconfig SPI_INTEL_SPI_PCI
93*1f37033fSMika Westerberg	tristate "Intel PCH/PCU SPI flash PCI driver (DANGEROUS)"
94fe602838SMika Westerberg	depends on X86 && PCI
95fe602838SMika Westerberg	select SPI_INTEL_SPI
96fe602838SMika Westerberg	help
97fe602838SMika Westerberg	  This enables PCI support for the Intel PCH/PCU SPI controller in
98fe602838SMika Westerberg	  master mode. This controller is present in modern Intel hardware
99fe602838SMika Westerberg	  and is used to hold BIOS and other persistent settings. Using
100fe602838SMika Westerberg	  this driver it is possible to upgrade BIOS directly from Linux.
101fe602838SMika Westerberg
102fe602838SMika Westerberg	  Say N here unless you know what you are doing. Overwriting the
103fe602838SMika Westerberg	  SPI flash may render the system unbootable.
104fe602838SMika Westerberg
105fe602838SMika Westerberg	  To compile this driver as a module, choose M here: the module
106fe602838SMika Westerberg	  will be called intel-spi-pci.
107fe602838SMika Westerberg
1088afda8b2SMika Westerbergconfig SPI_INTEL_SPI_PLATFORM
109*1f37033fSMika Westerberg	tristate "Intel PCH/PCU SPI flash platform driver (DANGEROUS)"
1108afda8b2SMika Westerberg	depends on X86
1118afda8b2SMika Westerberg	select SPI_INTEL_SPI
1128afda8b2SMika Westerberg	help
1138afda8b2SMika Westerberg	  This enables platform support for the Intel PCH/PCU SPI
1148afda8b2SMika Westerberg	  controller in master mode. This controller is present in modern
1158afda8b2SMika Westerberg	  Intel hardware and is used to hold BIOS and other persistent
1168afda8b2SMika Westerberg	  settings. Using this driver it is possible to upgrade BIOS
1178afda8b2SMika Westerberg	  directly from Linux.
1188afda8b2SMika Westerberg
1198afda8b2SMika Westerberg	  Say N here unless you know what you are doing. Overwriting the
1208afda8b2SMika Westerberg	  SPI flash may render the system unbootable.
1218afda8b2SMika Westerberg
1228afda8b2SMika Westerberg	  To compile this driver as a module, choose M here: the module
1238afda8b2SMika Westerberg	  will be called intel-spi-platform.
1248afda8b2SMika Westerberg
1250d43d7abSLudovic Barreconfig SPI_STM32_QUADSPI
1260d43d7abSLudovic Barre	tristate "STM32 Quad SPI controller"
127ddd0503eSBrian Norris	depends on ARCH_STM32 || COMPILE_TEST
1280d43d7abSLudovic Barre	help
1290d43d7abSLudovic Barre	  This enables support for the STM32 Quad SPI controller.
1300d43d7abSLudovic Barre	  We only connect the NOR to this controller.
1310d43d7abSLudovic Barre
132e43b2061SBrian Norrisendif # MTD_SPI_NOR
133