Attempt to improve stability on Helios64 (#2680)

* Adjust the RK808 buck step to improve stability

* Adjust vdd_log and enable vdd_center init voltage

For some reason, regulator-init-microvolt property under PMIC does not applied. Set the voltage on board file.
This commit is contained in:
Aditya Prayoga 2021-03-04 10:39:40 +07:00 committed by GitHub
parent e130114378
commit eefad69215
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 5 deletions

View file

@ -0,0 +1,12 @@
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
index e666bd5ae..df1fc943b 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-kobol-helios64.dts
@@ -478,6 +478,7 @@ rk808: pmic@1b {
pinctrl-names = "default";
pinctrl-0 = <&pmic_int_l>;
rockchip,system-power-controller;
+ max-buck-steps-per-change = <4>;
wakeup-source;
vcc1-supply = <&vcc5v0_sys>;

View file

@ -181,7 +181,7 @@ index 00000000..2988a209
+};
+
+&vdd_log {
+ regulator-init-microvolt = <900000>;
+ regulator-init-microvolt = <930000>;
+};
diff --git a/arch/arm/dts/rk3399-kobol-helios64.dts b/arch/arm/dts/rk3399-kobol-helios64.dts
new file mode 100644
@ -1365,7 +1365,7 @@ index 254b9c5b..5f89bf6e 100644
config TARGET_PUMA_RK3399
bool "Theobroma Systems RK3399-Q7 (Puma)"
help
@@ -151,6 +167,7 @@ endif # BOOTCOUNT_LIMIT
@@ -153,6 +169,7 @@ endif # BOOTCOUNT_LIMIT
source "board/firefly/roc-pc-rk3399/Kconfig"
source "board/google/gru/Kconfig"
@ -1431,7 +1431,7 @@ new file mode 100644
index 00000000..c7a0efa4
--- /dev/null
+++ b/board/kobol/helios64/helios64.c
@@ -0,0 +1,304 @@
@@ -0,0 +1,321 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2020 Aditya Prayoga (aditya@kobol.io)
@ -1516,6 +1516,22 @@ index 00000000..c7a0efa4
+ rk_setreg(&pmugrf->soc_con0, 0 << PMUGRF_CON0_PMU1830_VOL_SHIFT);
+}
+
+static void init_vdd_center(void)
+{
+ struct udevice *regulator;
+ struct dm_regulator_uclass_platdata *uc_pdata;
+ int ret;
+
+ ret = regulator_get_by_platname("vdd_center", &regulator);
+ if (ret)
+ return;
+
+ uc_pdata = dev_get_uclass_platdata(regulator);
+ ret = regulator_set_value(regulator, uc_pdata->init_uV);
+ if (ret)
+ debug("%s vdd_center init fail! ret %d\n", __func__, ret);
+}
+
+/*
+ * Swap mmc0 and mmc1 in boot_targets if booted from SD-Card.
+ *
@ -1607,6 +1623,7 @@ index 00000000..c7a0efa4
+ int ret;
+
+ setup_iodomain();
+ init_vdd_center();
+ set_board_info();
+
+ ret = rockchip_cpuid_from_efuse(cpuid_offset, cpuid_length, cpuid);