From 3e1adbf832b8f420906e6d5cbf5bec7617545c7e Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Fri, 17 Oct 2014 14:46:11 +0200 Subject: 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 Signed-off-by: Philipp Zabel --- drivers/mtd/devices/m25p80.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'drivers/mtd/devices') 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; -- cgit v1.2.3