mainboard/google/snappy: Tune i2c frequency to 400 Khz

tune i2c devices clk for snappy:
I2C0: audio
I2C2: TPM H1
I2C3: elan touchscreen
I2C4: elan touchpad
I2C5: wacom digitizer

BUG=chrome-os-partner:59034
BRANCH=master
TEST=emerge-snappy coreboot chromeos-bootimage, and measured on EVT.
audio:
  Freq. 393.7kHz
  Rise Time 58.8ns
  Fall time 12.11ns
TPM H1:
  Freq. 398.8kHz
  Rise Time 31.71ns
  Fall time 13.28ns
elan touchscreen:
  Freq. 390.5kHz
  Rise Time 235.7ns
  Fall time 37.64ns
elan touchpad:
  Freq. 393.7kHz
  Rise Time 288.8ns
  Fall time 51.67ns
wacom digitizer:
  Freq. 388.8kHz
  Rise Time 124.1ns
  Fall time 21.10ns

Change-Id: Ib2be9e1575d4962476423eafa80f9bb10ba40e17
Signed-off-by: Wisley Chen <wisley.chen@quantatw.com>
Reviewed-on: https://review.coreboot.org/17634
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins)
This commit is contained in:
Wisley Chen 2016-11-27 16:56:30 +08:00 committed by Martin Roth
parent 96e9ff168c
commit 1612cef81f
1 changed files with 35 additions and 2 deletions

View File

@ -71,8 +71,41 @@ 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"
# Enable I2C0 for audio codec at 400kHz
register "i2c[0]" = "{
.speed = I2C_SPEED_FAST,
.rise_time_ns = 44,
.fall_time_ns = 22,
}"
# Enable I2C2 bus early for TPM at 400kHz
register "i2c[2]" = "{
.early_init = 1,
.speed = I2C_SPEED_FAST,
.rise_time_ns = 40,
.fall_time_ns = 20,
}"
# touchscreen at 400kHz
register "i2c[3]" = "{
.speed = I2C_SPEED_FAST,
.rise_time_ns = 70,
.fall_time_ns = 164,
}"
# trackpad at 400kHz
register "i2c[4]" = "{
.speed = I2C_SPEED_FAST,
.rise_time_ns = 20,
.fall_time_ns = 164,
}"
# digitizer at 400kHz
register "i2c[5]" = "{
.speed = I2C_SPEED_FAST,
.rise_time_ns = 152,
.fall_time_ns = 30,
}"
# Minimum SLP S3 assertion width 28ms.
register "slp_s3_assertion_width_usecs" = "28000"