summaryrefslogtreecommitdiff
path: root/drivers/i2c
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2010-06-14 15:06:18 -0700
committerColin Cross <ccross@android.com>2010-10-06 16:26:43 -0700
commit91e3654c23ebf0a532bfad0c503af528daa59eb8 (patch)
tree0dadedec87a241b595bba0fd55eff2bea54e8904 /drivers/i2c
parentb9f90a825ec605b7e3c5896fb759a36ec59dec44 (diff)
i2c: busses: i2c-tegra: Fix bus clock rate
Change-Id: I186a7b7474c3d2504e2a4d7c1308706bb1b53004 Signed-off-by: Colin Cross <ccross@android.com>
Diffstat (limited to 'drivers/i2c')
-rw-r--r--drivers/i2c/busses/i2c-tegra.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index a88c8a1810d9..97d364a69d1c 100644
--- a/drivers/i2c/busses/i2c-tegra.c
+++ b/drivers/i2c/busses/i2c-tegra.c
@@ -152,13 +152,9 @@ static void tegra_i2c_unmask_irq(struct tegra_i2c_dev *i2c_dev, u32 mask)
static void tegra_i2c_set_clk(struct tegra_i2c_dev *i2c_dev, unsigned int freq)
{
- u32 val;
- unsigned long input_freq = clk_get_rate(i2c_dev->i2c_clk);
- val = input_freq / 12 / freq - 1;
- dev_dbg(i2c_dev->dev, "clock %lu to %u: %x\n", input_freq, freq, val);
- dev_dbg(i2c_dev->dev, "clock was %x\n", i2c_readl(i2c_dev, I2C_CLK_DIVISOR));
- i2c_writel(i2c_dev, val, I2C_CLK_DIVISOR);
- dev_dbg(i2c_dev->dev, "clock is %x\n", i2c_readl(i2c_dev, I2C_CLK_DIVISOR));
+ clk_set_rate(i2c_dev->clk, freq * 8);
+ dev_dbg(i2c_dev->dev, "%s: requested %u got %lu\n", __func__,
+ freq, clk_get_rate(i2c_dev->clk)/8);
}
static int tegra_i2c_flush_fifos(struct tegra_i2c_dev *i2c_dev)