| .. | .. |
|---|
| 75 | 75 | #define I2C_CLK_RATIO 2 |
|---|
| 76 | 76 | #define CHUNK_DATA 256 |
|---|
| 77 | 77 | |
|---|
| 78 | | -#define LPI2C_DEFAULT_RATE 100000 |
|---|
| 79 | | -#define STARDARD_MAX_BITRATE 400000 |
|---|
| 80 | | -#define FAST_MAX_BITRATE 1000000 |
|---|
| 81 | | -#define FAST_PLUS_MAX_BITRATE 3400000 |
|---|
| 82 | | -#define HIGHSPEED_MAX_BITRATE 5000000 |
|---|
| 83 | | - |
|---|
| 84 | 78 | #define I2C_PM_TIMEOUT 10 /* ms */ |
|---|
| 85 | 79 | |
|---|
| 86 | 80 | enum lpi2c_imx_mode { |
|---|
| .. | .. |
|---|
| 152 | 146 | unsigned int bitrate = lpi2c_imx->bitrate; |
|---|
| 153 | 147 | enum lpi2c_imx_mode mode; |
|---|
| 154 | 148 | |
|---|
| 155 | | - if (bitrate < STARDARD_MAX_BITRATE) |
|---|
| 149 | + if (bitrate < I2C_MAX_FAST_MODE_FREQ) |
|---|
| 156 | 150 | mode = STANDARD; |
|---|
| 157 | | - else if (bitrate < FAST_MAX_BITRATE) |
|---|
| 151 | + else if (bitrate < I2C_MAX_FAST_MODE_PLUS_FREQ) |
|---|
| 158 | 152 | mode = FAST; |
|---|
| 159 | | - else if (bitrate < FAST_PLUS_MAX_BITRATE) |
|---|
| 153 | + else if (bitrate < I2C_MAX_HIGH_SPEED_MODE_FREQ) |
|---|
| 160 | 154 | mode = FAST_PLUS; |
|---|
| 161 | | - else if (bitrate < HIGHSPEED_MAX_BITRATE) |
|---|
| 155 | + else if (bitrate < I2C_MAX_ULTRA_FAST_MODE_FREQ) |
|---|
| 162 | 156 | mode = HS; |
|---|
| 163 | 157 | else |
|---|
| 164 | 158 | mode = ULTRA_FAST; |
|---|
| .. | .. |
|---|
| 265 | 259 | unsigned int temp; |
|---|
| 266 | 260 | int ret; |
|---|
| 267 | 261 | |
|---|
| 268 | | - ret = pm_runtime_get_sync(lpi2c_imx->adapter.dev.parent); |
|---|
| 262 | + ret = pm_runtime_resume_and_get(lpi2c_imx->adapter.dev.parent); |
|---|
| 269 | 263 | if (ret < 0) |
|---|
| 270 | 264 | return ret; |
|---|
| 271 | 265 | |
|---|
| .. | .. |
|---|
| 545 | 539 | static int lpi2c_imx_probe(struct platform_device *pdev) |
|---|
| 546 | 540 | { |
|---|
| 547 | 541 | struct lpi2c_imx_struct *lpi2c_imx; |
|---|
| 548 | | - struct resource *res; |
|---|
| 549 | 542 | unsigned int temp; |
|---|
| 550 | 543 | int irq, ret; |
|---|
| 551 | 544 | |
|---|
| .. | .. |
|---|
| 553 | 546 | if (!lpi2c_imx) |
|---|
| 554 | 547 | return -ENOMEM; |
|---|
| 555 | 548 | |
|---|
| 556 | | - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
|---|
| 557 | | - lpi2c_imx->base = devm_ioremap_resource(&pdev->dev, res); |
|---|
| 549 | + lpi2c_imx->base = devm_platform_ioremap_resource(pdev, 0); |
|---|
| 558 | 550 | if (IS_ERR(lpi2c_imx->base)) |
|---|
| 559 | 551 | return PTR_ERR(lpi2c_imx->base); |
|---|
| 560 | 552 | |
|---|
| 561 | 553 | irq = platform_get_irq(pdev, 0); |
|---|
| 562 | | - if (irq < 0) { |
|---|
| 563 | | - dev_err(&pdev->dev, "can't get irq number\n"); |
|---|
| 554 | + if (irq < 0) |
|---|
| 564 | 555 | return irq; |
|---|
| 565 | | - } |
|---|
| 566 | 556 | |
|---|
| 567 | 557 | lpi2c_imx->adapter.owner = THIS_MODULE; |
|---|
| 568 | 558 | lpi2c_imx->adapter.algo = &lpi2c_imx_algo; |
|---|
| .. | .. |
|---|
| 580 | 570 | ret = of_property_read_u32(pdev->dev.of_node, |
|---|
| 581 | 571 | "clock-frequency", &lpi2c_imx->bitrate); |
|---|
| 582 | 572 | if (ret) |
|---|
| 583 | | - lpi2c_imx->bitrate = LPI2C_DEFAULT_RATE; |
|---|
| 573 | + lpi2c_imx->bitrate = I2C_MAX_STANDARD_MODE_FREQ; |
|---|
| 584 | 574 | |
|---|
| 585 | 575 | ret = devm_request_irq(&pdev->dev, irq, lpi2c_imx_isr, 0, |
|---|
| 586 | 576 | pdev->name, lpi2c_imx); |
|---|
| .. | .. |
|---|
| 639 | 629 | return 0; |
|---|
| 640 | 630 | } |
|---|
| 641 | 631 | |
|---|
| 642 | | -#ifdef CONFIG_PM_SLEEP |
|---|
| 643 | | -static int lpi2c_runtime_suspend(struct device *dev) |
|---|
| 632 | +static int __maybe_unused lpi2c_runtime_suspend(struct device *dev) |
|---|
| 644 | 633 | { |
|---|
| 645 | 634 | struct lpi2c_imx_struct *lpi2c_imx = dev_get_drvdata(dev); |
|---|
| 646 | 635 | |
|---|
| .. | .. |
|---|
| 650 | 639 | return 0; |
|---|
| 651 | 640 | } |
|---|
| 652 | 641 | |
|---|
| 653 | | -static int lpi2c_runtime_resume(struct device *dev) |
|---|
| 642 | +static int __maybe_unused lpi2c_runtime_resume(struct device *dev) |
|---|
| 654 | 643 | { |
|---|
| 655 | 644 | struct lpi2c_imx_struct *lpi2c_imx = dev_get_drvdata(dev); |
|---|
| 656 | 645 | int ret; |
|---|
| .. | .. |
|---|
| 671 | 660 | SET_RUNTIME_PM_OPS(lpi2c_runtime_suspend, |
|---|
| 672 | 661 | lpi2c_runtime_resume, NULL) |
|---|
| 673 | 662 | }; |
|---|
| 674 | | -#define IMX_LPI2C_PM (&lpi2c_pm_ops) |
|---|
| 675 | | -#else |
|---|
| 676 | | -#define IMX_LPI2C_PM NULL |
|---|
| 677 | | -#endif |
|---|
| 678 | 663 | |
|---|
| 679 | 664 | static struct platform_driver lpi2c_imx_driver = { |
|---|
| 680 | 665 | .probe = lpi2c_imx_probe, |
|---|
| .. | .. |
|---|
| 682 | 667 | .driver = { |
|---|
| 683 | 668 | .name = DRIVER_NAME, |
|---|
| 684 | 669 | .of_match_table = lpi2c_imx_of_match, |
|---|
| 685 | | - .pm = IMX_LPI2C_PM, |
|---|
| 670 | + .pm = &lpi2c_pm_ops, |
|---|
| 686 | 671 | }, |
|---|
| 687 | 672 | }; |
|---|
| 688 | 673 | |
|---|