linux_dsm_epyc7002/drivers/mtd/nand/raw
Christophe Kerello 2cd457f328 mtd: rawnand: stm32_fmc2: add STM32 FMC2 NAND flash controller driver
The driver adds the support for the STMicroelectronics FMC2 NAND
Controller found on STM32MP SOCs.

This patch is based on FMC2 command sequencer.
The purpose of the command sequencer is to facilitate the programming
and the reading of NAND flash pages with the ECC and to free the CPU
of sequencing tasks.
It requires one DMA channel for write and two DMA channels for read
operations.

Only NAND_ECC_HW mode is actually supported.
The driver supports a maximum 8k page size.
The following ECC strength and step size are currently supported:
 - nand-ecc-strength = <8>, nand-ecc-step-size = <512> (BCH8)
 - nand-ecc-strength = <4>, nand-ecc-step-size = <512> (BCH4)
 - nand-ecc-strength = <1>, nand-ecc-step-size = <512> (Extended ECC
   based on Hamming)

This patch has been tested on Micron MT29F8G08ABACAH4 and
MT29F8G16ABACAH4

Signed-off-by: Christophe Kerello <christophe.kerello@st.com>
Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
2019-02-05 15:39:37 +01:00
..
atmel Core changes: 2018-12-18 20:00:52 +01:00
bcm47xxnflash mtd: rawnand: Deprecate the ->select_chip() hook 2018-12-07 10:38:27 +01:00
brcmnand mtd: rawnand: Deprecate ->dev_ready() and ->waitfunc() 2018-10-03 11:12:25 +02:00
gpmi-nand mtd: rawnand: Deprecate the dummy_controller field 2018-12-07 10:58:11 +01:00
ams-delta.c mtd: rawnand: ams-delta: Use GPIO API for data I/O 2018-12-07 10:38:27 +01:00
au1550nd.c mtd: rawnand: Deprecate the ->select_chip() hook 2018-12-07 10:38:27 +01:00
cafe_nand.c mtd: rawnand: Deprecate the dummy_controller field 2018-12-07 10:58:11 +01:00
cmx270_nand.c mtd: rawnand: Deprecate ->chip_delay 2018-10-03 11:12:25 +02:00
cs553x_nand.c mtd: rawnand: Deprecate ->chip_delay 2018-10-03 11:12:25 +02:00
davinci_nand.c mtd: rawnand: Deprecate the dummy_controller field 2018-12-07 10:58:11 +01:00
denali_dt.c mtd: rawnand: denali: use SPDX-License-Identifier and fix license mismatch 2018-09-04 23:37:40 +02:00
denali_pci.c mtd: rawnand: denali: use SPDX-License-Identifier and fix license mismatch 2018-09-04 23:37:40 +02:00
denali.c mtd: rawnand: Deprecate the dummy_controller field 2018-12-07 10:58:11 +01:00
denali.h mtd: rawnand: denali: include <linux/bits.h> instead of <linux/bitops.h> 2018-11-05 10:57:07 +01:00
diskonchip.c mtd: rawnand: Deprecate the ->select_chip() hook 2018-12-07 10:38:27 +01:00
fsl_elbc_nand.c mtd: rawnand: Deprecate the ->select_chip() hook 2018-12-07 10:38:27 +01:00
fsl_ifc_nand.c mtd: rawnand: Deprecate the ->select_chip() hook 2018-12-07 10:38:27 +01:00
fsl_upm.c mtd: rawnand: Deprecate the ->select_chip() hook 2018-12-07 10:38:27 +01:00
fsmc_nand.c mtd: rawnand: fsmc: Fix all coding style issues reported by checkpatch 2018-12-07 10:54:48 +01:00
gpio.c mtd: rawnand: Deprecate ->chip_delay 2018-10-03 11:12:25 +02:00
hisi504_nand.c mtd: rawnand: Deprecate the dummy_controller field 2018-12-07 10:58:11 +01:00
internals.h mtd: rawnand: Move ->setup_data_interface() to nand_controller_ops 2018-12-07 10:38:27 +01:00
jz4740_nand.c mtd: rawnand: Deprecate the dummy_controller field 2018-12-07 10:58:11 +01:00
jz4780_bch.c mtd: rawnand: jz4780: annotate implicit fall throughs 2018-12-07 11:07:19 +01:00
jz4780_bch.h
jz4780_nand.c mtd: rawnand: Deprecate the ->select_chip() hook 2018-12-07 10:38:27 +01:00
Kconfig mtd: rawnand: stm32_fmc2: add STM32 FMC2 NAND flash controller driver 2019-02-05 15:39:37 +01:00
lpc32xx_mlc.c mtd: rawnand: Deprecate the dummy_controller field 2018-12-07 10:58:11 +01:00
lpc32xx_slc.c mtd: rawnand: Deprecate the dummy_controller field 2018-12-07 10:58:11 +01:00
Makefile mtd: rawnand: stm32_fmc2: add STM32 FMC2 NAND flash controller driver 2019-02-05 15:39:37 +01:00
marvell_nand.c mtd: rawnand: marvell: prevent timeouts on a loaded machine 2018-12-15 14:49:25 +01:00
mpc5121_nfc.c mtd: rawnand: Deprecate the ->select_chip() hook 2018-12-07 10:38:27 +01:00
mtk_ecc.c mtd: rawnand: mtk: use of_device_get_match_data() 2018-04-29 08:56:41 +02:00
mtk_ecc.h
mtk_nand.c mtd: rawnand: Move ->setup_data_interface() to nand_controller_ops 2018-12-07 10:38:27 +01:00
mxc_nand.c mtd: rawnand: Deprecate the dummy_controller field 2018-12-07 10:58:11 +01:00
nand_amd.c mtd: rawnand: Keep all internal stuff private 2018-10-03 11:12:25 +02:00
nand_base.c mtd: rawnand: Deprecate the dummy_controller field 2018-12-07 10:58:11 +01:00
nand_bbt.c mtd: rawnand: Reorganize code to avoid forward declarations 2018-12-07 10:38:23 +01:00
nand_bch.c mtd: rawnand: Pass a nand_chip object to ecc->correct() 2018-10-03 11:12:25 +02:00
nand_ecc.c mtd: rawnand: Allow selection of ECC byte ordering at runtime 2018-10-03 11:12:25 +02:00
nand_esmt.c mtd: rawnand: ESMT: retrieve ECC requirements from 5th id byte 2018-10-03 11:12:25 +02:00
nand_hynix.c mtd: rawnand: Move the ->exec_op() method to nand_controller_ops 2018-12-07 10:38:27 +01:00
nand_ids.c mtd: rawnand: ESMT: retrieve ECC requirements from 5th id byte 2018-10-03 11:12:25 +02:00
nand_jedec.c mtd: rawnand: Fix JEDEC detection 2018-12-14 22:45:13 +01:00
nand_legacy.c mtd: rawnand: Move ->setup_data_interface() to nand_controller_ops 2018-12-07 10:38:27 +01:00
nand_macronix.c mtd: rawnand: Flag 1.8V AC chips with a broken GET_FEATURES(TIMINGS) 2018-11-06 10:18:01 +01:00
nand_micron.c mtd: rawnand: Keep all internal stuff private 2018-10-03 11:12:25 +02:00
nand_onfi.c mtd: rawnand: Move ONFI code to nand_onfi.c 2018-10-03 11:12:25 +02:00
nand_samsung.c mtd: rawnand: Keep all internal stuff private 2018-10-03 11:12:25 +02:00
nand_timings.c mtd: rawnand: Keep all internal stuff private 2018-10-03 11:12:25 +02:00
nand_toshiba.c mtd: rawnand: toshiba: Pass a single nand_chip object to the status helper 2018-10-08 10:00:10 +02:00
nandsim.c Merge tag 'nand/for-4.21' of git://git.infradead.org/linux-mtd into mtd/next 2018-12-18 19:59:16 +01:00
ndfc.c mtd: rawnand: Deprecate the ->select_chip() hook 2018-12-07 10:38:27 +01:00
nuc900_nand.c mtd: rawnand: Deprecate ->chip_delay 2018-10-03 11:12:25 +02:00
omap2.c mtd: rawnand: omap2: Pass the parent of pdev to dma_request_chan() 2018-12-14 22:45:16 +01:00
omap_elm.c
orion_nand.c mtd: rawnand: Deprecate ->chip_delay 2018-10-03 11:12:25 +02:00
oxnas_nand.c mtd: rawnand: Deprecate ->chip_delay 2018-10-03 11:12:25 +02:00
pasemi_nand.c mtd: rawnand: Deprecate ->chip_delay 2018-10-03 11:12:25 +02:00
plat_nand.c mtd: rawnand: Deprecate the ->select_chip() hook 2018-12-07 10:38:27 +01:00
qcom_nandc.c Core changes: 2018-12-18 20:00:52 +01:00
r852.c mtd: rawnand: Add nand_[de]select_target() helpers 2018-12-07 10:38:25 +01:00
r852.h mtd: rawnand: r852: fix spelling mistake "card_registred" -> "card_registered" 2018-10-08 10:00:10 +02:00
s3c2410.c mtd: rawnand: Move ->setup_data_interface() to nand_controller_ops 2018-12-07 10:38:27 +01:00
sh_flctl.c mtd: rawnand: Deprecate the dummy_controller field 2018-12-07 10:58:11 +01:00
sharpsl.c mtd: rawnand: Deprecate ->chip_delay 2018-10-03 11:12:25 +02:00
sm_common.c mtd: rawnand: Deprecate the dummy_controller field 2018-12-07 10:58:11 +01:00
sm_common.h
socrates_nand.c mtd: rawnand: Deprecate ->chip_delay 2018-10-03 11:12:25 +02:00
stm32_fmc2_nand.c mtd: rawnand: stm32_fmc2: add STM32 FMC2 NAND flash controller driver 2019-02-05 15:39:37 +01:00
sunxi_nand.c mtd: rawnand: sunxi: Write pageprog related opcodes to WCMD_SET 2018-12-17 14:06:26 +01:00
tango_nand.c mtd: rawnand: Move ->setup_data_interface() to nand_controller_ops 2018-12-07 10:38:27 +01:00
tegra_nand.c mtd: rawnand: Move ->setup_data_interface() to nand_controller_ops 2018-12-07 10:38:27 +01:00
tmio_nand.c mtd: rawnand: Allow selection of ECC byte ordering at runtime 2018-10-03 11:12:25 +02:00
txx9ndfmc.c mtd: rawnand: Allow selection of ECC byte ordering at runtime 2018-10-03 11:12:25 +02:00
vf610_nfc.c mtd: rawnand: vf610: Add an SPDX tag to replace the license text 2018-12-07 10:58:03 +01:00
xway_nand.c mtd: rawnand: Deprecate the ->select_chip() hook 2018-12-07 10:38:27 +01:00