diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-24 19:39:23 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-24 19:39:23 -0400 |
commit | 4a7df24ddc7097cd789a7527187826552ea0765e (patch) | |
tree | 2e70557e1d8e6d971ee6094de823900df1f8288e /arch | |
parent | 37d8cb5478651b27779b9a80d024c614c452eae3 (diff) | |
parent | 5bdfdfeed5eed599a3ddc455f7c254a209ceae8d (diff) |
Merge branch 'for-linus/2640/i2c' of git://git.fluff.org/bjdooks/linux
* 'for-linus/2640/i2c' of git://git.fluff.org/bjdooks/linux: (21 commits)
mach-ux500: set proper I2C platform data from MOP500s
i2c-nomadik: break out single messsage transmission
i2c-nomadik: reset the hw after status check
i2c-nomadik: remove the unnecessary delay
i2c-nomadik: change the TX and RX threshold
i2c-nomadik: add code to retry on timeout failure
i2c-nomadik: use pm_runtime API
i2c-nomadik: print abort cause only on abort tag
i2c-nomadik: correct adapter timeout initialization
i2c-nomadik: remove the redundant error message
i2c-nomadik: corrrect returned error numbers
i2c-nomadik: fix speed enumerator
i2c-nomadik: make i2c timeout specific per i2c bus
i2c-nomadik: add regulator support
i2c: i2c-sh_mobile bus speed platform data V2
i2c: i2c-sh_mobile clock string removal
i2c-eg20t: Support new device ML7223 IOH
i2c: tegra: Add de-bounce cycles.
i2c: tegra: fix repeated start handling
i2c: tegra: recover from spurious interrupt storm
...
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-ux500/board-mop500.c | 14 | ||||
-rw-r--r-- | arch/arm/plat-nomadik/include/plat/i2c.h | 8 |
2 files changed, 13 insertions, 9 deletions
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c index 6e1907fa94f0..bb26f40493e6 100644 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c | |||
@@ -204,7 +204,7 @@ static struct i2c_board_info __initdata mop500_i2c2_devices[] = { | |||
204 | }, | 204 | }, |
205 | }; | 205 | }; |
206 | 206 | ||
207 | #define U8500_I2C_CONTROLLER(id, _slsu, _tft, _rft, clk, _sm) \ | 207 | #define U8500_I2C_CONTROLLER(id, _slsu, _tft, _rft, clk, t_out, _sm) \ |
208 | static struct nmk_i2c_controller u8500_i2c##id##_data = { \ | 208 | static struct nmk_i2c_controller u8500_i2c##id##_data = { \ |
209 | /* \ | 209 | /* \ |
210 | * slave data setup time, which is \ | 210 | * slave data setup time, which is \ |
@@ -219,19 +219,21 @@ static struct nmk_i2c_controller u8500_i2c##id##_data = { \ | |||
219 | .rft = _rft, \ | 219 | .rft = _rft, \ |
220 | /* std. mode operation */ \ | 220 | /* std. mode operation */ \ |
221 | .clk_freq = clk, \ | 221 | .clk_freq = clk, \ |
222 | /* Slave response timeout(ms) */\ | ||
223 | .timeout = t_out, \ | ||
222 | .sm = _sm, \ | 224 | .sm = _sm, \ |
223 | } | 225 | } |
224 | 226 | ||
225 | /* | 227 | /* |
226 | * The board uses 4 i2c controllers, initialize all of | 228 | * The board uses 4 i2c controllers, initialize all of |
227 | * them with slave data setup time of 250 ns, | 229 | * them with slave data setup time of 250 ns, |
228 | * Tx & Rx FIFO threshold values as 1 and standard | 230 | * Tx & Rx FIFO threshold values as 8 and standard |
229 | * mode of operation | 231 | * mode of operation |
230 | */ | 232 | */ |
231 | U8500_I2C_CONTROLLER(0, 0xe, 1, 1, 100000, I2C_FREQ_MODE_STANDARD); | 233 | U8500_I2C_CONTROLLER(0, 0xe, 1, 8, 100000, 200, I2C_FREQ_MODE_FAST); |
232 | U8500_I2C_CONTROLLER(1, 0xe, 1, 1, 100000, I2C_FREQ_MODE_STANDARD); | 234 | U8500_I2C_CONTROLLER(1, 0xe, 1, 8, 100000, 200, I2C_FREQ_MODE_FAST); |
233 | U8500_I2C_CONTROLLER(2, 0xe, 1, 1, 100000, I2C_FREQ_MODE_STANDARD); | 235 | U8500_I2C_CONTROLLER(2, 0xe, 1, 8, 100000, 200, I2C_FREQ_MODE_FAST); |
234 | U8500_I2C_CONTROLLER(3, 0xe, 1, 1, 100000, I2C_FREQ_MODE_STANDARD); | 236 | U8500_I2C_CONTROLLER(3, 0xe, 1, 8, 100000, 200, I2C_FREQ_MODE_FAST); |
235 | 237 | ||
236 | static void __init mop500_i2c_init(void) | 238 | static void __init mop500_i2c_init(void) |
237 | { | 239 | { |
diff --git a/arch/arm/plat-nomadik/include/plat/i2c.h b/arch/arm/plat-nomadik/include/plat/i2c.h index 1621db67a53d..8ba70ffc31ec 100644 --- a/arch/arm/plat-nomadik/include/plat/i2c.h +++ b/arch/arm/plat-nomadik/include/plat/i2c.h | |||
@@ -11,8 +11,8 @@ | |||
11 | enum i2c_freq_mode { | 11 | enum i2c_freq_mode { |
12 | I2C_FREQ_MODE_STANDARD, /* up to 100 Kb/s */ | 12 | I2C_FREQ_MODE_STANDARD, /* up to 100 Kb/s */ |
13 | I2C_FREQ_MODE_FAST, /* up to 400 Kb/s */ | 13 | I2C_FREQ_MODE_FAST, /* up to 400 Kb/s */ |
14 | I2C_FREQ_MODE_HIGH_SPEED, /* up to 3.4 Mb/s */ | ||
14 | I2C_FREQ_MODE_FAST_PLUS, /* up to 1 Mb/s */ | 15 | I2C_FREQ_MODE_FAST_PLUS, /* up to 1 Mb/s */ |
15 | I2C_FREQ_MODE_HIGH_SPEED /* up to 3.4 Mb/s */ | ||
16 | }; | 16 | }; |
17 | 17 | ||
18 | /** | 18 | /** |
@@ -24,13 +24,15 @@ enum i2c_freq_mode { | |||
24 | * to the values of 14, 6, 2 for a 48 MHz i2c clk | 24 | * to the values of 14, 6, 2 for a 48 MHz i2c clk |
25 | * @tft: Tx FIFO Threshold in bytes | 25 | * @tft: Tx FIFO Threshold in bytes |
26 | * @rft: Rx FIFO Threshold in bytes | 26 | * @rft: Rx FIFO Threshold in bytes |
27 | * @timeout Slave response timeout(ms) | ||
27 | * @sm: speed mode | 28 | * @sm: speed mode |
28 | */ | 29 | */ |
29 | struct nmk_i2c_controller { | 30 | struct nmk_i2c_controller { |
30 | unsigned long clk_freq; | 31 | unsigned long clk_freq; |
31 | unsigned short slsu; | 32 | unsigned short slsu; |
32 | unsigned char tft; | 33 | unsigned char tft; |
33 | unsigned char rft; | 34 | unsigned char rft; |
35 | int timeout; | ||
34 | enum i2c_freq_mode sm; | 36 | enum i2c_freq_mode sm; |
35 | }; | 37 | }; |
36 | 38 | ||