OSDN Git Service

mtd: physmap_of: allow to specify the mtd name for retro compatiblity
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Wed, 7 Nov 2012 15:32:16 +0000 (16:32 +0100)
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Fri, 16 Nov 2012 08:57:39 +0000 (10:57 +0200)
linux,mtd-name allow to specify the mtd name for retro capability with
physmap-flash drivers as boot loader pass the mtd partition via the old
device name physmap-flash.

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Documentation/devicetree/bindings/mtd/mtd-physmap.txt
drivers/mtd/maps/physmap_of.c

index 94de19b..dab7847 100644 (file)
@@ -23,6 +23,9 @@ file systems on embedded devices.
    unaligned accesses as implemented in the JFFS2 code via memcpy().
    By defining "no-unaligned-direct-access", the flash will not be
    exposed directly to the MTD users (e.g. JFFS2) any more.
+ - linux,mtd-name: allow to specify the mtd name for retro capability with
+   physmap-flash drivers as boot loader pass the mtd partition via the old
+   device name physmap-flash.
 
 For JEDEC compatible devices, the following additional properties
 are defined:
index 6f19aca..d7f19bc 100644 (file)
@@ -170,6 +170,7 @@ static int __devinit of_flash_probe(struct platform_device *dev)
        resource_size_t res_size;
        struct mtd_part_parser_data ppdata;
        bool map_indirect;
+       const char *mtd_name;
 
        match = of_match_device(of_flash_match, &dev->dev);
        if (!match)
@@ -178,6 +179,8 @@ static int __devinit of_flash_probe(struct platform_device *dev)
 
        reg_tuple_size = (of_n_addr_cells(dp) + of_n_size_cells(dp)) * sizeof(u32);
 
+       of_property_read_string(dp, "linux,mtd-name", &mtd_name);
+
        /*
         * Get number of "reg" tuples. Scan for MTD devices on area's
         * described by each "reg" region. This makes it possible (including
@@ -234,7 +237,7 @@ static int __devinit of_flash_probe(struct platform_device *dev)
                        goto err_out;
                }
 
-               info->list[i].map.name = dev_name(&dev->dev);
+               info->list[i].map.name = mtd_name ?: dev_name(&dev->dev);
                info->list[i].map.phys = res.start;
                info->list[i].map.size = res_size;
                info->list[i].map.bankwidth = be32_to_cpup(width);