• Boris Brezillon's avatar
    mtd: nand: Cleanup/rework the atmel_nand driver · f88fc122
    Boris Brezillon authored
    This is a complete rewrite of the driver whose main purpose is to
    support the new DT representation where the NAND controller node is now
    really visible in the DT and appears under the EBI bus. With this new
    representation, we can add other devices under the EBI bus without
    risking pinmuxing conflicts (the NAND controller is under the EBI
    bus logic and as such, share some of its pins with other devices
    connected on this bus).
    
    Even though the goal of this rework was not necessarily to add new
    features, the new driver has been designed with this in mind. With a
    clearer separation between the different blocks and different IP
    revisions, adding new functionalities should be easier (we already
    have plans to support SMC timing configuration so that we no longer
    have to rely on the configuration done by the bootloader/bootstrap).
    
    Also note that we no longer have a custom ->cmdfunc() implementation,
    which means we can now benefit from new features added in the core
    implementation for free (support for new NAND operations for example).
    
    The last thing that we gain with this rework is support for multi-chips
    and multi-dies chips, thanks to the clean NAND controller <-> NAND
    devices representation.
    
    During this transition we also dropped support for AVR32 SoCs which
    should soon disappear from mainline (removal of the AVR32 arch is
    planned for 4.12).
    
    This new driver has been tested on several platforms (at91sam9261,
    at91sam9g45, at91sam9x5, sama5d3 and sama5d4) to make sure it did not
    introduce regressions, and it's worth mentioning that old bindings are
    still supported (which partly explain the positive diffstat).
    Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
    Acked-by: default avatarNicolas Ferre <nicolas.ferre@microchip.com>
    f88fc122
Makefile 148 Bytes