spinand: bind UBI block

UBI block is virtual block device, which is an abstraction
over MTD layer. Therefore it is logical to use it in combination
with MTD drivers.

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
This commit is contained in:
Alexey Romanov
2024-07-18 08:45:28 +03:00
committed by Michael Trimarchi
parent aa5b67ce22
commit 855f9b6241

View File

@@ -25,6 +25,7 @@
#include <watchdog.h>
#include <spi.h>
#include <spi-mem.h>
#include <ubi_uboot.h>
#include <dm/device_compat.h>
#include <dm/devres.h>
#include <linux/bitops.h>
@@ -1180,9 +1181,16 @@ static int spinand_bind(struct udevice *dev)
{
if (blk_enabled()) {
struct spinand_plat *plat = dev_get_plat(dev);
int ret;
if (CONFIG_IS_ENABLED(MTD_BLOCK))
return mtd_bind(dev, &plat->mtd);
if (CONFIG_IS_ENABLED(MTD_BLOCK)) {
ret = mtd_bind(dev, &plat->mtd);
if (ret)
return ret;
}
if (CONFIG_IS_ENABLED(UBI_BLOCK))
return ubi_bind(dev);
}
return 0;