* outputs in a "wire-AND" configuration, with no per-chip signals.
  */
 struct davinci_nand_info {
+       struct nand_controller  controller;
        struct nand_chip        chip;
 
        struct platform_device  *pdev;
        spin_unlock_irq(&davinci_nand_lock);
 
        /* Scan to find existence of the device(s) */
-       info->chip.legacy.dummy_controller.ops = &davinci_nand_controller_ops;
+       nand_controller_init(&info->controller);
+       info->controller.ops = &davinci_nand_controller_ops;
+       info->chip.controller = &info->controller;
        ret = nand_scan(&info->chip, pdata->mask_chipsel ? 2 : 1);
        if (ret < 0) {
                dev_dbg(&pdev->dev, "no NAND chip(s) found\n");