summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/nand
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mtd/nand')
-rw-r--r--drivers/mtd/nand/atmel_nand.c32
-rw-r--r--drivers/mtd/nand/nand_denali_dt.c16
-rw-r--r--drivers/mtd/nand/nand_imx.c22
-rw-r--r--drivers/mtd/nand/nand_mrvl_nfc.c6
-rw-r--r--drivers/mtd/nand/nand_mxs.c17
-rw-r--r--drivers/mtd/nand/nand_omap_gpmc.c6
-rw-r--r--drivers/mtd/nand/nand_orion.c8
-rw-r--r--drivers/mtd/nand/nand_s3c24xx.c6
8 files changed, 81 insertions, 32 deletions
diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
index 48d1783a96..299cc15c3d 100644
--- a/drivers/mtd/nand/atmel_nand.c
+++ b/drivers/mtd/nand/atmel_nand.c
@@ -862,6 +862,7 @@ static int pmecc_build_galois_table(unsigned int mm, int16_t *index_of,
static int __init atmel_pmecc_nand_init_params(struct device_d *dev,
struct atmel_nand_host *host)
{
+ struct resource *iores;
struct mtd_info *mtd = &host->mtd;
struct nand_chip *nand_chip = &host->nand_chip;
int cap, sector_size, err_no;
@@ -872,20 +873,27 @@ static int __init atmel_pmecc_nand_init_params(struct device_d *dev,
dev_info(host->dev, "Initialize PMECC params, cap: %d, sector: %d\n",
cap, sector_size);
- host->ecc = dev_request_mem_region(dev, 1);
+ iores = dev_request_mem_resource(dev, 1);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ host->ecc = IOMEM(iores->start);
if (IS_ERR(host->ecc)) {
dev_err(host->dev, "ioremap failed\n");
return -EIO;
}
- host->pmerrloc_base = dev_request_mem_region(dev, 2);
- if (IS_ERR(host->pmerrloc_base)) {
+ iores = dev_request_mem_resource(dev, 2);
+ if (IS_ERR(iores)) {
dev_err(host->dev,
"Can not get I/O resource for PMECC ERRLOC controller!\n");
- return PTR_ERR(host->pmerrloc_base);
+ return PTR_ERR(iores);
}
+ host->pmerrloc_base = IOMEM(iores->start);
- host->pmecc_rom_base = dev_request_mem_region(dev, 3);
+ iores = dev_request_mem_resource(dev, 3);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ host->pmecc_rom_base = IOMEM(iores->start);
if (IS_ERR(host->pmecc_rom_base)) {
/* Set pmecc_rom_base as the begin of gf table */
int size = sector_size == 512 ? 0x2000 : 0x4000;
@@ -1245,10 +1253,14 @@ static int atmel_nand_of_init(struct atmel_nand_host *host, struct device_node *
static int atmel_hw_nand_init_params(struct device_d *dev,
struct atmel_nand_host *host)
{
+ struct resource *iores;
struct mtd_info *mtd = &host->mtd;
struct nand_chip *nand_chip = &host->nand_chip;
- host->ecc = dev_request_mem_region(dev, 1);
+ iores = dev_request_mem_resource(dev, 1);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ host->ecc = IOMEM(iores->start);
if (IS_ERR(host->ecc)) {
dev_err(host->dev, "ioremap failed\n");
return -EIO;
@@ -1297,6 +1309,7 @@ static int atmel_hw_nand_init_params(struct device_d *dev,
*/
static int __init atmel_nand_probe(struct device_d *dev)
{
+ struct resource *iores;
struct atmel_nand_data *pdata = NULL;
struct atmel_nand_host *host;
struct mtd_info *mtd;
@@ -1312,9 +1325,10 @@ static int __init atmel_nand_probe(struct device_d *dev)
if (!pdata)
return -ENOMEM;
- host->io_base = dev_request_mem_region(dev, 0);
- if (IS_ERR(host->io_base))
- return PTR_ERR(host->io_base);
+ iores = dev_request_mem_resource(dev, 0);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ host->io_base = IOMEM(iores->start);
mtd = &host->mtd;
nand_chip = &host->nand_chip;
diff --git a/drivers/mtd/nand/nand_denali_dt.c b/drivers/mtd/nand/nand_denali_dt.c
index 6a3aee1415..2c6b188094 100644
--- a/drivers/mtd/nand/nand_denali_dt.c
+++ b/drivers/mtd/nand/nand_denali_dt.c
@@ -36,6 +36,7 @@ struct denali_dt {
static int denali_dt_probe(struct device_d *ofdev)
{
+ struct resource *iores;
struct denali_dt *dt;
struct denali_nand_info *denali;
int ret;
@@ -51,12 +52,15 @@ static int denali_dt_probe(struct device_d *ofdev)
denali->platform = DT;
denali->dev = ofdev;
- denali->flash_mem = dev_request_mem_region(ofdev, 0);
- if (IS_ERR(denali->flash_mem))
- return PTR_ERR(denali->flash_mem);
- denali->flash_reg = dev_request_mem_region(ofdev, 1);
- if (IS_ERR(denali->flash_reg))
- return PTR_ERR(denali->flash_reg);
+ iores = dev_request_mem_resource(ofdev, 0);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ denali->flash_mem = IOMEM(iores->start);
+
+ iores = dev_request_mem_resource(ofdev, 1);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ denali->flash_reg = IOMEM(iores->start);
dt->clk = clk_get(ofdev, NULL);
if (IS_ERR(dt->clk)) {
diff --git a/drivers/mtd/nand/nand_imx.c b/drivers/mtd/nand/nand_imx.c
index 6cabae06a9..6ea82a110d 100644
--- a/drivers/mtd/nand/nand_imx.c
+++ b/drivers/mtd/nand/nand_imx.c
@@ -1105,6 +1105,7 @@ static int __init mxcnd_probe_dt(struct imx_nand_host *host)
static int __init imxnd_probe(struct device_d *dev)
{
+ struct resource *iores;
struct nand_chip *this;
struct mtd_info *mtd;
struct imx_nand_host *host;
@@ -1146,7 +1147,10 @@ static int __init imxnd_probe(struct device_d *dev)
}
if (nfc_is_v21()) {
- host->base = dev_request_mem_region(dev, 0);
+ iores = dev_request_mem_resource(dev, 0);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ host->base = IOMEM(iores->start);
host->main_area0 = host->base;
host->regs = host->base + 0x1e00;
host->spare0 = host->base + 0x1000;
@@ -1155,7 +1159,10 @@ static int __init imxnd_probe(struct device_d *dev)
oob_largepage = &nandv2_hw_eccoob_largepage;
oob_4kpage = &nandv2_hw_eccoob_4k; /* FIXME : to check */
} else if (nfc_is_v1()) {
- host->base = dev_request_mem_region(dev, 0);
+ iores = dev_request_mem_resource(dev, 0);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ host->base = IOMEM(iores->start);
host->main_area0 = host->base;
host->regs = host->base + 0xe00;
host->spare0 = host->base + 0x800;
@@ -1164,8 +1171,15 @@ static int __init imxnd_probe(struct device_d *dev)
oob_largepage = &nandv1_hw_eccoob_largepage;
oob_4kpage = &nandv1_hw_eccoob_smallpage; /* FIXME : to check */
} else if (nfc_is_v3_2()) {
- host->regs_ip = dev_request_mem_region(dev, 0);
- host->base = dev_request_mem_region(dev, 1);
+ iores = dev_request_mem_resource(dev, 0);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ host->regs_ip = IOMEM(iores->start);
+
+ iores = dev_request_mem_resource(dev, 1);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ host->base = IOMEM(iores->start);
host->main_area0 = host->base;
if (IS_ERR(host->regs_ip)) {
diff --git a/drivers/mtd/nand/nand_mrvl_nfc.c b/drivers/mtd/nand/nand_mrvl_nfc.c
index f160d15ab5..578790da26 100644
--- a/drivers/mtd/nand/nand_mrvl_nfc.c
+++ b/drivers/mtd/nand/nand_mrvl_nfc.c
@@ -1105,6 +1105,7 @@ static int mrvl_nand_scan(struct mtd_info *mtd)
static struct mrvl_nand_host *alloc_nand_resource(struct device_d *dev)
{
+ struct resource *iores;
struct mrvl_nand_platform_data *pdata;
struct mrvl_nand_host *host;
struct nand_chip *chip = NULL;
@@ -1135,7 +1136,10 @@ static struct mrvl_nand_host *alloc_nand_resource(struct device_d *dev)
chip->chip_delay = CHIP_DELAY_TIMEOUT_US;
host->dev = dev;
- host->mmio_base = dev_request_mem_region(dev, 0);
+ iores = dev_request_mem_resource(dev, 0);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ host->mmio_base = IOMEM(iores->start);
if (IS_ERR(host->mmio_base)) {
free(host);
return host->mmio_base;
diff --git a/drivers/mtd/nand/nand_mxs.c b/drivers/mtd/nand/nand_mxs.c
index 7635e2a418..20bda14b62 100644
--- a/drivers/mtd/nand/nand_mxs.c
+++ b/drivers/mtd/nand/nand_mxs.c
@@ -1274,6 +1274,7 @@ static void mxs_nand_probe_dt(struct device_d *dev, struct mxs_nand_info *nand_i
static int mxs_nand_probe(struct device_d *dev)
{
+ struct resource *iores;
struct mxs_nand_info *nand_info;
struct nand_chip *nand;
struct mtd_info *mtd;
@@ -1293,13 +1294,15 @@ static int mxs_nand_probe(struct device_d *dev)
mxs_nand_probe_dt(dev, nand_info);
nand_info->type = type;
- nand_info->io_base = dev_request_mem_region(dev, 0);
- if (IS_ERR(nand_info->io_base))
- return PTR_ERR(nand_info->io_base);
-
- nand_info->bch_base = dev_request_mem_region(dev, 1);
- if (IS_ERR(nand_info->bch_base))
- return PTR_ERR(nand_info->bch_base);
+ iores = dev_request_mem_resource(dev, 0);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ nand_info->io_base = IOMEM(iores->start);
+
+ iores = dev_request_mem_resource(dev, 1);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ nand_info->bch_base = IOMEM(iores->start);
nand_info->clk = clk_get(dev, NULL);
if (IS_ERR(nand_info->clk))
diff --git a/drivers/mtd/nand/nand_omap_gpmc.c b/drivers/mtd/nand/nand_omap_gpmc.c
index 9d9d27e964..a920522939 100644
--- a/drivers/mtd/nand/nand_omap_gpmc.c
+++ b/drivers/mtd/nand/nand_omap_gpmc.c
@@ -846,6 +846,7 @@ static int gpmc_set_buswidth(struct nand_chip *chip, int buswidth)
*/
static int gpmc_nand_probe(struct device_d *pdev)
{
+ struct resource *iores;
struct gpmc_nand_info *oinfo;
struct gpmc_nand_platform_data *pdata;
struct nand_chip *nand;
@@ -881,7 +882,10 @@ static int gpmc_nand_probe(struct device_d *pdev)
}
/* Setup register specific data */
oinfo->gpmc_cs = pdata->cs;
- oinfo->gpmc_base = dev_request_mem_region(pdev, 0);
+ iores = dev_request_mem_resource(pdev, 0);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ oinfo->gpmc_base = IOMEM(iores->start);
cs_base = oinfo->gpmc_base + GPMC_CONFIG1_0 +
(pdata->cs * GPMC_CONFIG_CS_SIZE);
oinfo->gpmc_command = (void *)(cs_base + GPMC_CS_NAND_COMMAND);
diff --git a/drivers/mtd/nand/nand_orion.c b/drivers/mtd/nand/nand_orion.c
index fe06ef7912..881ffeec05 100644
--- a/drivers/mtd/nand/nand_orion.c
+++ b/drivers/mtd/nand/nand_orion.c
@@ -80,6 +80,7 @@ static void orion_nand_read_buf(struct mtd_info *mtd, uint8_t *buf, int len)
static int orion_nand_probe(struct device_d *dev)
{
+ struct resource *iores;
struct device_node *dev_node = dev->device_node;
struct orion_nand *priv;
struct mtd_info *mtd;
@@ -93,9 +94,10 @@ static int orion_nand_probe(struct device_d *dev)
mtd = &priv->mtd;
chip = &priv->chip;
- io_base = dev_request_mem_region(dev, 0);
- if (IS_ERR(io_base))
- return PTR_ERR(io_base);
+ iores = dev_request_mem_resource(dev, 0);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ io_base = IOMEM(iores->start);
if (!of_property_read_u32(dev_node, "cle", &val))
priv->cle = (u8)val;
diff --git a/drivers/mtd/nand/nand_s3c24xx.c b/drivers/mtd/nand/nand_s3c24xx.c
index 37bba39260..83d45172b1 100644
--- a/drivers/mtd/nand/nand_s3c24xx.c
+++ b/drivers/mtd/nand/nand_s3c24xx.c
@@ -408,6 +408,7 @@ static int s3c24x0_nand_inithw(struct s3c24x0_nand_host *host)
static int s3c24x0_nand_probe(struct device_d *dev)
{
+ struct resource *iores;
struct nand_chip *chip;
struct s3c24x0_nand_platform_data *pdata = dev->platform_data;
struct mtd_info *mtd;
@@ -420,7 +421,10 @@ static int s3c24x0_nand_probe(struct device_d *dev)
return -ENOMEM;
host->dev = dev;
- host->base = dev_request_mem_region(dev, 0);
+ iores = dev_request_mem_resource(dev, 0);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ host->base = IOMEM(iores->start);
/* structures must be linked */
chip = &host->nand;