linux-xiaomi-chiron/include/linux/mtd
Cyrille Pitchen cfc5604c48 mtd: spi-nor: introduce SPI 1-2-2 and SPI 1-4-4 protocols
This patch changes the prototype of spi_nor_scan(): its 3rd parameter
is replaced by a 'struct spi_nor_hwcaps' pointer, which tells the spi-nor
framework about the actual hardware capabilities supported by the SPI
controller and its driver.

Besides, this patch also introduces a new 'struct spi_nor_flash_parameter'
telling the spi-nor framework about the hardware capabilities supported by
the SPI flash memory and the associated settings required to use those
hardware caps.

Then, to improve the readability of spi_nor_scan(), the discovery of the
memory settings and the memory initialization are now split into two
dedicated functions.

1 - spi_nor_init_params()

The spi_nor_init_params() function is responsible for initializing the
'struct spi_nor_flash_parameter'. Currently this structure is filled with
legacy values but further patches will allow to override some parameter
values dynamically, for instance by reading the JESD216 Serial Flash
Discoverable Parameter (SFDP) tables from the SPI memory.
The spi_nor_init_params() function only deals with the hardware
capabilities of the SPI flash memory: especially it doesn't care about
the hardware capabilities supported by the SPI controller.

2 - spi_nor_setup()

The second function is called once the 'struct spi_nor_flash_parameter'
has been initialized by spi_nor_init_params().
With both 'struct spi_nor_flash_parameter' and 'struct spi_nor_hwcaps',
the new argument of spi_nor_scan(), spi_nor_setup() computes the best
match between hardware caps supported by both the (Q)SPI memory and
controller hence selecting the relevant settings for (Fast) Read and Page
Program operations.

Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
Reviewed-by: Marek Vasut <marek.vasut@gmail.com>
2017-05-15 21:56:17 +02:00
..
bbm.h mtd: onenand: make onenand_scan_bbt() static 2016-01-23 14:00:16 -08:00
blktrans.h mtd_blktrans_ops->release() should return void 2013-05-05 21:31:22 -04:00
cfi.h mtd: cfi: deinline large functions 2015-05-27 12:42:16 -07:00
cfi_endian.h
concat.h
doc2000.h
flashchip.h
ftl.h
gen_probe.h
inftl.h mtd: inftl: kill unused oobinfo field 2016-01-26 10:27:33 -08:00
latch-addr-flash.h
lpc32xx_mlc.h
lpc32xx_slc.h
map.h mtd: avoid stack overflow in MTD CFI code 2016-04-03 16:46:24 -07:00
mtd.h MTD updates for 4.12-rc1: 2017-05-11 10:44:22 -07:00
mtdram.h mtd: mtdram: add missing 'const' 2014-01-20 11:55:23 -08:00
nand-gpio.h
nand.h mtd: nand: allow drivers to request minimum alignment for passed buffer 2017-04-25 14:18:38 +02:00
nand_bch.h mtd: nand: simplify nand_bch_init() usage 2016-03-07 16:23:09 -08:00
nand_ecc.h
ndfc.h
nftl.h mtd: nftl: kill unused oobinfo field 2016-01-26 10:27:34 -08:00
onenand.h mtd: onenand: switch to mtd_ooblayout_ops 2016-05-05 23:51:49 +02:00
onenand_regs.h
partitions.h mtd: Add partition device node to mtd partition devices 2017-02-09 19:19:25 -08:00
pfow.h mtd: pfow: remove unused variable 2014-05-28 00:05:23 -07:00
physmap.h mtd: physmap: add const qualifiers 2013-04-05 13:02:40 +01:00
pismo.h
plat-ram.h mtd: plat-ram: add const quilifiers 2013-04-05 13:02:33 +01:00
qinfo.h scripts/spelling.txt: add "partiton" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
sh_flctl.h mtd: sh_flctl: pass FIFO as physical address 2015-12-18 18:27:13 -08:00
sharpsl.h mtd: nand: sharpsl: switch to mtd_ooblayout_ops 2016-05-05 23:51:36 +02:00
spear_smi.h Shiraz has moved 2014-04-18 16:40:08 -07:00
spi-nor.h mtd: spi-nor: introduce SPI 1-2-2 and SPI 1-4-4 protocols 2017-05-15 21:56:17 +02:00
super.h
ubi.h UBI: Add initial support for scatter gather 2015-01-28 16:04:26 +01:00
xip.h