enum tmio_mmc_power     power;
 
        /* Callbacks for clock / power control */
+       void (*set_pwr)(struct platform_device *host, int state);
        void (*set_clk_div)(struct platform_device *host, int state);
 
        /* pio related stuff */
 
 
        /* .set_ios() is returning void, so, no chance to report an error */
 
+       if (host->set_pwr)
+               host->set_pwr(host->pdev, 1);
+
        if (!IS_ERR(mmc->supply.vmmc)) {
                ret = mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, vdd);
                /*
 
        if (!IS_ERR(mmc->supply.vmmc))
                mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, 0);
+
+       if (host->set_pwr)
+               host->set_pwr(host->pdev, 0);
 }
 
 /* Set MMC clock / power.
        _host->pdev = pdev;
        platform_set_drvdata(pdev, mmc);
 
+       _host->set_pwr = pdata->set_pwr;
        _host->set_clk_div = pdata->set_clk_div;
 
        /* SD control register space size is 0x200, 0x400 for bus_shift=1 */
 
        struct tmio_mmc_dma             *dma;
        struct device                   *dev;
        unsigned int                    cd_gpio;
+       void (*set_pwr)(struct platform_device *host, int state);
        void (*set_clk_div)(struct platform_device *host, int state);
        int (*write16_hook)(struct tmio_mmc_host *host, int addr);
        /* clock management callbacks */