diff -Naur a/arch/arm/mach-s3c2442/htchermes/htchermes.c b/arch/arm/mach-s3c2442/htchermes/htchermes.c
--- a/arch/arm/mach-s3c2442/htchermes/htchermes.c	2007-06-09 08:01:32.000000000 +0200
+++ b/arch/arm/mach-s3c2442/htchermes/htchermes.c	2007-06-27 11:47:07.000000000 +0200
@@ -22,6 +22,9 @@
 #include <linux/input.h>
 #include <linux/gpio_keys.h>
 
+#include <linux/mmc/host.h>
+#include <linux/mmc/protocol.h>
+
 #include <linux/soc/asic3_base.h>
 
 #include <linux/mtd/mtd.h>
@@ -48,6 +51,7 @@
 #include <asm/arch/irqs.h>
 #include <asm/arch/nand.h>
 #include <asm/arch/fb.h>
+#include <asm/arch/mci.h>
 
 #include <asm/plat-s3c24xx/clock.h>
 #include <asm/plat-s3c24xx/devs.h>
@@ -169,6 +173,26 @@
 	},
 };
 
+static void s3c2410_mmc_def_setpower(unsigned char power_mode, unsigned short vdd)
+{
+//	s3c2410_gpio_cfgpin(S3C2410_GPH8, S3C2410_GPIO_OUTPUT);
+
+        switch (power_mode) {
+        case MMC_POWER_OFF:
+//		s3c2410_gpio_setpin(S3C2410_GPH8, 0);
+                break;
+        case MMC_POWER_ON:
+//		s3c2410_gpio_setpin(S3C2410_GPH8, 1);
+                break;
+        }
+}
+
+static struct s3c24xx_mci_pdata htchermes_mmc_cfg = {
+	.gpio_detect  = S3C2410_GPF5,
+	.set_power  = s3c2410_mmc_def_setpower,
+	.ocr_avail  = MMC_VDD_32_33,
+};
+
 static struct platform_device *htchermes_devices[] __initdata = {
 	&s3c_device_usb,
 	&s3c_device_wdt,
@@ -205,6 +229,7 @@
 static void __init htchermes_init_machine(void)
 {
 	s3c2410_pm_init();
+	s3c_device_sdi.dev.platform_data = &htchermes_mmc_cfg;
 }
 
 

