mtd: spinand: Add macro definition constraints

Change-Id: I65e03dd7cc70d1ab279c5bdea0ef8969666d7469
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
This commit is contained in:
Jon Lin
2024-11-27 16:53:21 +08:00
parent 2aa34d8499
commit a104b8efc3
4 changed files with 229 additions and 1 deletions

View File

@@ -8,3 +8,5 @@ menuconfig MTD_SPI_NAND
select MTD_NAND_BBT_USING_FLASH
help
This is the framework for the SPI NAND device drivers.
source "drivers/mtd/nand/spi/Kconfig.spinandlist"

View File

@@ -0,0 +1,156 @@
# SPDX-License-Identifier: GPL-2.0-only
if MTD_SPI_NAND
config MTD_SPI_NAND_DEVICE_AUTOSELECT
bool "Autoselect SPI Nand flash"
default y
help
By default, auto-selects all SPI Nand flash chips.
menu "SPI Nand flash"
visible if !MTD_SPI_NAND_DEVICE_AUTOSELECT
config MTD_SPI_NAND_ATO
bool "ATO SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various ATO SPI Nand flash chips
config MTD_SPI_NAND_BIWIN
bool "BIWIN SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various BIWIN SPI Nand flash chips
config MTD_SPI_NAND_DOSILICON
bool "DOSILICON SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various DOSILICON SPI Nand flash chips
config MTD_SPI_NAND_ESMT
bool "ESMT SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
select SPI_NAND_MICRON
help
Add support for various ESMT SPI Nand flash chips
config MTD_SPI_NAND_ETRON
bool "ETRON SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various ETRON SPI Nand flash chips
config MTD_SPI_NAND_FMSH
bool "FMSH SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various FMSH SPI Nand flash chips
config MTD_SPI_NAND_FORESEE
bool "FORESEE SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various FORESEE SPI Nand flash chips
config MTD_SPI_NAND_GIGADEVICE
bool "GIGADEVICE SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various GIGADEVICE SPI Nand flash chips
config MTD_SPI_NAND_GSTO
bool "GSTO SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various GSTO SPI Nand flash chips
config MTD_SPI_NAND_HIKSEMI
bool "HIKSEMI SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various HIKSEMI SPI Nand flash chips
config MTD_SPI_NAND_HYF
bool "HYF SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various HYF SPI Nand flash chips
config MTD_SPI_NAND_JSC
bool "JSC SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various JSC SPI Nand flash chips
config MTD_SPI_NAND_MACRONIX
bool "MACRONIX SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various MACRONIX SPI Nand flash chips
config MTD_SPI_NAND_MICRON
bool "MICRON SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various MICRON SPI Nand flash chips
config MTD_SPI_NAND_PARAGON
bool "PARAGON SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various PARAGON SPI Nand flash chips
config MTD_SPI_NAND_SILICONGO
bool "SILICONGO SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various SILICONGO SPI Nand flash chips
config MTD_SPI_NAND_SKYHIGH
bool "SKYHIGH SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various SKYHIGH SPI Nand flash chips
config MTD_SPI_NAND_TOSHIBA
bool "TOSHIBA SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various TOSHIBA SPI Nand flash chips
config MTD_SPI_NAND_UNIM
bool "UNIM SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various UNIM SPI Nand flash chips
config MTD_SPI_NAND_WINBOND
bool "WINBOND SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various WINBOND SPI Nand flash chips
config MTD_SPI_NAND_XINCUN
bool "XINCUN SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various XINCUN SPI Nand flash chips
config MTD_SPI_NAND_XTX
bool "XTX SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
select MTD_SPI_NAND_MICRON
help
Add support for various XTX SPI Nand flash chips
config MTD_SPI_NAND_ZBIT
bool "ZBIT SPI flash support"
default y if MTD_SPI_NAND_DEVICE_AUTOSELECT
help
Add support for various ZBIT SPI Nand flash chips
endmenu
endif

View File

@@ -1,3 +1,27 @@
# SPDX-License-Identifier: GPL-2.0
spinand-objs := core.o ato.o gigadevice.o gsto.o macronix.o micron.o paragon.o toshiba.o winbond.o biwin.o dosilicon.o esmt.o etron.o fmsh.o foresee.o hiksemi.o hyf.o jsc.o silicongo.o skyhigh.o unim.o xincun.o xtx.o zbit.o
spinand-objs := core.o
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
spinand-$(CONFIG_MTD_SPI_NAND_ATO) += ato.o
spinand-$(CONFIG_MTD_SPI_NAND_BIWIN) += biwin.o
spinand-$(CONFIG_MTD_SPI_NAND_DOSILICON) += dosilicon.o
spinand-$(CONFIG_MTD_SPI_NAND_ESMT) += esmt.o
spinand-$(CONFIG_MTD_SPI_NAND_ETRON) += etron.o
spinand-$(CONFIG_MTD_SPI_NAND_FMSH) += fmsh.o
spinand-$(CONFIG_MTD_SPI_NAND_FORESEE) += foresee.o
spinand-$(CONFIG_MTD_SPI_NAND_GIGADEVICE) += gigadevice.o
spinand-$(CONFIG_MTD_SPI_NAND_GSTO) += gsto.o
spinand-$(CONFIG_MTD_SPI_NAND_HIKSEMI) += hiksemi.o
spinand-$(CONFIG_MTD_SPI_NAND_HYF) += hyf.o
spinand-$(CONFIG_MTD_SPI_NAND_JSC) += jsc.o
spinand-$(CONFIG_MTD_SPI_NAND_MACRONIX) += macronix.o
spinand-$(CONFIG_MTD_SPI_NAND_MICRON) += micron.o
spinand-$(CONFIG_MTD_SPI_NAND_PARAGON) += paragon.o
spinand-$(CONFIG_MTD_SPI_NAND_SILICONGO) += silicongo.o
spinand-$(CONFIG_MTD_SPI_NAND_SKYHIGH) += skyhigh.o
spinand-$(CONFIG_MTD_SPI_NAND_TOSHIBA) += toshiba.o
spinand-$(CONFIG_MTD_SPI_NAND_UNIM) += unim.o
spinand-$(CONFIG_MTD_SPI_NAND_WINBOND) += winbond.o
spinand-$(CONFIG_MTD_SPI_NAND_XINCUN) += xincun.o
spinand-$(CONFIG_MTD_SPI_NAND_XTX) += xtx.o
spinand-$(CONFIG_MTD_SPI_NAND_ZBIT) += zbit.o

View File

@@ -951,30 +951,76 @@ static const struct nand_ops spinand_ops = {
};
static const struct spinand_manufacturer *spinand_manufacturers[] = {
#ifdef CONFIG_MTD_SPI_NAND_ATO
&ato_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_BIWIN
&biwin_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_DOSILICON
&dosilicon_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_ESMT
&esmt_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_ETRON
&etron_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_FMSH
&fmsh_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_FORESEE
&foresee_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_GIGADEVICE
&gigadevice_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_GSTO
&gsto_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_HIKSEMI
&hiksemi_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_HYF
&hyf_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_JSC
&jsc_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_MACRONIX
&macronix_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_MICRON
&micron_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_PARAGON
&paragon_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_SILICONGO
&silicongo_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_SKYHIGH
&skyhigh_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_TOSHIBA
&toshiba_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_UNIM
&unim_spinand_manufacturer,
&unim_zl_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_WINBOND
&winbond_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_XINCUN
&xincun_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_XTX
&xtx_spinand_manufacturer,
#endif
#ifdef CONFIG_MTD_SPI_NAND_ZBIT
&zbit_spinand_manufacturer,
#endif
};
static int spinand_manufacturer_match(struct spinand_device *spinand,