summaryrefslogtreecommitdiff
path: root/src/soc/intel/skylake
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/skylake')
-rw-r--r--src/soc/intel/skylake/chip.c5
-rw-r--r--src/soc/intel/skylake/chip.h16
2 files changed, 17 insertions, 4 deletions
diff --git a/src/soc/intel/skylake/chip.c b/src/soc/intel/skylake/chip.c
index f990d2b4a6..7bbf336777 100644
--- a/src/soc/intel/skylake/chip.c
+++ b/src/soc/intel/skylake/chip.c
@@ -415,8 +415,9 @@ 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));
+
+ for (i = 0; i < ARRAY_SIZE(config->i2c); i++)
+ params->SerialIoI2cVoltage[i] = config->i2c[i].voltage;
/*
* To disable Heci, the Psf needs to be left unlocked
diff --git a/src/soc/intel/skylake/chip.h b/src/soc/intel/skylake/chip.h
index 2db84b7f25..1d3113f481 100644
--- a/src/soc/intel/skylake/chip.h
+++ b/src/soc/intel/skylake/chip.h
@@ -29,6 +29,18 @@
#include <soc/usb.h>
#include <soc/vr_config.h>
+#define SKYLAKE_I2C_DEV_MAX 6
+
+enum skylake_i2c_voltage {
+ I2C_VOLTAGE_3V3,
+ I2C_VOLTAGE_1V8
+};
+
+struct skylake_i2c_config {
+ /* Bus voltage level, default is 3.3V */
+ enum skylake_i2c_voltage voltage;
+};
+
struct soc_intel_skylake_config {
/*
* Interrupt Routing configuration
@@ -179,8 +191,8 @@ struct soc_intel_skylake_config {
*/
u8 SerialIoDevMode[PchSerialIoIndexMax];
- /* I2C voltage select. Value: 0: 3.3V , 1: 1.8V.*/
- u8 SerialIoI2cVoltage[6];
+ /* I2C */
+ struct skylake_i2c_config i2c[SKYLAKE_I2C_DEV_MAX];
/* Camera */
u8 Cio2Enable;