
Am 29.01.2020 um 16:55 schrieb Masahiro Yamada:
UCLASS_MTD is a better fit for NAND drivers.
Make NAND_DENALI_DT depend on DM_MTD, which is needed to compile drivers/mtd/mtd-uclass.c
Also, make ARCH_SOCFPGA and ARCH_UNIPHIER select DM_MTD because they use this driver.
Signed-off-by: Masahiro Yamada yamada.masahiro@socionext.com
Changes in v2:
- new patch
arch/arm/Kconfig | 2 ++ drivers/mtd/nand/raw/Kconfig | 2 +- drivers/mtd/nand/raw/denali_dt.c | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 1236315168..d1c58667c7 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -935,6 +935,7 @@ config ARCH_SOCFPGA select ARM64 if TARGET_SOCFPGA_STRATIX10 || TARGET_SOCFPGA_AGILEX select CPU_V7A if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10 select DM
- select DM_MTD
Does any socfpga actually enable the denali driver? Do we need to default to this instead of enabling it in a defconfig?
If we need it, could you please change that to 'imply'? Not all configs will need this.
Thanks, Simon
select DM_SERIAL select ENABLE_ARM_SOC_BOOT0_HOOK if TARGET_SOCFPGA_GEN5 || TARGET_SOCFPGA_ARRIA10 select OF_CONTROL @@ -1548,6 +1549,7 @@ config ARCH_UNIPHIER select DM_GPIO select DM_I2C select DM_MMC
- select DM_MTD select DM_RESET select DM_SERIAL select DM_USB
diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index 7814d84ba0..23201ca720 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -116,7 +116,7 @@ config NAND_DENALI config NAND_DENALI_DT bool "Support Denali NAND controller as a DT device" select NAND_DENALI
- depends on OF_CONTROL && DM
- depends on OF_CONTROL && DM_MTD help Enable the driver for NAND flash on platforms using a Denali NAND controller as a DT device.
diff --git a/drivers/mtd/nand/raw/denali_dt.c b/drivers/mtd/nand/raw/denali_dt.c index 587e480faa..759ad40e51 100644 --- a/drivers/mtd/nand/raw/denali_dt.c +++ b/drivers/mtd/nand/raw/denali_dt.c @@ -160,7 +160,7 @@ static int denali_dt_probe(struct udevice *dev)
U_BOOT_DRIVER(denali_nand_dt) = { .name = "denali-nand-dt",
- .id = UCLASS_MISC,
- .id = UCLASS_MTD, .of_match = denali_nand_dt_ids, .probe = denali_dt_probe, .priv_auto_alloc_size = sizeof(struct denali_nand_info),
@@ -171,7 +171,7 @@ void board_nand_init(void) struct udevice *dev; int ret;
- ret = uclass_get_device_by_driver(UCLASS_MISC,
- ret = uclass_get_device_by_driver(UCLASS_MTD, DM_GET_DRIVER(denali_nand_dt), &dev); if (ret && ret != -ENODEV)