diff options
-rw-r--r-- | drivers/i2c/busses/i2c-designware-core.c | 6 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-designware-core.h | 1 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-designware-platdrv.c | 2 |
3 files changed, 5 insertions, 4 deletions
diff --git a/drivers/i2c/busses/i2c-designware-core.c b/drivers/i2c/busses/i2c-designware-core.c index 71055114bd80..6195df3c1c29 100644 --- a/drivers/i2c/busses/i2c-designware-core.c +++ b/drivers/i2c/busses/i2c-designware-core.c | |||
@@ -143,7 +143,7 @@ static u32 i2c_dw_scl_lcnt(u32 ic_clk, u32 tLOW, u32 tf, int offset) | |||
143 | int i2c_dw_init(struct dw_i2c_dev *dev) | 143 | int i2c_dw_init(struct dw_i2c_dev *dev) |
144 | { | 144 | { |
145 | u32 input_clock_khz; | 145 | u32 input_clock_khz; |
146 | u32 ic_con, hcnt, lcnt; | 146 | u32 hcnt, lcnt; |
147 | u32 reg; | 147 | u32 reg; |
148 | 148 | ||
149 | input_clock_khz = dev->get_clk_rate_khz(dev); | 149 | input_clock_khz = dev->get_clk_rate_khz(dev); |
@@ -199,9 +199,7 @@ int i2c_dw_init(struct dw_i2c_dev *dev) | |||
199 | dw_writel(dev, 0, DW_IC_RX_TL); | 199 | dw_writel(dev, 0, DW_IC_RX_TL); |
200 | 200 | ||
201 | /* configure the i2c master */ | 201 | /* configure the i2c master */ |
202 | ic_con = DW_IC_CON_MASTER | DW_IC_CON_SLAVE_DISABLE | | 202 | dw_writel(dev, dev->master_cfg , DW_IC_CON); |
203 | DW_IC_CON_RESTART_EN | DW_IC_CON_SPEED_FAST; | ||
204 | dw_writel(dev, ic_con, DW_IC_CON); | ||
205 | return 0; | 203 | return 0; |
206 | } | 204 | } |
207 | 205 | ||
diff --git a/drivers/i2c/busses/i2c-designware-core.h b/drivers/i2c/busses/i2c-designware-core.h index ab4e655a6c61..29386215fe3c 100644 --- a/drivers/i2c/busses/i2c-designware-core.h +++ b/drivers/i2c/busses/i2c-designware-core.h | |||
@@ -183,6 +183,7 @@ struct dw_i2c_dev { | |||
183 | int swab; | 183 | int swab; |
184 | struct i2c_adapter adapter; | 184 | struct i2c_adapter adapter; |
185 | u32 functionality; | 185 | u32 functionality; |
186 | u32 master_cfg; | ||
186 | unsigned int tx_fifo_depth; | 187 | unsigned int tx_fifo_depth; |
187 | unsigned int rx_fifo_depth; | 188 | unsigned int rx_fifo_depth; |
188 | }; | 189 | }; |
diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c index 36db7a80cbb2..1258cae3555d 100644 --- a/drivers/i2c/busses/i2c-designware-platdrv.c +++ b/drivers/i2c/busses/i2c-designware-platdrv.c | |||
@@ -103,6 +103,8 @@ static int __devinit dw_i2c_probe(struct platform_device *pdev) | |||
103 | I2C_FUNC_SMBUS_BYTE_DATA | | 103 | I2C_FUNC_SMBUS_BYTE_DATA | |
104 | I2C_FUNC_SMBUS_WORD_DATA | | 104 | I2C_FUNC_SMBUS_WORD_DATA | |
105 | I2C_FUNC_SMBUS_I2C_BLOCK; | 105 | I2C_FUNC_SMBUS_I2C_BLOCK; |
106 | dev->master_cfg = DW_IC_CON_MASTER | DW_IC_CON_SLAVE_DISABLE | | ||
107 | DW_IC_CON_RESTART_EN | DW_IC_CON_SPEED_FAST; | ||
106 | 108 | ||
107 | dev->base = ioremap(mem->start, resource_size(mem)); | 109 | dev->base = ioremap(mem->start, resource_size(mem)); |
108 | if (dev->base == NULL) { | 110 | if (dev->base == NULL) { |