Commit f34a5072 authored by Masahiro Yamada's avatar Masahiro Yamada Committed by Miquel Raynal
Browse files

mtd: rawnand: denali: remove the old unified controller/chip DT support



Commit d8e8fd0e ("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: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
parent 5121b421
Loading
Loading
Loading
Loading
+4 −51
Original line number Diff line number Diff line
@@ -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,11 +172,6 @@ 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)
			goto out_remove_denali;
	} else {
	for_each_child_of_node(dev->of_node, np) {
		ret = denali_dt_chip_init(denali, np);
		if (ret) {
@@ -225,7 +179,6 @@ static int denali_dt_probe(struct platform_device *pdev)
			goto out_remove_denali;
		}
	}
	}

	platform_set_drvdata(pdev, dt);