aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainboard/google/gru/mainboard.c9
-rw-r--r--src/soc/rockchip/rk3399/include/soc/grf.h2
2 files changed, 10 insertions, 1 deletions
diff --git a/src/mainboard/google/gru/mainboard.c b/src/mainboard/google/gru/mainboard.c
index 8a6cda203d..a2b74badf2 100644
--- a/src/mainboard/google/gru/mainboard.c
+++ b/src/mainboard/google/gru/mainboard.c
@@ -158,6 +158,15 @@ static void configure_display(void)
static void setup_usb(void)
{
+ /* A few magic PHY tuning values that improve eye diagram amplitude
+ * and make it extra sure we get reliable communication in firmware. */
+ /* Set max ODT compensation voltage and current tuning reference. */
+ write32(&rk3399_grf->usbphy0_ctrl[3], 0x0fff02e3);
+ write32(&rk3399_grf->usbphy1_ctrl[3], 0x0fff02e3);
+ /* Set max pre-emphasis level, only on Kevin PHY0. */
+ if (IS_ENABLED(CONFIG_BOARD_GOOGLE_KEVIN))
+ write32(&rk3399_grf->usbphy0_ctrl[12], 0xffff00a7);
+
setup_usb_otg0();
setup_usb_otg1();
}
diff --git a/src/soc/rockchip/rk3399/include/soc/grf.h b/src/soc/rockchip/rk3399/include/soc/grf.h
index d76b827b89..c1fd690e78 100644
--- a/src/soc/rockchip/rk3399/include/soc/grf.h
+++ b/src/soc/rockchip/rk3399/include/soc/grf.h
@@ -73,7 +73,7 @@ struct rk3399_grf_regs {
u32 reserved11[3];
u32 usbphy0_ctrl[26];
u32 reserved12[6];
- u32 usbphy1[26];
+ u32 usbphy1_ctrl[26];
u32 reserved13[0x72f];
u32 soc_con9;
u32 reserved14[0x0a];