summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/intel/apollolake/i2c.c2
-rw-r--r--src/soc/intel/common/block/i2c/i2c.c8
2 files changed, 8 insertions, 2 deletions
diff --git a/src/soc/intel/apollolake/i2c.c b/src/soc/intel/apollolake/i2c.c
index 2b6cbf95b2..4ae500ecce 100644
--- a/src/soc/intel/apollolake/i2c.c
+++ b/src/soc/intel/apollolake/i2c.c
@@ -44,7 +44,7 @@ uintptr_t i2c_get_soc_early_base(unsigned int bus)
/* Convert I2C bus number to PCI device and function */
int i2c_soc_bus_to_devfn(unsigned int bus)
{
- if (bus >= 0 && bus <= 3)
+ if (bus <= 3)
return PCI_DEVFN(PCH_DEV_SLOT_SIO1, bus);
else if (bus >= 4 && bus <= 7)
return PCI_DEVFN(PCH_DEV_SLOT_SIO2, (bus - 4));
diff --git a/src/soc/intel/common/block/i2c/i2c.c b/src/soc/intel/common/block/i2c/i2c.c
index 625bb991d4..c6f3be2206 100644
--- a/src/soc/intel/common/block/i2c/i2c.c
+++ b/src/soc/intel/common/block/i2c/i2c.c
@@ -96,9 +96,12 @@ static void lpss_i2c_dev_init(struct device *dev)
const struct lpss_i2c_bus_config *config;
int bus = lpss_i2c_dev_to_bus(dev);
+ if (bus < 0)
+ return;
+
config = i2c_get_soc_cfg(bus, dev);
- if (!config || bus < 0)
+ if (!config)
return;
lpss_i2c_init(bus, config);
@@ -126,6 +129,9 @@ static void lpss_i2c_acpi_fill_ssdt(struct device *dev)
bus = lpss_i2c_dev_to_bus(dev);
+ if (bus < 0)
+ return;
+
bcfg = i2c_get_soc_cfg(bus, dev);
if (!bcfg)