Hi, On 10/04/2014 07:53 AM, Siarhei Siamashka wrote: > The dcdc3 voltage is expected to be set by the bootloader and the right > voltage depends on the DRAM settings (higher clock speed needs more > voltage). Allowing to use the 'dcdc3_vol' parameter from the FEX file > only introduces an unnecessary fragile dependency between the settings > in u-boot and the settings in FEX. So now we ignore this parameter in > FEX and keep the original dcdc3 voltage set by the bootloader. > > The dmesg log now looks like this: > > [ 2.212941] axp20_ldo1: 1300 mV > [ 2.221370] axp20_ldo2: 1800 <--> 3300 mV at 3000 mV > [ 2.231662] axp20_ldo3: 700 <--> 3500 mV at 2800 mV > [ 2.241747] axp20_ldo4: 1250 <--> 3300 mV at 2800 mV > [ 2.251906] axp20_buck2: 700 <--> 2275 mV at 1400 mV > [ 2.263430] somebody is trying to set dcdc3 range to (1300000, 1300000) uV > [ 2.275327] but we keep dcdc3 = 1250000 uV from the bootloader > [ 2.285406] axp20_buck3: 700 <--> 3500 mV at 1250 mV > [ 2.295299] axp20_ldoio0: 1800 <--> 3300 mV at 2800 mV > > Signed-off-by: Siarhei Siamashka <[email protected]>
Looks good: Acked-by: Hans de Goede <[email protected]> Can we please get this merged, I'm working on getting the sunxi-3.4 kernels to work with upstream u-boot, so that we can stop maintaining our own fork, and this is necessary for this. Regards, Hans > --- > drivers/power/axp_power/axp20-regu.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/drivers/power/axp_power/axp20-regu.c > b/drivers/power/axp_power/axp20-regu.c > index e56c5f5..30ceb5c 100644 > --- a/drivers/power/axp_power/axp20-regu.c > +++ b/drivers/power/axp_power/axp20-regu.c > @@ -37,6 +37,7 @@ static inline int check_range(struct axp_regulator_info > *info, > return 0; > } > > +static int axp_get_voltage(struct regulator_dev *rdev); > > /* AXP common operations */ > static int axp_set_voltage(struct regulator_dev *rdev, int min_uV, int > max_uV, > @@ -45,7 +46,14 @@ static int axp_set_voltage(struct regulator_dev *rdev, int > min_uV, int max_uV, > struct axp_regulator_info *info = rdev_get_drvdata(rdev); > struct device *axp_dev = to_axp_dev(rdev); > uint8_t val, mask; > - > + > + if (rdev_get_id(rdev) == AXP20_ID_BUCK3) { > + pr_err("somebody is trying to set dcdc3 range to (%d, %d) uV\n", > + min_uV, max_uV); > + pr_err("but we keep dcdc3 = %d uV from the bootloader\n", > + axp_get_voltage(rdev)); > + return 0; > + } > > if (check_range(info, min_uV, max_uV)) { > pr_err("invalid voltage range (%d, %d) uV\n", min_uV, max_uV); > -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
