diff options
author | Simon Glass <sjg@chromium.org> | 2020-01-23 11:48:16 -0700 |
---|---|---|
committer | Heiko Schocher <hs@denx.de> | 2020-01-27 07:22:23 +0100 |
commit | 7bd21b626477ea2e3c45e8fa2bf16e8d86a0e5fa (patch) | |
tree | d564d6f10bf4c3227cecaaf8f38e2527ef439968 /include/i2c.h | |
parent | 96fe11c3dace9038e2df0e7c4625d1c3e330425f (diff) | |
download | u-boot-7bd21b626477ea2e3c45e8fa2bf16e8d86a0e5fa.zip u-boot-7bd21b626477ea2e3c45e8fa2bf16e8d86a0e5fa.tar.gz u-boot-7bd21b626477ea2e3c45e8fa2bf16e8d86a0e5fa.tar.bz2 |
i2c: Add enums for i2c speed and address size
Some drivers define their own speed enums and use their own constants for
speed. It makes sense to have a unified defition of the different speeds.
Since many controllers have to do different things for fast/high speed, it
is a good idea to have an enum for the mode.
Add these as well as an enum for the address mode.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
Diffstat (limited to 'include/i2c.h')
-rw-r--r-- | include/i2c.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/include/i2c.h b/include/i2c.h index 72e2e8e..0faf854 100644 --- a/include/i2c.h +++ b/include/i2c.h @@ -30,6 +30,32 @@ enum dm_i2c_chip_flags { DM_I2C_CHIP_WR_ADDRESS = 1 << 2, /* Send address for each write byte */ }; +/** enum i2c_speed_mode - standard I2C speed modes */ +enum i2c_speed_mode { + IC_SPEED_MODE_STANDARD, + IC_SPEED_MODE_FAST, + IC_SPEED_MODE_FAST_PLUS, + IC_SPEED_MODE_HIGH, + IC_SPEED_MODE_FAST_ULTRA, + + IC_SPEED_MODE_COUNT, +}; + +/** enum i2c_speed_rate - standard I2C speeds in Hz */ +enum i2c_speed_rate { + I2C_SPEED_STANDARD_RATE = 100000, + I2C_SPEED_FAST_RATE = 400000, + I2C_SPEED_FAST_PLUS_RATE = 1000000, + I2C_SPEED_HIGH_RATE = 3400000, + I2C_SPEED_FAST_ULTRA_RATE = 5000000, +}; + +/** enum i2c_address_mode - available address modes */ +enum i2c_address_mode { + I2C_MODE_7_BIT, + I2C_MODE_10_BIT +}; + struct udevice; /** * struct dm_i2c_chip - information about an i2c chip |