mirror of https://gitee.com/openkylin/linux.git
i2c: OMAP3: Better noise suppression for fast/standard modes
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>
This commit is contained in:
parent
baf46b4e37
commit
84bf2c868f
|
@ -333,8 +333,18 @@ static int omap_i2c_init(struct omap_i2c_dev *dev)
|
||||||
|
|
||||||
if (cpu_is_omap2430() || cpu_is_omap34xx()) {
|
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;
|
fclk_rate = clk_get_rate(dev->fclk) / 1000;
|
||||||
|
|
||||||
/* Compute prescaler divisor */
|
/* Compute prescaler divisor */
|
||||||
|
|
Loading…
Reference in New Issue