mbox series

[U-Boot,00/18] Initial support of driver brcmnand (from kernel 4.18)

Message ID 1552659287-11246-1-git-send-email-philippe.reynes@softathome.com
Headers show
Series Initial support of driver brcmnand (from kernel 4.18) | expand

Message

Philippe REYNES March 15, 2019, 2:14 p.m. UTC
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