hc
2024-10-12 a5969cabbb4660eab42b6ef0412cbbd1200cf14d
kernel/drivers/i2c/busses/i2c-synquacer.c
....@@ -67,10 +67,10 @@
6767
6868 /* STANDARD MODE frequency */
6969 #define SYNQUACER_I2C_CLK_MASTER_STD(rate) \
70
- DIV_ROUND_UP(DIV_ROUND_UP((rate), 100000) - 2, 2)
70
+ DIV_ROUND_UP(DIV_ROUND_UP((rate), I2C_MAX_STANDARD_MODE_FREQ) - 2, 2)
7171 /* FAST MODE frequency */
7272 #define SYNQUACER_I2C_CLK_MASTER_FAST(rate) \
73
- DIV_ROUND_UP((DIV_ROUND_UP((rate), 400000) - 2) * 2, 3)
73
+ DIV_ROUND_UP((DIV_ROUND_UP((rate), I2C_MAX_FAST_MODE_FREQ) - 2) * 2, 3)
7474
7575 /* (clkrate <= 18000000) */
7676 /* calculate the value of CS bits in CCR register on standard mode */
....@@ -144,8 +144,6 @@
144144 u32 timeout_ms;
145145 enum i2c_state state;
146146 struct i2c_adapter adapter;
147
-
148
- bool is_suspended;
149147 };
150148
151149 static inline int is_lastmsg(struct synquacer_i2c *i2c)
....@@ -316,9 +314,6 @@
316314 unsigned long timeout;
317315 int ret;
318316
319
- if (i2c->is_suspended)
320
- return -EBUSY;
321
-
322317 synquacer_i2c_hw_init(i2c);
323318 bsr = readb(i2c->base + SYNQUACER_I2C_REG_BSR);
324319 if (bsr & SYNQUACER_I2C_BSR_BB) {
....@@ -403,8 +398,7 @@
403398
404399 if (i2c->state == STATE_READ)
405400 goto prepare_read;
406
-
407
- /* fallthru */
401
+ fallthrough;
408402
409403 case STATE_WRITE:
410404 if (bsr & SYNQUACER_I2C_BSR_LRB) {
....@@ -531,7 +525,7 @@
531525 .functionality = synquacer_i2c_functionality,
532526 };
533527
534
-static struct i2c_adapter synquacer_i2c_ops = {
528
+static const struct i2c_adapter synquacer_i2c_ops = {
535529 .owner = THIS_MODULE,
536530 .name = "synquacer_i2c-adapter",
537531 .algo = &synquacer_i2c_algo,
....@@ -541,7 +535,6 @@
541535 static int synquacer_i2c_probe(struct platform_device *pdev)
542536 {
543537 struct synquacer_i2c *i2c;
544
- struct resource *r;
545538 u32 bus_speed;
546539 int ret;
547540
....@@ -558,7 +551,7 @@
558551 &i2c->pclkrate);
559552
560553 i2c->pclk = devm_clk_get(&pdev->dev, "pclk");
561
- if (IS_ERR(i2c->pclk) && PTR_ERR(i2c->pclk) == -EPROBE_DEFER)
554
+ if (PTR_ERR(i2c->pclk) == -EPROBE_DEFER)
562555 return -EPROBE_DEFER;
563556 if (!IS_ERR_OR_NULL(i2c->pclk)) {
564557 dev_dbg(&pdev->dev, "clock source %p\n", i2c->pclk);
....@@ -579,16 +572,13 @@
579572 return -EINVAL;
580573 }
581574
582
- r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
583
- i2c->base = devm_ioremap_resource(&pdev->dev, r);
575
+ i2c->base = devm_platform_ioremap_resource(pdev, 0);
584576 if (IS_ERR(i2c->base))
585577 return PTR_ERR(i2c->base);
586578
587579 i2c->irq = platform_get_irq(pdev, 0);
588
- if (i2c->irq < 0) {
589
- dev_err(&pdev->dev, "no IRQ resource found\n");
590
- return -ENODEV;
591
- }
580
+ if (i2c->irq < 0)
581
+ return i2c->irq;
592582
593583 ret = devm_request_irq(&pdev->dev, i2c->irq, synquacer_i2c_isr,
594584 0, dev_name(&pdev->dev), i2c);
....@@ -607,7 +597,7 @@
607597 i2c->adapter.nr = pdev->id;
608598 init_completion(&i2c->completion);
609599
610
- if (bus_speed < 400000)
600
+ if (bus_speed < I2C_MAX_FAST_MODE_FREQ)
611601 i2c->speed_khz = SYNQUACER_I2C_SPEED_SM;
612602 else
613603 i2c->speed_khz = SYNQUACER_I2C_SPEED_FM;