dm: implement a MTD uclass

Implement a Memory Technology Device (MTD) uclass. It should
include most flash drivers in the future. Though no uclass ops
are defined yet, the MTD ops could be used.

The NAND flash driver is based on MTD. The CFI flash and SPI
flash support MTD, too. It should make sense to convert them
to MTD uclass.

Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
This commit is contained in:
Thomas Chou
2015-11-07 14:20:31 +08:00
parent b375219e73
commit d85879938d
7 changed files with 63 additions and 0 deletions

View File

@@ -1,3 +1,15 @@
menu "MTD Support"
config MTD
bool "Enable Driver Model for MTD drivers"
depends on DM
help
Enable driver model for Memory Technology Devices (MTD), such as
flash, RAM and similar chips, often used for solid state file
systems on embedded devices.
endmenu
source "drivers/mtd/nand/Kconfig"
source "drivers/mtd/spi/Kconfig"

View File

@@ -8,6 +8,7 @@
ifneq (,$(findstring y,$(CONFIG_MTD_DEVICE)$(CONFIG_CMD_NAND)$(CONFIG_CMD_ONENAND)$(CONFIG_CMD_SF)))
obj-y += mtdcore.o mtd_uboot.o
endif
obj-$(CONFIG_MTD) += mtd-uclass.o
obj-$(CONFIG_MTD_PARTITIONS) += mtdpart.o
obj-$(CONFIG_MTD_CONCAT) += mtdconcat.o
obj-$(CONFIG_HAS_DATAFLASH) += at45.o

21
drivers/mtd/mtd-uclass.c Normal file
View File

@@ -0,0 +1,21 @@
/*
* Copyright (C) 2015 Thomas Chou <thomas@wytron.com.tw>
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <dm.h>
#include <errno.h>
#include <mtd.h>
/*
* Implement a MTD uclass which should include most flash drivers.
* The uclass private is pointed to mtd_info.
*/
UCLASS_DRIVER(mtd) = {
.id = UCLASS_MTD,
.name = "mtd",
.per_device_auto_alloc_size = sizeof(struct mtd_info),
};