[PATCH] power management for NAND flash

Vitaly Wool vwool at ru.mvista.com
Mon Sep 12 12:08:16 EDT 2005


Hi Martin,

Exactly. We should.
But prior to shut off the clock/power down the flash we need to put the 
flash driver into the corresponding state (suspended).

Thus, a typical suspend (pseudo) code for NAND flash will look the 
following way:

static int chip_nand_suspend(struct device *dev, u32 state, u32 level)
{
        int retval = 0;

#ifdef CONFIG_PM
        struct mtd_info *mtd = dev_get_drvdata(dev);
        if (mtd && mtd->suspend && level == SUSPEND_SAVE_STATE) {
                retval = mtd->suspend(mtd);
                if (retval == 0) {
                        /* shut off the clocks and power down the 
controller here */
                }
        }
#endif
        return retval;
}

with a resume routine doing just the oppsite.


Hope that clarifies the whole thing :)

Best regards,
   Vitaly

Martin Waitz wrote:

>hoi :)
>
>On Mon, Sep 12, 2005 at 03:12:44PM +0400, Vitaly Wool wrote:
>  
>
>>the patch inlined below allows to suspend/resume NAND flash.
>>    
>>
>
>shouldn't we call the board driver while suspending,
>to allow to actually power down the NAND flash?
>
>  
>





More information about the linux-mtd mailing list