[U-Boot] [PATCH 1/2] sunxi: axp152: Keep DRAM / Vddr at bootloader set value

Hans de Goede
2014-10-15T09:56:17Z

Some fex files contain wrong values, causing stability issues.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/power/axp152.c | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/drivers/power/axp152.c b/drivers/power/axp152.c
index 77132e1..3b8e68f 100644
--- a/drivers/power/axp152.c
+++ b/drivers/power/axp152.c
@@ -541,15 +541,17 @@ static struct regulator_init_data regl_init_data[AXP152_REGULATOR_COUNT] = {
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
}
},
- [axp152_dcdc3] = { /* Vddr, power on 1.5V, Android from fex */
+ [axp152_dcdc3] = { /* Vddr, power on 1.5V, use u-boot value */
.num_consumer_supplies = 1,
.consumer_supplies = &axp152_dcdc3_supply,
.constraints = {
- .min_uV = 1500 * 1000,
- .max_uV = 1500 * 1000,
+ .min_uV = 1000 * 1000,
+ .max_uV = 1600 * 1000,
.always_on = 1,
- .apply_uV = 1,
- .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+ /*
+ * We do not allow changing the DRAM voltage, because
+ * of stability, so no REGULATOR_CHANGE_VOLTAGE.
+ */
}
},
[axp152_dcdc4] = { /* Vcpu, power on 1.25V, Android from fex */
@@ -622,11 +624,11 @@ static int __init axp_board_init(void)

/* Note we ignore the dcdc2_vol key as dcdc2 is set by the dvfs code */

- ret = script_parser_fetch("target", "dcdc3_vol", &val, sizeof(int));
- if (ret == 0) {
- regl_init_data[axp152_dcdc3].constraints.min_uV = val * 1000;
- regl_init_data[axp152_dcdc3].constraints.max_uV = val * 1000;
- }
+ /*
+ * Note we ignore the dcdc3_vol key as that sometimes contains wrong
+ * values make the dram unstable, instead we stick with the bootloader
+ * set voltage.
+ */

ret = script_parser_fetch("target", "dcdc4_vol", &val, sizeof(int));
if (ret == 0) {
--
2.1.0