summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/i2c_controller.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/common/i2c_controller.c b/common/i2c_controller.c
index fabb0e34f3..9fd68aaa2d 100644
--- a/common/i2c_controller.c
+++ b/common/i2c_controller.c
@@ -1113,10 +1113,15 @@ unwedge_done:
int i2c_set_freq(int port, enum i2c_freq freq)
{
int ret;
+ const struct i2c_port_t *cfg;
- if (!(get_i2c_port(port)->flags & I2C_PORT_FLAG_DYNAMIC_SPEED))
+ cfg = get_i2c_port(port);
+ if (cfg == NULL)
return EC_ERROR_INVAL;
+ if (!(cfg->flags & I2C_PORT_FLAG_DYNAMIC_SPEED))
+ return EC_ERROR_UNIMPLEMENTED;
+
i2c_lock(port, 1);
ret = chip_i2c_set_freq(port, freq);
i2c_lock(port, 0);