diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2011-05-13 06:31:13 -0400 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2011-05-24 19:21:01 -0400 |
commit | 2b030bda66b0a59f8ebf0ce2117088256a5f9f97 (patch) | |
tree | afe961d47c177caa2017f9a608e50f9f8524507a /arch | |
parent | 82a4413450376cbce0bb2b794fb880dbfda89299 (diff) |
mach-ux500: set proper I2C platform data from MOP500s
This specifies the new per-platform timeout per I2C bus and
switches the I2C buses to fast mode, and increase the FIFO
depth to 8 for reads and writes.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-ux500/board-mop500.c | 14 |
1 files changed, 8 insertions, 6 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 | { |