linux/drivers/mtd/spi-nor
Tudor Ambarus ce0b6f3f3c
mtd: spi-nor: Add default_init() hook to tweak flash parameters
As of now, the flash parameters initialization logic is as following:

a/ default flash parameters init in spi_nor_init_params()
b/ manufacturer specific flash parameters updates, split across entire
   spi-nor core code
c/ flash parameters updates based on SFDP tables
d/ post BFPT flash parameter updates

In the quest of removing the manufacturer specific code from the spi-nor
core, we want to impose a timeline/priority on how the flash parameters
are updated. The following sequence of calls is pursued:

1/ spi-nor core parameters init based on 'flash_info' struct:
	spi_nor_info_init_params()

which can be overwritten by:
2/ MFR-based manufacturer flash parameters init:
	nor->manufacturer->fixups->default_init()

which can be overwritten by:
3/ specific flash_info tweeks done when decisions can not be done just on
   MFR:
	nor->info->fixups->default_init()

which can be overwritten by:
4/ SFDP tables flash parameters init - SFDP knows better:
	spi_nor_sfdp_init_params()

which can be overwritten by:
5/ post SFDP tables flash parameters updates - in case manufacturers get
   the serial flash tables wrong or incomplete.
	nor->info->fixups->post_sfdp()
   The later can be extended to nor->manufacturer->fixups->post_sfdp() if
   needed.

This patch opens doors for steps 2/ and 3/.

Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com>
2019-08-28 12:40:27 +03:00
..
aspeed-smc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cadence-quadspi.c mtd: spi-nor: Fix Cadence QSPI RCU Schedule Stall 2019-08-21 10:07:42 +03:00
hisi-sfc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
intel-spi-pci.c mtd: spi-nor: intel-spi: Add support for Intel Tiger Lake SPI serial flash 2019-08-20 17:47:18 +03:00
intel-spi-platform.c mtd: spi-nor: intel-spi: Convert to use SPDX identifier 2019-06-22 14:59:27 +03:00
intel-spi.c mtd: spi-nor: intel-spi: Whitelist 4B read commands 2019-08-21 11:09:46 +03:00
intel-spi.h mtd: spi-nor: intel-spi: Convert to use SPDX identifier 2019-06-22 14:59:27 +03:00
Kconfig mtd: spi-nor: Move m25p80 code in spi-nor.c 2019-08-12 10:54:12 +03:00
Makefile mtd: spi-nor: stm32: remove the driver as it was replaced by spi-stm32-qspi.c 2019-06-07 07:10:38 +03:00
mtk-quadspi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
nxp-spifi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
spi-nor.c mtd: spi-nor: Add default_init() hook to tweak flash parameters 2019-08-28 12:40:27 +03:00