mtd: omap: add new variable to platform data to control onenand unlocking
authorRoman Tereshonkov <roman.tereshonkov@nokia.com>
Thu, 17 Feb 2011 11:44:42 +0000 (13:44 +0200)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Fri, 11 Mar 2011 14:22:47 +0000 (14:22 +0000)
New variable skip_initial_unlocking is added to the omap_onenand_platform_data.
This is used to inform the onenand driver to skip onenand unlocking when it
is initialized.

Signed-off-by: Roman Tereshonkov <roman.tereshonkov@nokia.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
arch/arm/plat-omap/include/plat/onenand.h
drivers/mtd/onenand/omap2.c

index affe87e..1b430d5 100644 (file)
@@ -24,6 +24,7 @@ struct omap_onenand_platform_data {
        int                     dma_channel;
        u8                      flags;
        u8                      regulator_can_sleep;
+       u8                      skip_initial_unlocking;
 };
 
 #define ONENAND_MAX_PARTITIONS 8
index c849cac..ea32c2f 100644 (file)
@@ -631,6 +631,7 @@ static int __devinit omap2_onenand_probe(struct platform_device *pdev)
 {
        struct omap_onenand_platform_data *pdata;
        struct omap2_onenand *c;
+       struct onenand_chip *this;
        int r;
 
        pdata = pdev->dev.platform_data;
@@ -728,9 +729,8 @@ static int __devinit omap2_onenand_probe(struct platform_device *pdev)
 
        c->mtd.dev.parent = &pdev->dev;
 
+       this = &c->onenand;
        if (c->dma_channel >= 0) {
-               struct onenand_chip *this = &c->onenand;
-
                this->wait = omap2_onenand_wait;
                if (cpu_is_omap34xx()) {
                        this->read_bufferram = omap3_onenand_read_bufferram;
@@ -751,6 +751,9 @@ static int __devinit omap2_onenand_probe(struct platform_device *pdev)
                c->onenand.disable = omap2_onenand_disable;
        }
 
+       if (pdata->skip_initial_unlocking)
+               this->options |= ONENAND_SKIP_INITIAL_UNLOCKING;
+
        if ((r = onenand_scan(&c->mtd, 1)) < 0)
                goto err_release_regulator;