On Tue, Feb 12, 2019 at 04:13:00PM +0900, Masahiro Yamada wrote: > Currently, this driver sticks to the legacy NAND model because it was > upstreamed before commit 2d472aba15ff ("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: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> > --- > > Changes in v2: None > > .../devicetree/bindings/mtd/denali-nand.txt | 39 +- Acked-by: Rob Herring <robh@xxxxxxxxxx> > drivers/mtd/nand/raw/denali.c | 453 ++++++++++++--------- > drivers/mtd/nand/raw/denali.h | 117 +++++- > drivers/mtd/nand/raw/denali_dt.c | 98 ++++- > drivers/mtd/nand/raw/denali_pci.c | 30 +- > 5 files changed, 500 insertions(+), 237 deletions(-)