Skip to content

Commit

Permalink
i2c: OMAP3: Better noise suppression for fast/standard modes
Browse files Browse the repository at this point in the history
Use longer noise filter period for fast and standard mode. Based on an
earlier patch by Eero Nurkkala.

Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
  • Loading branch information
Aaro Koskinen authored and Ben Dooks committed Jun 13, 2009
1 parent baf46b4 commit 84bf2c8
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions drivers/i2c/busses/i2c-omap.c
Original file line number Diff line number Diff line change
Expand Up @@ -333,8 +333,18 @@ static int omap_i2c_init(struct omap_i2c_dev *dev)

if (cpu_is_omap2430() || cpu_is_omap34xx()) {

/* HSI2C controller internal clk rate should be 19.2 Mhz */
internal_clk = 19200;
/*
* HSI2C controller internal clk rate should be 19.2 Mhz for
* HS and for all modes on 2430. On 34xx we can use lower rate
* to get longer filter period for better noise suppression.
* The filter is iclk (fclk for HS) period.
*/
if (dev->speed > 400 || cpu_is_omap_2430())
internal_clk = 19200;
else if (dev->speed > 100)
internal_clk = 9600;
else
internal_clk = 4000;
fclk_rate = clk_get_rate(dev->fclk) / 1000;

/* Compute prescaler divisor */
Expand Down

0 comments on commit 84bf2c8

Please sign in to comment.