27
27
#include <linux/platform_device.h>
28
28
#include <linux/reset.h>
29
29
30
+ #include "i2c-stm32.h"
31
+
30
32
/* STM32F4 I2C offset registers */
31
33
#define STM32F4_I2C_CR1 0x00
32
34
#define STM32F4_I2C_CR2 0x04
90
92
#define STM32F4_I2C_MAX_FREQ 46U
91
93
#define HZ_TO_MHZ 1000000
92
94
93
- enum stm32f4_i2c_speed {
94
- STM32F4_I2C_SPEED_STANDARD , /* 100 kHz */
95
- STM32F4_I2C_SPEED_FAST , /* 400 kHz */
96
- STM32F4_I2C_SPEED_END ,
97
- };
98
-
99
95
/**
100
96
* struct stm32f4_i2c_msg - client specific data
101
97
* @addr: 8-bit slave addr, including r/w bit
@@ -159,7 +155,7 @@ static int stm32f4_i2c_set_periph_clk_freq(struct stm32f4_i2c_dev *i2c_dev)
159
155
i2c_dev -> parent_rate = clk_get_rate (i2c_dev -> clk );
160
156
freq = DIV_ROUND_UP (i2c_dev -> parent_rate , HZ_TO_MHZ );
161
157
162
- if (i2c_dev -> speed == STM32F4_I2C_SPEED_STANDARD ) {
158
+ if (i2c_dev -> speed == STM32_I2C_SPEED_STANDARD ) {
163
159
/*
164
160
* To reach 100 kHz, the parent clk frequency should be between
165
161
* a minimum value of 2 MHz and a maximum value of 46 MHz due
@@ -216,7 +212,7 @@ static void stm32f4_i2c_set_rise_time(struct stm32f4_i2c_dev *i2c_dev)
216
212
* is not higher than 46 MHz . As a result trise is at most 4 bits wide
217
213
* and so fits into the TRISE bits [5:0].
218
214
*/
219
- if (i2c_dev -> speed == STM32F4_I2C_SPEED_STANDARD )
215
+ if (i2c_dev -> speed == STM32_I2C_SPEED_STANDARD )
220
216
trise = freq + 1 ;
221
217
else
222
218
trise = freq * 3 / 10 + 1 ;
@@ -230,7 +226,7 @@ static void stm32f4_i2c_set_speed_mode(struct stm32f4_i2c_dev *i2c_dev)
230
226
u32 val ;
231
227
u32 ccr = 0 ;
232
228
233
- if (i2c_dev -> speed == STM32F4_I2C_SPEED_STANDARD ) {
229
+ if (i2c_dev -> speed == STM32_I2C_SPEED_STANDARD ) {
234
230
/*
235
231
* In standard mode:
236
232
* t_scl_high = t_scl_low = CCR * I2C parent clk period
@@ -808,10 +804,10 @@ static int stm32f4_i2c_probe(struct platform_device *pdev)
808
804
udelay (2 );
809
805
reset_control_deassert (rst );
810
806
811
- i2c_dev -> speed = STM32F4_I2C_SPEED_STANDARD ;
807
+ i2c_dev -> speed = STM32_I2C_SPEED_STANDARD ;
812
808
ret = of_property_read_u32 (np , "clock-frequency" , & clk_rate );
813
809
if (!ret && clk_rate >= 400000 )
814
- i2c_dev -> speed = STM32F4_I2C_SPEED_FAST ;
810
+ i2c_dev -> speed = STM32_I2C_SPEED_FAST ;
815
811
816
812
i2c_dev -> dev = & pdev -> dev ;
817
813
0 commit comments