mtd: nand: add NAND driver "library" for Broadcom STB NAND controller
authorBrian Norris <computersforpeace@gmail.com>
Fri, 6 Mar 2015 19:38:08 +0000 (11:38 -0800)
committerBrian Norris <computersforpeace@gmail.com>
Fri, 15 May 2015 20:15:58 +0000 (13:15 -0700)
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>
drivers/mtd/nand/Kconfig
drivers/mtd/nand/Makefile
drivers/mtd/nand/brcmnand/Makefile [new file with mode: 0644]
drivers/mtd/nand/brcmnand/brcmnand.c [new file with mode: 0644]
drivers/mtd/nand/brcmnand/brcmnand.h [new file with mode: 0644]

index 5897d8d..376b538 100644 (file)
@@ -394,6 +394,14 @@ config MTD_NAND_GPMI_NAND
         block, such as SD card. So pay attention to it when you enable
         the GPMI.
 
+config MTD_NAND_BRCMNAND
+       tristate "Broadcom STB NAND controller"
+       depends on ARM || MIPS
+       help
+         Enables the Broadcom NAND controller driver. The controller was
+         originally designed for Set-Top Box but is used on various BCM7xxx,
+         BCM3xxx, BCM63xxx, iProc/Cygnus and more.
+
 config MTD_NAND_BCM47XXNFLASH
        tristate "Support for NAND flash on BCM4706 BCMA bus"
        depends on BCMA_NFLASH
index 582bbd0..1f897ec 100644 (file)
@@ -52,5 +52,6 @@ obj-$(CONFIG_MTD_NAND_XWAY)           += xway_nand.o
 obj-$(CONFIG_MTD_NAND_BCM47XXNFLASH)   += bcm47xxnflash/
 obj-$(CONFIG_MTD_NAND_SUNXI)           += sunxi_nand.o
 obj-$(CONFIG_MTD_NAND_HISI504)         += hisi504_nand.o
+obj-$(CONFIG_MTD_NAND_BRCMNAND)                += brcmnand/
 
 nand-objs := nand_base.o nand_bbt.o nand_timings.o
Simple merge
Simple merge
Simple merge