[PATCH] h1940: implement mmc_power function

Vasily Khoruzhick anarsoul at gmail.com
Sat Jun 12 08:46:03 EDT 2010


Signed-off-by: Vasily Khoruzhick <anarsoul at gmail.com>
---
 arch/arm/mach-s3c2410/include/mach/h1940-latch.h |    7 +++----
 arch/arm/mach-s3c2410/mach-h1940.c               |   17 ++++++++++++++++-
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/arch/arm/mach-s3c2410/include/mach/h1940-latch.h b/arch/arm/mach-s3c2410/include/mach/h1940-latch.h
index d8a8327..a29bc1c 100644
--- a/arch/arm/mach-s3c2410/include/mach/h1940-latch.h
+++ b/arch/arm/mach-s3c2410/include/mach/h1940-latch.h
@@ -39,8 +39,8 @@
 #define H1940_LATCH_UDA_POWER		(1<<24)
 #define H1940_LATCH_AUDIO_POWER		(1<<25)
 #define H1940_LATCH_SM803_ENABLE	(1<<26)
-#define H1940_LATCH_LCD_P4		(1<<27)
-#define H1940_LATCH_CPUQ5		(1<<28)		/* untraced */
+#define H1940_LATCH_LCD_P4			(1<<27)
+#define H1940_LATCH_SD_POWER		(1<<28)
 #define H1940_LATCH_BLUETOOTH_POWER	(1<<29)		/* active high */
 #define H1940_LATCH_LED_GREEN		(1<<30)
 #define H1940_LATCH_LED_FLASH		(1<<31)
@@ -54,8 +54,7 @@
 	H1940_LATCH_LCD_P1		| \
 	H1940_LATCH_LCD_P2		| \
 	H1940_LATCH_LCD_P3		| \
-	H1940_LATCH_MAX1698_nSHUTDOWN   | \
-	H1940_LATCH_CPUQ5
+	H1940_LATCH_MAX1698_nSHUTDOWN
 
 /* control functions */
 
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c
index 779b45b..ddeedad 100644
--- a/arch/arm/mach-s3c2410/mach-h1940.c
+++ b/arch/arm/mach-s3c2410/mach-h1940.c
@@ -198,10 +198,25 @@ static struct platform_device h1940_device_bluetooth = {
 	.id               = -1,
 };
 
+static void h1940_set_mmc_power(unsigned char power_mode, unsigned short vdd)
+{
+	switch (power_mode) {
+	case MMC_POWER_OFF:
+		h1940_latch_control(H1940_LATCH_SD_POWER, 0);
+		break;
+	case MMC_POWER_UP:
+	case MMC_POWER_ON:
+		h1940_latch_control(0, H1940_LATCH_SD_POWER);
+		break;
+	default:
+		break;
+	}
+}
+
 static struct s3c24xx_mci_pdata h1940_mmc_cfg __initdata = {
 	.gpio_detect   = S3C2410_GPF(5),
 	.gpio_wprotect = S3C2410_GPH(8),
-	.set_power     = NULL,
+	.set_power     = h1940_set_mmc_power,
 	.ocr_avail     = MMC_VDD_32_33,
 };
 
-- 
1.7.1




More information about the linux-arm-kernel mailing list