Message ID | 20200103152643.v2.13.Ie472f8a2d709a2cb8383826b213525abd5d5598a@changeid |
---|---|
State | Superseded |
Headers | show |
Series | i2c: designware_ic2: Improvements to timing and general cleanup | expand |
Hello Simon, Am 03.01.2020 um 23:26 schrieb Simon Glass: > 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 at chromium.org> > --- > > Changes in v2: None > > include/i2c.h | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) Reviewed-by: Heiko Schocher <hs at denx.de> bye, Heiko
diff --git a/include/i2c.h b/include/i2c.h index 72e2e8e426..0faf8542e2 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
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 at chromium.org> --- Changes in v2: None include/i2c.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)