--- /dev/null
+--- a/drivers/mtd/nand/plat_nand.c
++++ b/drivers/mtd/nand/plat_nand.c
+@@ -31,6 +31,7 @@ static int plat_nand_probe(struct platfo
+ {
+ struct platform_nand_data *pdata = dev_get_platdata(&pdev->dev);
+ struct mtd_part_parser_data ppdata;
++ struct device_node *np = pdev->dev.of_node;
+ struct plat_nand_data *data;
+ struct resource *res;
+ const char **part_types;
+@@ -58,6 +59,7 @@ static int plat_nand_probe(struct platfo
+ return PTR_ERR(data->io_base);
+
+ data->chip.priv = &data;
++ data->chip.flash_node = np;
+ data->mtd.priv = &data->chip;
+ data->mtd.dev.parent = &pdev->dev;
+
+@@ -105,7 +107,7 @@ static int plat_nand_probe(struct platfo
+
+ part_types = pdata->chip.part_probe_types;
+
+- ppdata.of_node = pdev->dev.of_node;
++ ppdata.of_node = np;
+ err = mtd_device_parse_register(&data->mtd, part_types, &ppdata,
+ pdata->chip.partitions,
+ pdata->chip.nr_partitions);