diff options
-rw-r--r-- | common/i2c_controller.c | 7 |
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); |