diff options
-rw-r--r-- | core/drivers/stm32_i2c.c | 41 | ||||
-rw-r--r-- | core/include/drivers/stm32_i2c.h | 17 |
2 files changed, 29 insertions, 29 deletions
diff --git a/core/drivers/stm32_i2c.c b/core/drivers/stm32_i2c.c index c15e4dd7..749aa40a 100644 --- a/core/drivers/stm32_i2c.c +++ b/core/drivers/stm32_i2c.c @@ -234,28 +234,11 @@ struct i2c_timing_s { bool is_saved; }; -/* - * I2C specification values as per version 6.0, 4th of April 2014 [1], - * table 10 page 48: Characteristics of the SDA and SCL bus lines for - * Standard, Fast, and Fast-mode Plus I2C-bus devices. - * - * [1] https://www.nxp.com/docs/en/user-guide/UM10204.pdf - */ -enum i2c_speed_e { - I2C_SPEED_STANDARD, /* 100 kHz */ - I2C_SPEED_FAST, /* 400 kHz */ - I2C_SPEED_FAST_PLUS, /* 1 MHz */ -}; - -#define STANDARD_RATE 100000 -#define FAST_RATE 400000 -#define FAST_PLUS_RATE 1000000 - static const struct i2c_spec_s i2c_specs[] = { [I2C_SPEED_STANDARD] = { - .rate = STANDARD_RATE, - .rate_min = (STANDARD_RATE * 80) / 100, - .rate_max = (STANDARD_RATE * 120) / 100, + .rate = I2C_STANDARD_RATE, + .rate_min = (I2C_STANDARD_RATE * 80) / 100, + .rate_max = (I2C_STANDARD_RATE * 120) / 100, .fall_max = 300, .rise_max = 1000, .hddat_min = 0, @@ -265,9 +248,9 @@ static const struct i2c_spec_s i2c_specs[] = { .h_min = 4000, }, [I2C_SPEED_FAST] = { - .rate = FAST_RATE, - .rate_min = (FAST_RATE * 80) / 100, - .rate_max = (FAST_RATE * 120) / 100, + .rate = I2C_FAST_RATE, + .rate_min = (I2C_FAST_RATE * 80) / 100, + .rate_max = (I2C_FAST_RATE * 120) / 100, .fall_max = 300, .rise_max = 300, .hddat_min = 0, @@ -277,9 +260,9 @@ static const struct i2c_spec_s i2c_specs[] = { .h_min = 600, }, [I2C_SPEED_FAST_PLUS] = { - .rate = FAST_PLUS_RATE, - .rate_min = (FAST_PLUS_RATE * 80) / 100, - .rate_max = (FAST_PLUS_RATE * 120) / 100, + .rate = I2C_FAST_PLUS_RATE, + .rate_min = (I2C_FAST_PLUS_RATE * 80) / 100, + .rate_max = (I2C_FAST_PLUS_RATE * 120) / 100, .fall_max = 100, .rise_max = 120, .hddat_min = 0, @@ -680,13 +663,13 @@ int stm32_i2c_get_setup_from_fdt(void *fdt, int node, cuint = fdt_getprop(fdt, node, "clock-frequency", NULL); if (cuint) { switch (fdt32_to_cpu(*cuint)) { - case STANDARD_RATE: + case I2C_STANDARD_RATE: init->speed_mode = I2C_SPEED_STANDARD; break; - case FAST_RATE: + case I2C_FAST_RATE: init->speed_mode = I2C_SPEED_FAST; break; - case FAST_PLUS_RATE: + case I2C_FAST_PLUS_RATE: init->speed_mode = I2C_SPEED_FAST_PLUS; break; default: diff --git a/core/include/drivers/stm32_i2c.h b/core/include/drivers/stm32_i2c.h index ac0ea225..6efcf00e 100644 --- a/core/include/drivers/stm32_i2c.h +++ b/core/include/drivers/stm32_i2c.h @@ -14,6 +14,23 @@ #include <types_ext.h> /* + * I2C specification values as per version 6.0, 4th of April 2014 [1], + * table 10 page 48: Characteristics of the SDA and SCL bus lines for + * Standard, Fast, and Fast-mode Plus I2C-bus devices. + * + * [1] https://www.nxp.com/docs/en/user-guide/UM10204.pdf + */ +enum i2c_speed_e { + I2C_SPEED_STANDARD, /* 100 kHz */ + I2C_SPEED_FAST, /* 400 kHz */ + I2C_SPEED_FAST_PLUS, /* 1 MHz */ +}; + +#define I2C_STANDARD_RATE 100000 +#define I2C_FAST_RATE 400000 +#define I2C_FAST_PLUS_RATE 1000000 + +/* * Initialization configuration structure for the STM32 I2C bus. * Refer to the SoC Reference Manual for more details on configuration items. * |