diff options
Diffstat (limited to 'drivers/i2c/busses/i2c-st.c')
| -rw-r--r-- | drivers/i2c/busses/i2c-st.c | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/drivers/i2c/busses/i2c-st.c b/drivers/i2c/busses/i2c-st.c index 95b947670386..2e4eccd6599a 100644 --- a/drivers/i2c/busses/i2c-st.c +++ b/drivers/i2c/busses/i2c-st.c | |||
| @@ -206,25 +206,31 @@ static inline void st_i2c_clr_bits(void __iomem *reg, u32 mask) | |||
| 206 | writel_relaxed(readl_relaxed(reg) & ~mask, reg); | 206 | writel_relaxed(readl_relaxed(reg) & ~mask, reg); |
| 207 | } | 207 | } |
| 208 | 208 | ||
| 209 | /* From I2C Specifications v0.5 */ | 209 | /* |
| 210 | * From I2C Specifications v0.5. | ||
| 211 | * | ||
| 212 | * All the values below have +10% margin added to be | ||
| 213 | * compatible with some out-of-spec devices, | ||
| 214 | * like HDMI link of the Toshiba 19AV600 TV. | ||
| 215 | */ | ||
| 210 | static struct st_i2c_timings i2c_timings[] = { | 216 | static struct st_i2c_timings i2c_timings[] = { |
| 211 | [I2C_MODE_STANDARD] = { | 217 | [I2C_MODE_STANDARD] = { |
| 212 | .rate = 100000, | 218 | .rate = 100000, |
| 213 | .rep_start_hold = 4000, | 219 | .rep_start_hold = 4400, |
| 214 | .rep_start_setup = 4700, | 220 | .rep_start_setup = 5170, |
| 215 | .start_hold = 4000, | 221 | .start_hold = 4400, |
| 216 | .data_setup_time = 250, | 222 | .data_setup_time = 275, |
| 217 | .stop_setup_time = 4000, | 223 | .stop_setup_time = 4400, |
| 218 | .bus_free_time = 4700, | 224 | .bus_free_time = 5170, |
| 219 | }, | 225 | }, |
| 220 | [I2C_MODE_FAST] = { | 226 | [I2C_MODE_FAST] = { |
| 221 | .rate = 400000, | 227 | .rate = 400000, |
| 222 | .rep_start_hold = 600, | 228 | .rep_start_hold = 660, |
| 223 | .rep_start_setup = 600, | 229 | .rep_start_setup = 660, |
| 224 | .start_hold = 600, | 230 | .start_hold = 660, |
| 225 | .data_setup_time = 100, | 231 | .data_setup_time = 110, |
| 226 | .stop_setup_time = 600, | 232 | .stop_setup_time = 660, |
| 227 | .bus_free_time = 1300, | 233 | .bus_free_time = 1430, |
| 228 | }, | 234 | }, |
| 229 | }; | 235 | }; |
| 230 | 236 | ||
| @@ -815,7 +821,7 @@ static int st_i2c_probe(struct platform_device *pdev) | |||
| 815 | 821 | ||
| 816 | adap = &i2c_dev->adap; | 822 | adap = &i2c_dev->adap; |
| 817 | i2c_set_adapdata(adap, i2c_dev); | 823 | i2c_set_adapdata(adap, i2c_dev); |
| 818 | snprintf(adap->name, sizeof(adap->name), "ST I2C(0x%x)", res->start); | 824 | snprintf(adap->name, sizeof(adap->name), "ST I2C(0x%pa)", &res->start); |
| 819 | adap->owner = THIS_MODULE; | 825 | adap->owner = THIS_MODULE; |
| 820 | adap->timeout = 2 * HZ; | 826 | adap->timeout = 2 * HZ; |
| 821 | adap->retries = 0; | 827 | adap->retries = 0; |
