aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/devices
diff options
context:
space:
mode:
authorLee Jones <lee.jones@linaro.org>2014-03-20 05:21:07 -0400
committerBrian Norris <computersforpeace@gmail.com>2014-03-20 07:17:22 -0400
commit221cff13cacc55b495bac33bf0f79abe59a6f265 (patch)
tree999a8ef5cc4208202a375fc57ae50cec761df963 /drivers/mtd/devices
parente6b1bb4e18919b969cd876d48b40733993c2a7c7 (diff)
mtd: st_spi_fsm: Convert ST SPI FSM (NOR) Flash driver to new DT partitions
The old API expected a "partitions" property provided a phandle to a separate partitions node, which itself contained yet more nodes each representing one partition. The new API rids the requirement for the superfluous intermediary partitions node. This patch provides the added information required for automatic parsing by the core. Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Diffstat (limited to 'drivers/mtd/devices')
-rw-r--r--drivers/mtd/devices/st_spi_fsm.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/mtd/devices/st_spi_fsm.c b/drivers/mtd/devices/st_spi_fsm.c
index dccbac013340..aefd48db7ade 100644
--- a/drivers/mtd/devices/st_spi_fsm.c
+++ b/drivers/mtd/devices/st_spi_fsm.c
@@ -18,6 +18,7 @@
18#include <linux/platform_device.h> 18#include <linux/platform_device.h>
19#include <linux/mfd/syscon.h> 19#include <linux/mfd/syscon.h>
20#include <linux/mtd/mtd.h> 20#include <linux/mtd/mtd.h>
21#include <linux/mtd/partitions.h>
21#include <linux/sched.h> 22#include <linux/sched.h>
22#include <linux/delay.h> 23#include <linux/delay.h>
23#include <linux/io.h> 24#include <linux/io.h>
@@ -1997,6 +1998,7 @@ boot_device_fail:
1997static int stfsm_probe(struct platform_device *pdev) 1998static int stfsm_probe(struct platform_device *pdev)
1998{ 1999{
1999 struct device_node *np = pdev->dev.of_node; 2000 struct device_node *np = pdev->dev.of_node;
2001 struct mtd_part_parser_data ppdata;
2000 struct flash_info *info; 2002 struct flash_info *info;
2001 struct resource *res; 2003 struct resource *res;
2002 struct stfsm *fsm; 2004 struct stfsm *fsm;
@@ -2006,6 +2008,7 @@ static int stfsm_probe(struct platform_device *pdev)
2006 dev_err(&pdev->dev, "No DT found\n"); 2008 dev_err(&pdev->dev, "No DT found\n");
2007 return -EINVAL; 2009 return -EINVAL;
2008 } 2010 }
2011 ppdata.of_node = np;
2009 2012
2010 fsm = devm_kzalloc(&pdev->dev, sizeof(*fsm), GFP_KERNEL); 2013 fsm = devm_kzalloc(&pdev->dev, sizeof(*fsm), GFP_KERNEL);
2011 if (!fsm) 2014 if (!fsm)
@@ -2062,6 +2065,7 @@ static int stfsm_probe(struct platform_device *pdev)
2062 return ret; 2065 return ret;
2063 } 2066 }
2064 2067
2068 fsm->mtd.name = info->name;
2065 fsm->mtd.dev.parent = &pdev->dev; 2069 fsm->mtd.dev.parent = &pdev->dev;
2066 fsm->mtd.type = MTD_NORFLASH; 2070 fsm->mtd.type = MTD_NORFLASH;
2067 fsm->mtd.writesize = 4; 2071 fsm->mtd.writesize = 4;
@@ -2081,7 +2085,7 @@ static int stfsm_probe(struct platform_device *pdev)
2081 (long long)fsm->mtd.size, (long long)(fsm->mtd.size >> 20), 2085 (long long)fsm->mtd.size, (long long)(fsm->mtd.size >> 20),
2082 fsm->mtd.erasesize, (fsm->mtd.erasesize >> 10)); 2086 fsm->mtd.erasesize, (fsm->mtd.erasesize >> 10));
2083 2087
2084 return mtd_device_parse_register(&fsm->mtd, NULL, NULL, NULL, 0); 2088 return mtd_device_parse_register(&fsm->mtd, NULL, &ppdata, NULL, 0);
2085} 2089}
2086 2090
2087static int stfsm_remove(struct platform_device *pdev) 2091static int stfsm_remove(struct platform_device *pdev)