From 85eb6549652b7c6eeb2434efca01df7c13a2923c Mon Sep 17 00:00:00 2001 From: Chaitanya Bandi Date: Fri, 25 Nov 2011 18:12:37 +0530 Subject: i2c: tegra: slave: Corrected slave address config routine Corrected the slave address configuration routine. Reviewed-on: http://git-master/r/66805 (cherry picked from commit 18e9409c1db3e3880435e4435f30ad5725e54cdb) Change-Id: Ia6b314e513a8bc33ca7782604c80d6686dfa260f Signed-off-by: Chaitanya Bandi Reviewed-on: http://git-master/r/67604 Reviewed-by: Laxman Dewangan --- drivers/i2c/busses/i2c-slave-tegra.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'drivers/i2c') diff --git a/drivers/i2c/busses/i2c-slave-tegra.c b/drivers/i2c/busses/i2c-slave-tegra.c index 1e1e516b6415..f2468d85c1f8 100644 --- a/drivers/i2c/busses/i2c-slave-tegra.c +++ b/drivers/i2c/busses/i2c-slave-tegra.c @@ -316,6 +316,7 @@ static void configure_i2c_slave_address(struct tegra_i2c_slave_dev *i2c_dev) if (i2c_dev->is_ten_bit_addr) { slave_add = i2c_dev->slave_add & 0xFF; slave_add_reg = readl(i2c_dev->base + I2C_SLV_ADDR1); + slave_add_reg &= ~(0xFF); slave_add_reg |= slave_add << I2C_SLV_ADDR1_ADDR_SHIFT; writel(slave_add_reg, i2c_dev->base + I2C_SLV_ADDR1); @@ -328,6 +329,7 @@ static void configure_i2c_slave_address(struct tegra_i2c_slave_dev *i2c_dev) } else { slave_add = (i2c_dev->slave_add & 0x3FF); slave_add_reg = readl(i2c_dev->base + I2C_SLV_ADDR1); + slave_add_reg &= ~(0x3FF); slave_add_reg |= slave_add << I2C_SLV_ADDR1_ADDR_SHIFT; writel(slave_add_reg, i2c_dev->base + I2C_SLV_ADDR1); -- cgit v1.2.3