[PATCH v2 3/4] mtd: rawnand: denali_dt: use UCLASS_MTD instead of UCLASS_MISC

Simon Goldschmidt simon.k.r.goldschmidt at gmail.com
Wed Jan 29 18:08:10 CET 2020


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 at 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)
> 



More information about the U-Boot mailing list