From f1eac38bda354ede7d5b62d3af7c77ad2152bf53 Mon Sep 17 00:00:00 2001 From: Naresh G Solanki Date: Wed, 2 Dec 2015 19:59:49 +0530 Subject: intel/skylake: Adding provision to set voltages to the I2C ports This patch adds an UPD/VPD parameter to set voltages to the I2C ports individually via devicetree.cb BRANCH=None BUG=chrome-os-partner:47821 TEST=Tesed by setting voltage via devicetree.cb and verified voltage level using a DSO probe. CQ-DEPEND=CL:*242225, CL:*241206 Change-Id: Iaeb1ab3f9724aa1139c876dc63250469661d8439 Signed-off-by: Patrick Georgi Original-Commit-Id: fc73b98529ad1eb187f97a4177beda4224f473d1 Original-Change-Id: Ib477ad26667ef59cd298b5e20a68a8c68d85bd8d Original-Signed-off-by: Naresh G Solanki Original-Reviewed-on: https://chromium-review.googlesource.com/315167 Original-Commit-Ready: Naresh Solanki Original-Tested-by: Naresh Solanki Original-Reviewed-by: Duncan Laurie Reviewed-on: https://review.coreboot.org/13006 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- src/soc/intel/skylake/chip.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/soc/intel/skylake/chip.c') diff --git a/src/soc/intel/skylake/chip.c b/src/soc/intel/skylake/chip.c index 12942caddc..b5bcc65ebe 100644 --- a/src/soc/intel/skylake/chip.c +++ b/src/soc/intel/skylake/chip.c @@ -346,6 +346,8 @@ void soc_silicon_init_params(SILICON_INIT_UPD *params) params->SerialIrqConfigStartFramePulse = config->SerialIrqConfigStartFramePulse; params->SkipMpInit = config->FspSkipMpInit; + memcpy(params->SerialIoI2cVoltage, config->SerialIoI2cVoltage, + sizeof(params->SerialIoI2cVoltage)); /* * To disable Heci, the Psf needs to be left unlocked @@ -991,6 +993,24 @@ void soc_display_silicon_init_params(const SILICON_INIT_UPD *original, fsp_display_upd_value("VrConfigEnable[4]", 1, original->VrConfigEnable[4], params->VrConfigEnable[4]); + fsp_display_upd_value("SerialIoI2cVoltage[0]", 1, + original->SerialIoI2cVoltage[0], + params->SerialIoI2cVoltage[0]); + fsp_display_upd_value("SerialIoI2cVoltage[1]", 1, + original->SerialIoI2cVoltage[1], + params->SerialIoI2cVoltage[1]); + fsp_display_upd_value("SerialIoI2cVoltage[2]", 1, + original->SerialIoI2cVoltage[2], + params->SerialIoI2cVoltage[2]); + fsp_display_upd_value("SerialIoI2cVoltage[3]", 1, + original->SerialIoI2cVoltage[3], + params->SerialIoI2cVoltage[3]); + fsp_display_upd_value("SerialIoI2cVoltage[4]", 1, + original->SerialIoI2cVoltage[4], + params->SerialIoI2cVoltage[4]); + fsp_display_upd_value("SerialIoI2cVoltage[5]", 1, + original->SerialIoI2cVoltage[5], + params->SerialIoI2cVoltage[5]); } static void pci_set_subsystem(device_t dev, unsigned vendor, unsigned device) -- cgit v1.2.3