Skip to content

Commit

Permalink
mtd: fsmc: use ALE and CLE offsets from platform data
Browse files Browse the repository at this point in the history
ALE and CLE offsets can be different on different devices. Let devices
pass these offsets to the fsmc driver through platform data.

Signed-off-by: Shiraz Hashim <shiraz.hashim@st.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
  • Loading branch information
Shiraz Hashim authored and David Woodhouse committed Mar 26, 2012
1 parent e29ee57 commit b2acc92
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
9 changes: 5 additions & 4 deletions drivers/mtd/nand/fsmc_nand.c
Original file line number Diff line number Diff line change
Expand Up @@ -729,27 +729,28 @@ static int __init fsmc_nand_probe(struct platform_device *pdev)
goto err_probe1;
}

host->resaddr = request_mem_region(res->start + PLAT_NAND_ALE,
host->resaddr = request_mem_region(res->start + pdata->ale_off,
resource_size(res), pdev->name);
if (!host->resaddr) {
ret = -EIO;
goto err_probe1;
}

host->addr_va = ioremap(res->start + PLAT_NAND_ALE, resource_size(res));
host->addr_va = ioremap(res->start + pdata->ale_off,
resource_size(res));
if (!host->addr_va) {
ret = -EIO;
goto err_probe1;
}

host->rescmd = request_mem_region(res->start + PLAT_NAND_CLE,
host->rescmd = request_mem_region(res->start + pdata->cle_off,
resource_size(res), pdev->name);
if (!host->rescmd) {
ret = -EIO;
goto err_probe1;
}

host->cmd_va = ioremap(res->start + PLAT_NAND_CLE, resource_size(res));
host->cmd_va = ioremap(res->start + pdata->cle_off, resource_size(res));
if (!host->cmd_va) {
ret = -EIO;
goto err_probe1;
Expand Down
5 changes: 5 additions & 0 deletions include/linux/mtd/fsmc.h
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,11 @@ struct fsmc_nand_platform_data {
unsigned int options;
unsigned int width;
unsigned int bank;

/* CLE, ALE offsets */
unsigned long cle_off;
unsigned long ale_off;

void (*select_bank)(uint32_t bank, uint32_t busw);
};

Expand Down

0 comments on commit b2acc92

Please sign in to comment.