]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/mtd/nand/fsmc_nand.c
Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma
[karo-tx-linux.git] / drivers / mtd / nand / fsmc_nand.c
index a66576863e539011ee024e62c6f0b61c699cb93d..05ba3f0c2d194ee5c6a0d745f0a78b6744f23486 100644 (file)
@@ -871,7 +871,7 @@ static bool filter(struct dma_chan *chan, void *slave)
 
 #ifdef CONFIG_OF
 static int fsmc_nand_probe_config_dt(struct platform_device *pdev,
-                                              struct device_node *np)
+                                    struct device_node *np)
 {
        struct fsmc_nand_platform_data *pdata = dev_get_platdata(&pdev->dev);
        u32 val;
@@ -893,7 +893,7 @@ static int fsmc_nand_probe_config_dt(struct platform_device *pdev,
 }
 #else
 static int fsmc_nand_probe_config_dt(struct platform_device *pdev,
-                                              struct device_node *np)
+                                    struct device_node *np)
 {
        return -ENOSYS;
 }
@@ -943,42 +943,35 @@ static int __init fsmc_nand_probe(struct platform_device *pdev)
        if (!res)
                return -EINVAL;
 
-       host->data_va = devm_request_and_ioremap(&pdev->dev, res);
-       if (!host->data_va) {
-               dev_err(&pdev->dev, "data ioremap failed\n");
-               return -ENOMEM;
-       }
+       host->data_va = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(host->data_va))
+               return PTR_ERR(host->data_va);
+       
        host->data_pa = (dma_addr_t)res->start;
 
        res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nand_addr");
        if (!res)
                return -EINVAL;
 
-       host->addr_va = devm_request_and_ioremap(&pdev->dev, res);
-       if (!host->addr_va) {
-               dev_err(&pdev->dev, "ale ioremap failed\n");
-               return -ENOMEM;
-       }
+       host->addr_va = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(host->addr_va))
+               return PTR_ERR(host->addr_va);
 
        res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nand_cmd");
        if (!res)
                return -EINVAL;
 
-       host->cmd_va = devm_request_and_ioremap(&pdev->dev, res);
-       if (!host->cmd_va) {
-               dev_err(&pdev->dev, "ale ioremap failed\n");
-               return -ENOMEM;
-       }
+       host->cmd_va = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(host->cmd_va))
+               return PTR_ERR(host->cmd_va);
 
        res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "fsmc_regs");
        if (!res)
                return -EINVAL;
 
-       host->regs_va = devm_request_and_ioremap(&pdev->dev, res);
-       if (!host->regs_va) {
-               dev_err(&pdev->dev, "regs ioremap failed\n");
-               return -ENOMEM;
-       }
+       host->regs_va = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(host->regs_va))
+               return PTR_ERR(host->regs_va);
 
        host->clk = clk_get(&pdev->dev, NULL);
        if (IS_ERR(host->clk)) {
@@ -1224,6 +1217,7 @@ static SIMPLE_DEV_PM_OPS(fsmc_nand_pm_ops, fsmc_nand_suspend, fsmc_nand_resume);
 #ifdef CONFIG_OF
 static const struct of_device_id fsmc_nand_id_table[] = {
        { .compatible = "st,spear600-fsmc-nand" },
+       { .compatible = "stericsson,fsmc-nand" },
        {}
 };
 MODULE_DEVICE_TABLE(of, fsmc_nand_id_table);