mtd: rawnand: denali: remove the old unified controller/chip DT support
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Mon, 21 Oct 2019 02:26:54 +0000 (11:26 +0900)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 29 Oct 2019 13:40:38 +0000 (14:40 +0100)
Commit d8e8fd0ebf8b ("mtd: rawnand: denali: decouple controller and
NAND chips") supported the new binding for the separate controller/chip
representation, keeping the backward compatibility.

All the device trees in upstream migrated to the new binding.

Remove the support for the old binding.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
drivers/mtd/nand/raw/denali_dt.c

index 5e14836..4cce9ae 100644 (file)
@@ -102,47 +102,6 @@ static int denali_dt_chip_init(struct denali_controller *denali,
        return denali_chip_init(denali, dchip);
 }
 
-/* Backward compatibility for old platforms */
-static int denali_dt_legacy_chip_init(struct denali_controller *denali)
-{
-       struct denali_chip *dchip;
-       int nsels, i;
-
-       nsels = denali->nbanks;
-
-       dchip = devm_kzalloc(denali->dev, struct_size(dchip, sels, nsels),
-                            GFP_KERNEL);
-       if (!dchip)
-               return -ENOMEM;
-
-       dchip->nsels = nsels;
-
-       for (i = 0; i < nsels; i++)
-               dchip->sels[i].bank = i;
-
-       nand_set_flash_node(&dchip->chip, denali->dev->of_node);
-
-       return denali_chip_init(denali, dchip);
-}
-
-/*
- * Check the DT binding.
- * The new binding expects chip subnodes in the controller node.
- * So, #address-cells = <1>; #size-cells = <0>; are required.
- * Check the #size-cells to distinguish the binding.
- */
-static bool denali_dt_is_legacy_binding(struct device_node *np)
-{
-       u32 cells;
-       int ret;
-
-       ret = of_property_read_u32(np, "#size-cells", &cells);
-       if (ret)
-               return true;
-
-       return cells != 0;
-}
-
 static int denali_dt_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
@@ -213,17 +172,11 @@ static int denali_dt_probe(struct platform_device *pdev)
        if (ret)
                goto out_disable_clk_ecc;
 
-       if (denali_dt_is_legacy_binding(dev->of_node)) {
-               ret = denali_dt_legacy_chip_init(denali);
-               if (ret)
+       for_each_child_of_node(dev->of_node, np) {
+               ret = denali_dt_chip_init(denali, np);
+               if (ret) {
+                       of_node_put(np);
                        goto out_remove_denali;
-       } else {
-               for_each_child_of_node(dev->of_node, np) {
-                       ret = denali_dt_chip_init(denali, np);
-                       if (ret) {
-                               of_node_put(np);
-                               goto out_remove_denali;
-                       }
                }
        }