mtd: fsmc_nand.c: Use default timings if none are provided in the dts

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Wed Apr 22 10:59:05 PDT 2015


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=62b57f4c1475a4c452000192e5cad2ae86164be5
Commit:     62b57f4c1475a4c452000192e5cad2ae86164be5
Parent:     d800fcabc75a091569b6e19a67844eb264c7db9b
Author:     Stefan Roese <sr at denx.de>
AuthorDate: Thu Mar 19 14:34:29 2015 +0100
Committer:  Brian Norris <computersforpeace at gmail.com>
CommitDate: Mon Mar 30 17:49:07 2015 -0700

    mtd: fsmc_nand.c: Use default timings if none are provided in the dts
    
    Without this patch the timings are all set to 0 if not specified in the dts.
    With this patch the driver falls back to use the defaults that are already
    present in the driver and are known to work okay for some (older) boards.
    
    Tested on a custom SPEAr600 based board.
    
    Signed-off-by: Stefan Roese <sr at denx.de>
    Acked-by: Linus Walleij <linus.walleij at linaro.org>
    Cc: Viresh Kumar <viresh.linux at gmail.com>
    Cc: Mian Yousaf Kaukab <mian.yousaf.kaukab at stericsson.com>
    Signed-off-by: Brian Norris <computersforpeace at gmail.com>
---
 drivers/mtd/nand/fsmc_nand.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/mtd/nand/fsmc_nand.c b/drivers/mtd/nand/fsmc_nand.c
index edfaa21..e58af4b 100644
--- a/drivers/mtd/nand/fsmc_nand.c
+++ b/drivers/mtd/nand/fsmc_nand.c
@@ -873,6 +873,7 @@ static int fsmc_nand_probe_config_dt(struct platform_device *pdev,
 {
 	struct fsmc_nand_platform_data *pdata = dev_get_platdata(&pdev->dev);
 	u32 val;
+	int ret;
 
 	/* Set default NAND width to 8 bits */
 	pdata->width = 8;
@@ -891,8 +892,12 @@ static int fsmc_nand_probe_config_dt(struct platform_device *pdev,
 				sizeof(*pdata->nand_timings), GFP_KERNEL);
 	if (!pdata->nand_timings)
 		return -ENOMEM;
-	of_property_read_u8_array(np, "timings", (u8 *)pdata->nand_timings,
+	ret = of_property_read_u8_array(np, "timings", (u8 *)pdata->nand_timings,
 						sizeof(*pdata->nand_timings));
+	if (ret) {
+		dev_info(&pdev->dev, "No timings in dts specified, using default timings!\n");
+		pdata->nand_timings = NULL;
+	}
 
 	/* Set default NAND bank to 0 */
 	pdata->bank = 0;



More information about the linux-mtd-cvs mailing list