From 961d6d45a6c5520c7a379c4d9b3002d1e8320e3e Mon Sep 17 00:00:00 2001 From: Kevin Chiu Date: Wed, 9 Nov 2016 09:52:55 +0800 Subject: google/pyro: Tune i2c frequency to 400 Khz tune i2c devices clk for pyro: I2C0: audio da7219 I2C2: TPM H1 I2C3: wacom touchscreen I2C4: elan touchpad BUG=chrome-os-partner:58881 BRANCH=master TEST=emerge-pyro coreboot chromeos-bootimage Change-Id: If3c92ed260277c27a94d2fcf7883e9441519e40e Signed-off-by: Kevin Chiu Reviewed-on: https://review.coreboot.org/17331 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin Reviewed-by: Paul Menzel --- .../google/reef/variants/pyro/devicetree.cb | 47 +++++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) (limited to 'src/mainboard') diff --git a/src/mainboard/google/reef/variants/pyro/devicetree.cb b/src/mainboard/google/reef/variants/pyro/devicetree.cb index 0e71398d6a..7405b37edc 100644 --- a/src/mainboard/google/reef/variants/pyro/devicetree.cb +++ b/src/mainboard/google/reef/variants/pyro/devicetree.cb @@ -66,8 +66,51 @@ chip soc/intel/apollolake register "gpe0_dw2" = "PMC_GPE_N_63_32" register "gpe0_dw3" = "PMC_GPE_SW_31_0" - # Enable I2C2 bus early for TPM access - register "i2c[2].early_init" = "1" + # Limit I2C0 Audio codec da7219 speed to 400kHz with manually tuned values. + register "i2c[0]" = "{ + .speed = I2C_SPEED_FAST, + .speed_config[0] = { + .speed = I2C_SPEED_FAST, + .scl_lcnt = 0xd0, + .scl_hcnt = 0x68, + .sda_hold = 0x27, + } + }" + + # Enable I2C2 bus early for TPM access and configure as 400kHz + # with manually tuned values. + register "i2c[2]" = "{ + .early_init = 1, + .speed = I2C_SPEED_FAST, + .speed_config[0] = { + .speed = I2C_SPEED_FAST, + .scl_lcnt = 0xd0, + .scl_hcnt = 0x68, + .sda_hold = 0x27, + } + }" + + # Limit I2C3 WACOM touchscreen speed to 400kHz with manually tuned values. + register "i2c[3]" = "{ + .speed = I2C_SPEED_FAST, + .speed_config[0] = { + .speed = I2C_SPEED_FAST, + .scl_lcnt = 0xd0, + .scl_hcnt = 0x68, + .sda_hold = 0x27, + } + }" + + # Limit trackpad speed to 400kHz with manually tuned values. + register "i2c[4]" = "{ + .speed = I2C_SPEED_FAST, + .speed_config[0] = { + .speed = I2C_SPEED_FAST, + .scl_lcnt = 0xd0, + .scl_hcnt = 0x68, + .sda_hold = 0x27, + } + }" # Minimum SLP S3 assertion width 28ms. register "slp_s3_assertion_width_usecs" = "28000" -- cgit v1.2.3