• Masahiro Yamada's avatar
    mtd: rawnand: denali: decouple controller and NAND chips · d8e8fd0e
    Masahiro Yamada authored
    Currently, this driver sticks to the legacy NAND model because it was
    upstreamed before commit 2d472aba ("mtd: nand: document the NAND
    controller/NAND chip DT representation"). However, relying on the
    dummy_controller is already deprecated.
    
    Switch over to the new controller/chip representation.
    
    The struct denali_nand_info has been split into denali_controller
    and denali_chip, to contain the controller data, per-chip data,
    respectively.
    
    One problem is, this commit changes the DT binding. So, as always,
    the backward compatibility must be taken into consideration.
    
    In the new binding, the controller node expects
    
      #address-cells = <1>;
      #size-cells = <0>;
    
    ... since the child nodes represent NAND chips.
    
    In the old binding, the controller node may have subnodes, but they
    are MTD partitions.
    
    The denali_dt_is_legacy_binding() exploits it to distinguish old/new
    platforms.
    
    Going forward, the old binding is only allowed for existing DT files.
    I updated the binding document.
    Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    Acked-by: default avatarRob Herring <robh@kernel.org>
    Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
    d8e8fd0e
denali-nand.txt 1.97 KB