
This serie is a 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), bcm63158 (arm) and bcm6858 (arm64).
In the code, I've used "#ifndef __UBOOT__" to show the difference between the kernel code.
I've also added a file brcmnand_compat.[hc] to compat function with the kernel (for example devm_clk_get).
Changes in v1: - define less function in brcmnand_compat.c/h and add more #ifndef __UBOOT__ - port completion.h (function stubbed) from kernel 4.18 - define devm_ioremap for everybody - remove duplicate SoB - update text commit - add support of bcm63158
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 (15): arm: asm: io.h: define readX_relaxed and writeX_relaxed include: linux: io: define devm_ioremap on board with ioremap compat linux: import completion from linux 4.18 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 dt: bcm6838: add nand controller dt: bcm968380gerg: enable nand controller bcm968380gerg: add nand support dt: bcm6858: add nand controller dt: bcm968580xref: enable nand controller bcm968580xref: add nand support dt: bcm63158: add nand controller dt: bcm963158: enable nand controller bcm963158: add nand support
arch/arm/dts/bcm63158.dtsi | 13 + arch/arm/dts/bcm6858.dtsi | 13 + arch/arm/dts/bcm963158.dts | 15 + arch/arm/dts/bcm968580xref.dts | 15 + arch/arm/include/asm/io.h | 21 + arch/mips/dts/brcm,bcm6838.dtsi | 13 + arch/mips/dts/brcm,bcm968380gerg.dts | 12 + configs/bcm963158_ram_defconfig | 6 + configs/bcm968380gerg_ram_defconfig | 7 + configs/bcm968580xref_ram_defconfig | 7 + drivers/mtd/nand/raw/Kconfig | 25 + drivers/mtd/nand/raw/Makefile | 1 + drivers/mtd/nand/raw/brcmnand/Makefile | 7 + drivers/mtd/nand/raw/brcmnand/bcm63158_nand.c | 123 + drivers/mtd/nand/raw/brcmnand/bcm6838_nand.c | 122 + drivers/mtd/nand/raw/brcmnand/bcm6858_nand.c | 123 + drivers/mtd/nand/raw/brcmnand/brcmnand.c | 2805 +++++++++++++++++++++++ drivers/mtd/nand/raw/brcmnand/brcmnand.h | 63 + drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c | 66 + drivers/mtd/nand/raw/brcmnand/brcmnand_compat.h | 15 + drivers/mtd/nand/raw/nand_base.c | 1013 ++++++-- include/configs/broadcom_bcm963158.h | 7 + include/configs/broadcom_bcm968380gerg.h | 7 + include/configs/broadcom_bcm968580xref.h | 7 + include/linux/completion.h | 173 ++ include/linux/io.h | 2 +- include/linux/mtd/rawnand.h | 49 + 27 files changed, 4569 insertions(+), 161 deletions(-) create mode 100644 drivers/mtd/nand/raw/brcmnand/Makefile create mode 100644 drivers/mtd/nand/raw/brcmnand/bcm63158_nand.c 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 create mode 100644 include/linux/completion.h