diff options
author | Andy Green <andy@openmoko.com> | 2008-11-19 17:09:58 +0000 |
---|---|---|
committer | Andy Green <agreen@pads.home.warmcat.com> | 2008-11-19 17:09:58 +0000 |
commit | 3b661186115c28e351916cd212dfdf4b85d6a980 (patch) | |
tree | 4603474e1bdac0dd99490c4c979b09ee985c5c35 | |
parent | e657000f34109f3f8f7e28dc70de08e9855bc6a0 (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.c | 10 | ||||
-rw-r--r-- | drivers/mfd/glamo/glamo-core.c | 13 |
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 */ |