mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-16 22:46:42 +07:00
mtd: rawnand: denali: remove the old unified controller/chip DT support
Commit d8e8fd0ebf
("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>
This commit is contained in:
parent
5121b42199
commit
f34a5072c4
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user