diff options
author | Joakim Tjernlund <Joakim.Tjernlund@transmode.se> | 2009-09-17 11:07:16 +0200 |
---|---|---|
committer | Heiko Schocher <hs@denx.de> | 2009-09-28 07:35:53 +0200 |
commit | d01ee4db9302cfccaa5c548a1c4e873b415681a0 (patch) | |
tree | 3cf9c20c5ff9c4fb41ca9eddfb990da9f67cc1b7 | |
parent | 21f4cbb77299788e2b06c9b0f48cf20a5ab00d4a (diff) |
fsl_i2c: Add CONFIG_FSL_I2C_CUSTOM_{DFSR/FDR}
Some boards need a higher DFSR value than the spec currently
recommends so give these boards the means to define there own.
For completeness, add CONFIG_FSL_I2C_CUSTOM_FDR too.
Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
-rw-r--r-- | drivers/i2c/fsl_i2c.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/i2c/fsl_i2c.c b/drivers/i2c/fsl_i2c.c index 56f9680063a..0c5f6be23f7 100644 --- a/drivers/i2c/fsl_i2c.c +++ b/drivers/i2c/fsl_i2c.c @@ -172,14 +172,22 @@ static unsigned int set_i2c_bus_speed(const struct fsl_i2c *dev, u8 fdr; #ifdef __PPC__ u8 dfsr; +#ifdef CONFIG_FSL_I2C_CUSTOM_DFSR + dfsr = CONFIG_FSL_I2C_CUSTOM_DFSR; +#else dfsr = fsl_i2c_speed_map[i].dfsr; #endif + writeb(dfsr, &dev->dfsrr); /* set default filter */ +#endif +#ifdef CONFIG_FSL_I2C_CUSTOM_FDR + fdr = CONFIG_FSL_I2C_CUSTOM_FDR; + speed = i2c_clk / divider; /* Fake something */ +#else fdr = fsl_i2c_speed_map[i].fdr; speed = i2c_clk / fsl_i2c_speed_map[i].divider; - writeb(fdr, &dev->fdr); /* set bus speed */ -#ifdef __PPC__ - writeb(dfsr, &dev->dfsrr); /* set default filter */ #endif + writeb(fdr, &dev->fdr); /* set bus speed */ + break; } |