New Arasan NAND controller driver Hello, This is a deep rework of Naga's Arasan NAND controller driver. This version is the final version and works with software ECC. It relies on a previous series called "Supporting restricted NAND controllers" that brings more flexibility to the NAND with the goal to support restricted controllers like this one. Cheers, Miquèl Changes in v3: * Prefix specific clock definitions with XLNX as they do not apply for any other SoC and are attached to a single compatible. * Used field getters/setters as defined in bitfield.h. * Force casting to u32 before shifting u8 values by 8 16 or 24 bits. * Comply with the recent core changes and select manually nand_monolithic_read/write_page_raw() helpers. * Add MAINTAINER patch. * Add a bit extraction helper in the core. * Rename BCH functions. * Add a swapping bit mechanism to BCH. * Support the hardware ECC engine. Changes in v2: * Working ->exec_op() implementation relying on core changes. * Dropped the ECC support for now, will be part of another series if this patch is accepted. Boris Brezillon (1): lib/bch: Allow easy bit swapping Miquel Raynal (7): lib/bch: Rework a little bit the exported function names mtd: rawnand: Ensure the number of bitflips is consistent mtd: rawnand: Add nand_extract_bits() MAINTAINERS: Add Arasan NAND controller and bindings dt-bindings: mtd: Document ARASAN NAND bindings mtd: rawnand: arasan: Add new Arasan NAND controller mtd: rawnand: arasan: Support the hardware BCH ECC engine .../bindings/mtd/arasan,nand-controller.yaml | 63 + MAINTAINERS | 7 + drivers/mtd/devices/docg3.c | 10 +- drivers/mtd/nand/raw/Kconfig | 7 + drivers/mtd/nand/raw/Makefile | 1 + drivers/mtd/nand/raw/arasan-nand-controller.c | 1207 +++++++++++++++++ drivers/mtd/nand/raw/nand_base.c | 41 +- drivers/mtd/nand/raw/nand_bch.c | 10 +- include/linux/bch.h | 9 +- include/linux/mtd/rawnand.h | 4 + lib/bch.c | 148 +- 11 files changed, 1443 insertions(+), 64 deletions(-) create mode 100644 Documentation/devicetree/bindings/mtd/arasan,nand-controller.yaml create mode 100644 drivers/mtd/nand/raw/arasan-nand-controller.c -- 2.20.1