summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/devices/m25p80.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-10-17 14:46:11 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2015-08-26 15:14:00 +0200
commit3e1adbf832b8f420906e6d5cbf5bec7617545c7e (patch)
tree28f7de3e43ee9021c312e05209e8b1b060b86a60 /drivers/mtd/devices/m25p80.c
parentf38ba32965c5686c062884fab2e9f505015af82a (diff)
downloadbarebox-3e1adbf832b8f420906e6d5cbf5bec7617545c7e.tar.gz
barebox-3e1adbf832b8f420906e6d5cbf5bec7617545c7e.tar.xz
mtd: m25p80: make it possible to use large blocks if desired
Some SPI NOR flashes support 4K erase blocks. 4K erase blocks do not work with UBIFS which needs a minimum erase block size of 15360 bytes. Also bigger sectors are faster to erase. This patch adds a device tree option to use the bigger blocks instead of the default 4K blocks. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Diffstat (limited to 'drivers/mtd/devices/m25p80.c')
-rw-r--r--drivers/mtd/devices/m25p80.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index 794c9dbd82..d627690080 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -235,6 +235,7 @@ static int m25p_probe(struct device_d *dev)
enum read_mode mode = SPI_NOR_NORMAL;
const char *flash_name = NULL;
int device_id;
+ bool use_large_blocks;
int ret;
data = dev->platform_data;
@@ -272,7 +273,10 @@ static int m25p_probe(struct device_d *dev)
else
flash_name = NULL; /* auto-detect */
- ret = spi_nor_scan(nor, flash_name, mode);
+ use_large_blocks = of_property_read_bool(dev->device_node,
+ "use-large-blocks");
+
+ ret = spi_nor_scan(nor, flash_name, mode, use_large_blocks);
if (ret)
return ret;