aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Green <andy@openmoko.com>2008-11-19 17:09:58 +0000
committerAndy Green <agreen@pads.home.warmcat.com>2008-11-19 17:09:58 +0000
commit3b661186115c28e351916cd212dfdf4b85d6a980 (patch)
tree4603474e1bdac0dd99490c4c979b09ee985c5c35
parente657000f34109f3f8f7e28dc70de08e9855bc6a0 (diff)
fix-allow-full-sd-voltage-range-selection.patch
Until now we just drove the SD Card at 3.3V all the time. But in fact we can do better, and use a voltage negotiated with the SD Card itself. With the shipping 512MB Sandisk SD Card, 2.7V is negotiated which gives 1.7dBm reduction in power on all the SD Card lines and should further reduce GPS perturbation during SD Card usage. Signed-off-by: Andy Green <andy@openmoko.com>
-rw-r--r--arch/arm/mach-s3c2440/mach-gta02.c10
-rw-r--r--drivers/mfd/glamo/glamo-core.c13
2 files changed, 16 insertions, 7 deletions
diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c
index 1fcd3fd2844..382837d27d6 100644
--- a/arch/arm/mach-s3c2440/mach-gta02.c
+++ b/arch/arm/mach-s3c2440/mach-gta02.c
@@ -604,7 +604,7 @@ static struct pcf50633_platform_data gta02_pcf_pdata = {
[PCF50633_REGULATOR_HCLDO] = {
.name = "sd_3v3",
.voltage = {
- .init = 3300,
+ .init = 2000,
.max = 3300,
},
},
@@ -1378,11 +1378,9 @@ gta02_glamo_mmc_set_power(unsigned char power_mode, unsigned short vdd)
return;
}
/* select and set the voltage */
- if (vdd > 7) {
- mv += 300 + 100 * (vdd - 8);
- if (mv > 3500)
- mv = 3500;
- }
+ if (vdd > 7)
+ mv += 350 + 100 * (vdd - 8);
+ printk(KERN_INFO "SD power -> %dmV\n", mv);
pcf50633_voltage_set(pcf50633_global,
PCF50633_REGULATOR_HCLDO, mv);
pcf50633_onoff_set(pcf50633_global,
diff --git a/drivers/mfd/glamo/glamo-core.c b/drivers/mfd/glamo/glamo-core.c
index ee339010f07..cb9b056169f 100644
--- a/drivers/mfd/glamo/glamo-core.c
+++ b/drivers/mfd/glamo/glamo-core.c
@@ -270,7 +270,18 @@ static struct platform_device glamo_mmc_dev = {
struct glamo_mci_pdata glamo_mci_def_pdata = {
.gpio_detect = 0,
.glamo_set_mci_power = NULL, /* filled in from MFD platform data */
- .ocr_avail = MMC_VDD_32_33,
+ .ocr_avail = MMC_VDD_20_21 |
+ MMC_VDD_21_22 |
+ MMC_VDD_22_23 |
+ MMC_VDD_23_24 |
+ MMC_VDD_24_25 |
+ MMC_VDD_25_26 |
+ MMC_VDD_26_27 |
+ MMC_VDD_27_28 |
+ MMC_VDD_28_29 |
+ MMC_VDD_29_30 |
+ MMC_VDD_30_31 |
+ MMC_VDD_32_33,
.glamo_irq_is_wired = NULL, /* filled in from MFD platform data */
.mci_suspending = NULL, /* filled in from MFD platform data */
.mci_all_dependencies_resumed = NULL, /* filled in from MFD platform data */