aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mtd/nand/fsmc_nand.c9
-rw-r--r--include/linux/mtd/fsmc.h5
2 files changed, 10 insertions, 4 deletions
diff --git a/drivers/mtd/nand/fsmc_nand.c b/drivers/mtd/nand/fsmc_nand.c
index abbff77fd106..4dda9bb38334 100644
--- a/drivers/mtd/nand/fsmc_nand.c
+++ b/drivers/mtd/nand/fsmc_nand.c
@@ -729,27 +729,28 @@ static int __init fsmc_nand_probe(struct platform_device *pdev)
729 goto err_probe1; 729 goto err_probe1;
730 } 730 }
731 731
732 host->resaddr = request_mem_region(res->start + PLAT_NAND_ALE, 732 host->resaddr = request_mem_region(res->start + pdata->ale_off,
733 resource_size(res), pdev->name); 733 resource_size(res), pdev->name);
734 if (!host->resaddr) { 734 if (!host->resaddr) {
735 ret = -EIO; 735 ret = -EIO;
736 goto err_probe1; 736 goto err_probe1;
737 } 737 }
738 738
739 host->addr_va = ioremap(res->start + PLAT_NAND_ALE, resource_size(res)); 739 host->addr_va = ioremap(res->start + pdata->ale_off,
740 resource_size(res));
740 if (!host->addr_va) { 741 if (!host->addr_va) {
741 ret = -EIO; 742 ret = -EIO;
742 goto err_probe1; 743 goto err_probe1;
743 } 744 }
744 745
745 host->rescmd = request_mem_region(res->start + PLAT_NAND_CLE, 746 host->rescmd = request_mem_region(res->start + pdata->cle_off,
746 resource_size(res), pdev->name); 747 resource_size(res), pdev->name);
747 if (!host->rescmd) { 748 if (!host->rescmd) {
748 ret = -EIO; 749 ret = -EIO;
749 goto err_probe1; 750 goto err_probe1;
750 } 751 }
751 752
752 host->cmd_va = ioremap(res->start + PLAT_NAND_CLE, resource_size(res)); 753 host->cmd_va = ioremap(res->start + pdata->cle_off, resource_size(res));
753 if (!host->cmd_va) { 754 if (!host->cmd_va) {
754 ret = -EIO; 755 ret = -EIO;
755 goto err_probe1; 756 goto err_probe1;
diff --git a/include/linux/mtd/fsmc.h b/include/linux/mtd/fsmc.h
index 6987995ad3cf..2cd655f06e05 100644
--- a/include/linux/mtd/fsmc.h
+++ b/include/linux/mtd/fsmc.h
@@ -151,6 +151,11 @@ struct fsmc_nand_platform_data {
151 unsigned int options; 151 unsigned int options;
152 unsigned int width; 152 unsigned int width;
153 unsigned int bank; 153 unsigned int bank;
154
155 /* CLE, ALE offsets */
156 unsigned long cle_off;
157 unsigned long ale_off;
158
154 void (*select_bank)(uint32_t bank, uint32_t busw); 159 void (*select_bank)(uint32_t bank, uint32_t busw);
155}; 160};
156 161