2005-04-17 06:20:36 +08:00
|
|
|
#
|
|
|
|
# linux/drivers/nand/Makefile
|
|
|
|
#
|
|
|
|
|
2010-03-19 23:22:54 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND) += nand.o
|
|
|
|
obj-$(CONFIG_MTD_NAND_ECC) += nand_ecc.o
|
2011-03-11 18:05:33 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_BCH) += nand_bch.o
|
2005-04-17 06:20:36 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_IDS) += nand_ids.o
|
2010-02-23 02:39:39 +08:00
|
|
|
obj-$(CONFIG_MTD_SM_COMMON) += sm_common.o
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2006-10-06 22:36:29 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_CAFE) += cafe_nand.o
|
2006-05-22 01:11:55 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_AMS_DELTA) += ams-delta.o
|
2010-05-13 22:57:33 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_DENALI) += denali.o
|
2012-09-28 00:58:05 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_DENALI_PCI) += denali_pci.o
|
2012-09-28 00:58:06 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_DENALI_DT) += denali_dt.o
|
2005-04-17 06:20:36 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_AU1550) += au1550nd.o
|
2007-10-03 04:56:05 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_BF5XX) += bf5xx_nand.o
|
2005-04-17 06:20:36 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_S3C2410) += s3c2410.o
|
2009-03-05 04:01:37 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_DAVINCI) += davinci_nand.o
|
2005-04-17 06:20:36 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_DISKONCHIP) += diskonchip.o
|
mtd: nand: add support for diskonchip G4 nand flash device
This patch adds a driver for the M-Sys / Sandisk diskonchip G4 nand flash found
in various smartphones and PDAs, among them the Palm Treo680, HTC Prophet and
Wizard, Toshiba Portege G900, Asus P526, and O2 XDA Zinc. It was tested on the
Treo 680, but should work generically.
Since v3, this patch adds power management functions, a scan of the factory bad
block table during initialization, several fixes, and more extensive testing.
Also, the platform data header file, which only contained partitioning
information, was removed. Command-line partitioning can be used, at least until
an mtd parser is written for the saftl format with which these chips are
shipped.
Signed-off-by: Mike Dunn <mikedunn@newsguy.com>
Reviewed-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2012-01-04 08:05:44 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_DOCG4) += docg4.o
|
2010-09-13 06:35:22 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_FSMC) += fsmc_nand.o
|
2005-04-17 06:20:36 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_SHARPSL) += sharpsl.o
|
|
|
|
obj-$(CONFIG_MTD_NAND_NANDSIM) += nandsim.o
|
2006-05-12 05:35:28 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_CS553X) += cs553x_nand.o
|
2006-05-23 17:43:28 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_NDFC) += ndfc.o
|
2008-06-07 00:04:52 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_ATMEL) += atmel_nand.o
|
2008-10-15 14:38:49 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_GPIO) += gpio.o
|
2015-08-21 18:45:35 +08:00
|
|
|
omap2_nand-objs := omap2.o
|
|
|
|
obj-$(CONFIG_MTD_NAND_OMAP2) += omap2_nand.o
|
2014-10-01 19:33:29 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_OMAP_BCH_BUILD) += omap_elm.o
|
2007-04-22 13:53:21 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_CM_X270) += cmx270_nand.o
|
2008-02-14 15:48:23 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_PXA3xx) += pxa3xx_nand.o
|
2008-07-15 23:04:22 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_TMIO) += tmio_nand.o
|
2007-05-06 23:31:18 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_PLATFORM) += plat_nand.o
|
2007-11-29 08:37:31 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_PASEMI) += pasemi_nand.o
|
2007-10-17 07:10:40 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_ORION) += orion_nand.o
|
2008-02-07 05:36:21 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_FSL_ELBC) += fsl_elbc_nand.o
|
2012-03-15 13:34:23 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_FSL_IFC) += fsl_ifc_nand.o
|
2008-03-12 03:33:13 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_FSL_UPM) += fsl_upm.o
|
2012-06-07 18:22:15 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_SLC_LPC32XX) += lpc32xx_slc.o
|
2012-07-01 00:50:38 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_MLC_LPC32XX) += lpc32xx_mlc.o
|
2008-10-14 20:23:26 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_SH_FLCTL) += sh_flctl.o
|
2008-09-02 23:16:59 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_MXC) += mxc_nand.o
|
2009-03-25 18:48:38 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_SOCRATES) += socrates_nand.o
|
2009-03-05 04:01:34 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_TXX9NDFMC) += txx9ndfmc.o
|
2010-01-01 20:16:47 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_NUC900) += nuc900_nand.o
|
2010-02-16 01:35:05 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_MPC5121_NFC) += mpc5121_nfc.o
|
2015-09-03 09:06:33 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_VF610_NFC) += vf610_nfc.o
|
2010-02-23 02:39:42 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_RICOH) += r852.o
|
2010-07-17 19:15:29 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_JZ4740) += jz4740_nand.o
|
2016-01-04 20:34:43 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_JZ4780) += jz4780_nand.o jz4780_bch.o
|
2011-09-08 10:47:11 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_GPMI_NAND) += gpmi-nand/
|
2012-08-24 02:28:32 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_XWAY) += xway_nand.o
|
2012-11-12 20:03:21 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_BCM47XXNFLASH) += bcm47xxnflash/
|
2014-10-21 21:08:41 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_SUNXI) += sunxi_nand.o
|
2015-01-25 18:53:13 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_HISI504) += hisi504_nand.o
|
mtd: nand: add NAND driver "library" for Broadcom STB NAND controller
This core originated in Set-Top Box chips (BCM7xxx) but is used in a
variety of other Broadcom chips, including some BCM63xxx, BCM33xx, and
iProc/Cygnus. It's been used only on ARM and MIPS SoCs, so restrict it
to those architectures.
There are multiple revisions of this core throughout the years, and
almost every version broke register compatibility in some small way, but
with some effort, this driver is able to support v4.0, v5.0, v6.x, v7.0,
and v7.1. It's been tested on v5.0, v6.0, v6.1, v7.0, and v7.1 recently,
so there hopefully are no more lurking inconsistencies.
This patch adds just some library support, on which platform drivers can
be built.
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
2015-03-07 03:38:08 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_BRCMNAND) += brcmnand/
|
mtd: nand: Qualcomm NAND controller driver
The Qualcomm NAND controller is found in SoCs like IPQ806x, MSM7xx,
MDM9x15 series.
It exists as a sub block inside the IPs EBI2 (External Bus Interface 2)
and QPIC (Qualcomm Parallel Interface Controller). These IPs provide a
broader interface for external slow peripheral devices such as LCD and
NAND/NOR flash memory or SRAM like interfaces.
We add support for the NAND controller found within EBI2. For the SoCs
of our interest, we only use the NAND controller within EBI2. Therefore,
it's safe for us to assume that the NAND controller is a standalone block
within the SoC.
The controller supports 512B, 2kB, 4kB and 8kB page 8-bit and 16-bit NAND
flash devices. It contains a HW ECC block that supports BCH ECC (4, 8 and
16 bit correction/step) and RS ECC(4 bit correction/step) that covers main
and spare data. The controller contains an internal 512 byte page buffer
to which we read/write via DMA. The EBI2 type NAND controller uses ADM DMA
for register read/write and data transfers. The controller performs page
reads and writes at a codeword/step level of 512 bytes. It can support up
to 2 external chips of different configurations.
The driver prepares register read and write configuration descriptors for
each codeword, followed by data descriptors to read or write data from the
controller's internal buffer. It uses a single ADM DMA channel that we get
via dmaengine API. The controller requires 2 ADM CRCIs for command and
data flow control. These are passed via DT.
The ecc layout used by the controller is syndrome like, but we can't use
the standard syndrome ecc ops because of several reasons. First, the amount
of data bytes covered by ecc isn't same in each step. Second, writing to
free oob space requires us writing to the entire step in which the oob
lies. This forces us to create our own ecc ops.
One more difference is how the controller accesses the bad block marker.
The controller ignores reading the marker when ECC is enabled. ECC needs
to be explicity disabled to read or write to the bad block marker. The
nand_bbt helpers library hence can't access BBMs for the controller.
For now, we skip the creation of BBT and populate chip->block_bad and
chip->block_markbad helpers instead.
Reviewed-by: Andy Gross <agross@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Archit Taneja <architt@codeaurora.org>
Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
2016-02-03 16:59:50 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_QCOM) += qcom_nandc.o
|
2016-06-14 23:50:51 +08:00
|
|
|
obj-$(CONFIG_MTD_NAND_MTK) += mtk_nand.o mtk_ecc.o
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2014-07-11 15:49:42 +08:00
|
|
|
nand-objs := nand_base.o nand_bbt.o nand_timings.o
|