[PATCH 7/7] mtd: m25p80: Allow to specify devicename via devicetree alias

Sascha Hauer s.hauer at pengutronix.de
Mon Oct 28 08:01:40 EDT 2013


Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 drivers/mtd/devices/m25p80.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index 429ddf6..1e3bc93 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -808,6 +808,8 @@ static int m25p_probe(struct device_d *dev)
 	struct flash_info		*info = NULL;
 	unsigned			i;
 	unsigned			do_jdec_probe = 1;
+	char				*flashname = NULL;
+	int				device_id;
 
 	/* Platform data helps sort out which chip type we have, as
 	 * well as how this board partitions it.  If we don't have
@@ -876,10 +878,19 @@ static int m25p_probe(struct device_d *dev)
 		write_sr(flash, 0);
 	}
 
-	if (data && data->name)
-		flash->mtd.name = data->name;
-	else
-		flash->mtd.name = "m25p";
+	device_id = DEVICE_ID_SINGLE;
+	if (dev->device_node) {
+		const char *alias = of_alias_get(dev->device_node);
+		if (alias)
+			flashname = xstrdup(alias);
+	} else if (data && data->name) {
+		flashname = data->name;
+	}
+
+	if (!flashname) {
+		device_id = DEVICE_ID_DYNAMIC;
+		flashname = "m25p";
+	}
 
 	flash->mtd.type = MTD_NORFLASH;
 	flash->mtd.writesize = 1;
@@ -942,7 +953,7 @@ static int m25p_probe(struct device_d *dev)
 				flash->mtd.eraseregions[i].erasesize / 1024,
 				flash->mtd.eraseregions[i].numblocks);
 
-	return add_mtd_device(&flash->mtd, flash->mtd.name, DEVICE_ID_DYNAMIC);
+	return add_mtd_device(&flash->mtd, flashname, device_id);
 }
 
 static __maybe_unused struct of_device_id m25p80_dt_ids[] = {
-- 
1.8.4.rc3




More information about the barebox mailing list