unsigned int ocr_mask;                  /* available voltages */
        u32 (*translate_vdd)(struct device *, unsigned int);
        unsigned int (*status)(struct device *);
+       int     gpio_wp;
+       int     gpio_cd;
 };
 
 #endif
 
 static struct mmc_platform_data mmc_data = {
        .ocr_mask       = MMC_VDD_32_33|MMC_VDD_33_34,
        .status         = mmc_status,
+       .gpio_wp        = -1,
+       .gpio_cd        = -1,
 };
 
 static struct amba_device mmc_device = {
 
 struct mmc_platform_data realview_mmc0_plat_data = {
        .ocr_mask       = MMC_VDD_32_33|MMC_VDD_33_34,
        .status         = realview_mmc_status,
+       .gpio_wp        = -1,
+       .gpio_cd        = -1,
 };
 
 struct mmc_platform_data realview_mmc1_plat_data = {
        .ocr_mask       = MMC_VDD_32_33|MMC_VDD_33_34,
        .status         = realview_mmc_status,
+       .gpio_wp        = -1,
+       .gpio_cd        = -1,
 };
 
 /*
 
        mmci_card->mmc0_plat_data.ocr_mask = MMC_VDD_28_29;
        mmci_card->mmc0_plat_data.translate_vdd = mmc_translate_vdd;
        mmci_card->mmc0_plat_data.status = mmc_status;
+       mmci_card->mmc0_plat_data.gpio_wp = -1;
+       mmci_card->mmc0_plat_data.gpio_cd = -1;
 
        mmcsd_device->platform_data = (void *) &mmci_card->mmc0_plat_data;
 
 
 static struct mmc_platform_data mmc0_plat_data = {
        .ocr_mask       = MMC_VDD_32_33|MMC_VDD_33_34,
        .status         = mmc_status,
+       .gpio_wp        = -1,
+       .gpio_cd        = -1,
 };
 
 /*
 
 static struct mmc_platform_data mmc1_plat_data = {
        .ocr_mask       = MMC_VDD_32_33|MMC_VDD_33_34,
        .status         = mmc_status,
+       .gpio_wp        = -1,
+       .gpio_cd        = -1,
 };
 
 static struct pl061_platform_data gpio2_plat_data = {