summaryrefslogtreecommitdiff
path: root/src/soc/rockchip/rk3399
diff options
context:
space:
mode:
authorLin Huang <hl@rock-chips.com>2016-07-08 14:30:18 +0800
committerMartin Roth <martinroth@google.com>2016-07-15 00:38:04 +0200
commita406c2a954830e8cad2efdd4210f1a240c5342bc (patch)
tree7ebc27a4a65364c4a58418f6a93d547ff327faa3 /src/soc/rockchip/rk3399
parent05627831826cab096789bd19f004b33a4cd70c0e (diff)
downloadcoreboot-a406c2a954830e8cad2efdd4210f1a240c5342bc.tar.xz
rockchip/rk3399: set kevin rev3 pwm regulator initial value to 0.95v
kevin rev3 pwm regulator ripple is still not great, especially for center logic. To make sdram at 800MHz stable, raise it to 0.95v. BRANCH=none BUG=chrome-os-partner:54871 TEST=run "stressapptest -M 1024 -s 1000" on kevin board and pass Change-Id: If4a15eb7398eea8214cb58422bca7cfb5f4a051a Signed-off-by: Martin Roth <martinroth@chromium.org> Original-Commit-Id: d29bc581effb0008eb196685aa22dd65b5d478a5 Original-Change-Id: Ideec9c3ab2f919af732719ed2f6a702068d99c8f Original-Signed-off-by: Lin Huang <hl@rock-chips.com> Original-Reviewed-on: https://chromium-review.googlesource.com/359130 Original-Commit-Ready: Douglas Anderson <dianders@chromium.org> Original-Reviewed-by: Douglas Anderson <dianders@chromium.org> Original-Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://review.coreboot.org/15659 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src/soc/rockchip/rk3399')
-rw-r--r--src/soc/rockchip/rk3399/romstage.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/soc/rockchip/rk3399/romstage.c b/src/soc/rockchip/rk3399/romstage.c
index b65a9adc87..11454d3d04 100644
--- a/src/soc/rockchip/rk3399/romstage.c
+++ b/src/soc/rockchip/rk3399/romstage.c
@@ -41,6 +41,7 @@ static void init_dvs_outputs(void)
{
int duty_ns;
uint32_t i;
+ uint32_t id;
write32(&rk3399_grf->iomux_pwm_0, IOMUX_PWM_0); /* GPU */
write32(&rk3399_grf->iomux_pwm_1, IOMUX_PWM_1); /* Big */
@@ -76,10 +77,15 @@ static void init_dvs_outputs(void)
* period = 3337, volt = 1.0: 2383
* period = 3337, volt = 0.9: 2860
*/
- if (IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN) && (board_id() <= 2))
- duty_ns = 1906; /* 1.1v */
- else
- duty_ns = 2860; /* 0.9v */
+ duty_ns = 2860; /* 0.9v */
+
+ if (IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN)) {
+ id = board_id();
+ if (id <= 2)
+ duty_ns = 1906; /* 1.1v */
+ else if (id == 3)
+ duty_ns = 2621; /* 0.95v */
+ }
for (i = 0; i < 4; i++)
pwm_init(i, 3337, duty_ns);