diff options
| -rw-r--r-- | drivers/i2c/busses/i2c-tegra.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c index 4d9319665e32..fb3b4f8f8152 100644 --- a/drivers/i2c/busses/i2c-tegra.c +++ b/drivers/i2c/busses/i2c-tegra.c | |||
| @@ -40,8 +40,10 @@ | |||
| 40 | #define I2C_CNFG_NEW_MASTER_FSM (1<<11) | 40 | #define I2C_CNFG_NEW_MASTER_FSM (1<<11) |
| 41 | #define I2C_STATUS 0x01C | 41 | #define I2C_STATUS 0x01C |
| 42 | #define I2C_SL_CNFG 0x020 | 42 | #define I2C_SL_CNFG 0x020 |
| 43 | #define I2C_SL_CNFG_NACK (1<<1) | ||
| 43 | #define I2C_SL_CNFG_NEWSL (1<<2) | 44 | #define I2C_SL_CNFG_NEWSL (1<<2) |
| 44 | #define I2C_SL_ADDR1 0x02c | 45 | #define I2C_SL_ADDR1 0x02c |
| 46 | #define I2C_SL_ADDR2 0x030 | ||
| 45 | #define I2C_TX_FIFO 0x050 | 47 | #define I2C_TX_FIFO 0x050 |
| 46 | #define I2C_RX_FIFO 0x054 | 48 | #define I2C_RX_FIFO 0x054 |
| 47 | #define I2C_PACKET_TRANSFER_STATUS 0x058 | 49 | #define I2C_PACKET_TRANSFER_STATUS 0x058 |
| @@ -337,7 +339,11 @@ static int tegra_i2c_init(struct tegra_i2c_dev *i2c_dev) | |||
| 337 | 339 | ||
| 338 | if (!i2c_dev->is_dvc) { | 340 | if (!i2c_dev->is_dvc) { |
| 339 | u32 sl_cfg = i2c_readl(i2c_dev, I2C_SL_CNFG); | 341 | u32 sl_cfg = i2c_readl(i2c_dev, I2C_SL_CNFG); |
| 340 | i2c_writel(i2c_dev, sl_cfg | I2C_SL_CNFG_NEWSL, I2C_SL_CNFG); | 342 | sl_cfg |= I2C_SL_CNFG_NACK | I2C_SL_CNFG_NEWSL; |
| 343 | i2c_writel(i2c_dev, sl_cfg, I2C_SL_CNFG); | ||
| 344 | i2c_writel(i2c_dev, 0xfc, I2C_SL_ADDR1); | ||
| 345 | i2c_writel(i2c_dev, 0x00, I2C_SL_ADDR2); | ||
| 346 | |||
| 341 | } | 347 | } |
| 342 | 348 | ||
| 343 | val = 7 << I2C_FIFO_CONTROL_TX_TRIG_SHIFT | | 349 | val = 7 << I2C_FIFO_CONTROL_TX_TRIG_SHIFT | |
