
This serie is a RFC to port the support of driver brcmnand from kernel 4.18 to u-boot. I've tried to stay as close as possible to the kernel. In this first port, I haven't ported the support of DMA, it's not mandatory in the first step and it could be added later.
This code has been tested on bcm6838 (mips) and bcm6858 (arm64). This code isn't clean enough to be integrated. I just send this serie to show the code and ask some question.
In the code, I've used "#ifndef __UBOOT__" to show the difference between the kernel code. Is it a good way or is it better to just replace the code ?
I've also added a file with brcmnand_compat.[hc] to compat function with the kernel (for example platform_get_resource_byname). What is the prefered way to support this function on u-boot ? - just replace them by other code on u-boot - just add this function on the brcmnand driver - share this code for others driver (adding compat file for platform device, ...)
Boris Brezillon (1): mtd: nand: provide several helpers to do common NAND operations
Brian Norris (1): mtd: add get/set of_node/flash_node helpers
Marc Gonzalez (1): mtd: nand: import nand_hw_control_init()
Philippe Reynes (4): arm: asm: io.h: define readX_relaxed and writeX_relaxed drivers: nand: brcmnand: add initial support drivers: nand: brcmnand: add parameter parameter-page-big-endian drivers: nand: brcmnand: add an option to read the write-protect from device tree
arch/arm/include/asm/io.h | 15 + drivers/mtd/nand/raw/Kconfig | 19 + drivers/mtd/nand/raw/Makefile | 1 + drivers/mtd/nand/raw/brcmnand/Makefile | 6 + drivers/mtd/nand/raw/brcmnand/bcm6838_nand.c | 124 + drivers/mtd/nand/raw/brcmnand/bcm6858_nand.c | 126 + drivers/mtd/nand/raw/brcmnand/brcmnand.c | 2781 +++++++++++++++++++++++ drivers/mtd/nand/raw/brcmnand/brcmnand.h | 63 + drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c | 116 + drivers/mtd/nand/raw/brcmnand/brcmnand_compat.h | 32 + drivers/mtd/nand/raw/nand_base.c | 1013 +++++++-- include/linux/mtd/rawnand.h | 49 + 12 files changed, 4185 insertions(+), 160 deletions(-) create mode 100644 drivers/mtd/nand/raw/brcmnand/Makefile create mode 100644 drivers/mtd/nand/raw/brcmnand/bcm6838_nand.c create mode 100644 drivers/mtd/nand/raw/brcmnand/bcm6858_nand.c create mode 100644 drivers/mtd/nand/raw/brcmnand/brcmnand.c create mode 100644 drivers/mtd/nand/raw/brcmnand/brcmnand.h create mode 100644 drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c create mode 100644 drivers/mtd/nand/raw/brcmnand/brcmnand_compat.h