On Wed, Jan 11, 2023 at 06:40:08PM +0100, Ahmad Fatoum wrote: > For a few years, Linux has been using the new EBI bindings for NAND > controllers on all AT91 SoCs newer than the AT91RM2000. We have so far > only supported the old bindings by hacking the DT, but this doesn't > suffice for the SAMA5D4. Therefore import a new state of the Linux NAND > controller driver. We still keep around the old barebox driver to > support the non-DT enabled AT91 platforms. > > Ahmad Fatoum (15): > asm-generic: io.h: sync with Linux > mtd: nand: base: implement nand_gpio_waitrdy > mtd: nand: prefix enum nand_ecc_algo constants with NAND_ECC_ALGO_ > mtd: nand: rename nand_device::eccreq to Linux' ecc.requirements > mtd: nand: define nand_get_(small|large)_page_ooblayout > mtd: nand: define nand_interface_is_sdr > mtd: nand: provide Linux' struct nand_ecc_ctrl::engine_type > driver: implement dev_request_resource > lib: provide stub Linux "generic" allocator API > memory: add Atmel EBI driver > mfd: add atmel-smc driver > mtd: nand: atmel: import Linux NAND controller driver > ARM: AT91: sama5d3_xplained: switch to upstream binding > mtd: nand: drop DT support in legacy driver > ARM: AT91: sama5d3: always read memory size from controller Applied, thanks Sascha > > arch/arm/dts/at91-microchip-ksz9477-evb.dts | 4 - > arch/arm/dts/at91-sama5d3_xplained.dts | 29 - > arch/arm/dts/sama5d3.dtsi | 17 +- > drivers/base/driver.c | 19 +- > drivers/memory/Kconfig | 14 + > drivers/memory/Makefile | 1 + > drivers/memory/atmel-ebi.c | 614 +++++ > drivers/mfd/Kconfig | 4 + > drivers/mfd/Makefile | 1 + > drivers/mfd/atmel-smc.c | 352 +++ > drivers/mtd/nand/Kconfig | 11 +- > drivers/mtd/nand/Makefile | 2 +- > drivers/mtd/nand/atmel/Makefile | 3 + > drivers/mtd/nand/{ => atmel}/atmel_nand_ecc.h | 0 > .../mtd/nand/{atmel_nand.c => atmel/legacy.c} | 106 +- > drivers/mtd/nand/atmel/nand-controller.c | 2049 +++++++++++++++++ > drivers/mtd/nand/atmel/pmecc.c | 992 ++++++++ > drivers/mtd/nand/atmel/pmecc.h | 70 + > drivers/mtd/nand/nand_base.c | 86 +- > drivers/mtd/nand/nand_esmt.c | 10 +- > drivers/mtd/nand/nand_fsl_ifc.c | 2 +- > drivers/mtd/nand/nand_hynix.c | 40 +- > drivers/mtd/nand/nand_jedec.c | 4 +- > drivers/mtd/nand/nand_micron.c | 16 +- > drivers/mtd/nand/nand_onfi.c | 8 +- > drivers/mtd/nand/nand_samsung.c | 18 +- > drivers/mtd/nand/nand_toshiba.c | 12 +- > include/asm-generic/io.h | 401 +++- > include/driver.h | 5 + > include/linux/genalloc.h | 36 + > include/linux/mfd/syscon/atmel-matrix.h | 112 + > include/linux/mfd/syscon/atmel-smc.h | 119 + > include/linux/mtd/nand.h | 27 +- > include/linux/mtd/rawnand.h | 43 +- > include/linux/mutex.h | 2 + > include/soc/at91/atmel-sfr.h | 2 + > lib/Kconfig | 5 + > lib/Makefile | 1 + > lib/genalloc.c | 118 + > 39 files changed, 5074 insertions(+), 281 deletions(-) > create mode 100644 drivers/memory/atmel-ebi.c > create mode 100644 drivers/mfd/atmel-smc.c > create mode 100644 drivers/mtd/nand/atmel/Makefile > rename drivers/mtd/nand/{ => atmel}/atmel_nand_ecc.h (100%) > rename drivers/mtd/nand/{atmel_nand.c => atmel/legacy.c} (92%) > create mode 100644 drivers/mtd/nand/atmel/nand-controller.c > create mode 100644 drivers/mtd/nand/atmel/pmecc.c > create mode 100644 drivers/mtd/nand/atmel/pmecc.h > create mode 100644 include/linux/genalloc.h > create mode 100644 include/linux/mfd/syscon/atmel-matrix.h > create mode 100644 include/linux/mfd/syscon/atmel-smc.h > create mode 100644 lib/genalloc.c > > -- > 2.30.2 > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |