diff options
-rw-r--r-- | drivers/i2c/busses/i2c-designware-core.c | 7 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-designware-platdrv.c | 9 |
2 files changed, 11 insertions, 5 deletions
diff --git a/drivers/i2c/busses/i2c-designware-core.c b/drivers/i2c/busses/i2c-designware-core.c index c6922b806fb7..07edff7a62e3 100644 --- a/drivers/i2c/busses/i2c-designware-core.c +++ b/drivers/i2c/busses/i2c-designware-core.c | |||
@@ -347,8 +347,11 @@ int i2c_dw_init(struct dw_i2c_dev *dev) | |||
347 | dw_writel(dev, lcnt, DW_IC_SS_SCL_LCNT); | 347 | dw_writel(dev, lcnt, DW_IC_SS_SCL_LCNT); |
348 | dev_dbg(dev->dev, "Standard-mode HCNT:LCNT = %d:%d\n", hcnt, lcnt); | 348 | dev_dbg(dev->dev, "Standard-mode HCNT:LCNT = %d:%d\n", hcnt, lcnt); |
349 | 349 | ||
350 | /* Set SCL timing parameters for fast-mode */ | 350 | /* Set SCL timing parameters for fast-mode or fast-mode plus */ |
351 | if (dev->fs_hcnt && dev->fs_lcnt) { | 351 | if ((dev->clk_freq == 1000000) && dev->fp_hcnt && dev->fp_lcnt) { |
352 | hcnt = dev->fp_hcnt; | ||
353 | lcnt = dev->fp_lcnt; | ||
354 | } else if (dev->fs_hcnt && dev->fs_lcnt) { | ||
352 | hcnt = dev->fs_hcnt; | 355 | hcnt = dev->fs_hcnt; |
353 | lcnt = dev->fs_lcnt; | 356 | lcnt = dev->fs_lcnt; |
354 | } else { | 357 | } else { |
diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c index cbe4fb31cb4b..ea92e9f3fba1 100644 --- a/drivers/i2c/busses/i2c-designware-platdrv.c +++ b/drivers/i2c/busses/i2c-designware-platdrv.c | |||
@@ -196,10 +196,13 @@ static int dw_i2c_plat_probe(struct platform_device *pdev) | |||
196 | dw_i2c_acpi_configure(pdev); | 196 | dw_i2c_acpi_configure(pdev); |
197 | 197 | ||
198 | /* | 198 | /* |
199 | * Only standard mode at 100kHz and fast mode at 400kHz are supported. | 199 | * Only standard mode at 100kHz, fast mode at 400kHz, |
200 | * and fast mode plus at 1MHz are supported. | ||
200 | */ | 201 | */ |
201 | if (dev->clk_freq != 100000 && dev->clk_freq != 400000) { | 202 | if (dev->clk_freq != 100000 && dev->clk_freq != 400000 |
202 | dev_err(&pdev->dev, "Only 100kHz and 400kHz supported"); | 203 | && dev->clk_freq != 1000000) { |
204 | dev_err(&pdev->dev, | ||
205 | "Only 100kHz, 400kHz and 1MHz are supported"); | ||
203 | return -EINVAL; | 206 | return -EINVAL; |
204 | } | 207 | } |
205 | 208 | ||