summaryrefslogtreecommitdiff
path: root/common/i2c_controller.c
diff options
context:
space:
mode:
authorCaveh Jalali <caveh@chromium.org>2021-09-30 14:20:47 -0700
committerCommit Bot <commit-bot@chromium.org>2021-10-01 22:25:00 +0000
commit6d85cea5dad34352ae67a7503b38cf871dffadd6 (patch)
tree890b26162c830b973f76573cbbda1639a8140342 /common/i2c_controller.c
parent4d5a9a823e3eef6d624b326cbbafebc698d71cdc (diff)
downloadchrome-ec-6d85cea5dad34352ae67a7503b38cf871dffadd6.tar.gz
i2c: add converters between enum i2c_freq and kHz
BRANCH=none BUG=b:201039003 TEST=with follow-on patches, switched I2C bus speed between 400 kHz and 1 MHz using ectool. Change-Id: Ide60a2515d4d9a5f8e1ff841b8369e63c39f5c6a Signed-off-by: Caveh Jalali <caveh@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3198247 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Boris Mittelberg <bmbm@google.com>
Diffstat (limited to 'common/i2c_controller.c')
-rw-r--r--common/i2c_controller.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/common/i2c_controller.c b/common/i2c_controller.c
index 59aff3d69e..2c198d2d88 100644
--- a/common/i2c_controller.c
+++ b/common/i2c_controller.c
@@ -1110,6 +1110,34 @@ unwedge_done:
}
#endif /* !CONFIG_ZEPHYR */
+int i2c_freq_to_khz(enum i2c_freq freq)
+{
+ switch (freq) {
+ case I2C_FREQ_100KHZ:
+ return 100;
+ case I2C_FREQ_400KHZ:
+ return 400;
+ case I2C_FREQ_1000KHZ:
+ return 1000;
+ default:
+ return 0;
+ }
+}
+
+enum i2c_freq i2c_khz_to_freq(int speed_khz)
+{
+ switch (speed_khz) {
+ case 100:
+ return I2C_FREQ_100KHZ;
+ case 400:
+ return I2C_FREQ_400KHZ;
+ case 1000:
+ return I2C_FREQ_1000KHZ;
+ default:
+ return I2C_FREQ_COUNT;
+ }
+}
+
int i2c_set_freq(int port, enum i2c_freq freq)
{
int ret;