hc
2024-10-12 a5969cabbb4660eab42b6ef0412cbbd1200cf14d
kernel/drivers/i2c/busses/i2c-xlp9xx.c
....@@ -71,8 +71,6 @@
7171 #define XLP9XX_I2C_SLAVEADDR_ADDR_SHIFT 1
7272
7373 #define XLP9XX_I2C_IP_CLK_FREQ 133000000UL
74
-#define XLP9XX_I2C_DEFAULT_FREQ 100000
75
-#define XLP9XX_I2C_HIGH_FREQ 400000
7674 #define XLP9XX_I2C_FIFO_SIZE 0x80U
7775 #define XLP9XX_I2C_TIMEOUT_MS 1000
7876 #define XLP9XX_I2C_BUSY_TIMEOUT 50
....@@ -476,12 +474,12 @@
476474
477475 err = device_property_read_u32(&pdev->dev, "clock-frequency", &freq);
478476 if (err) {
479
- freq = XLP9XX_I2C_DEFAULT_FREQ;
477
+ freq = I2C_MAX_STANDARD_MODE_FREQ;
480478 dev_dbg(&pdev->dev, "using default frequency %u\n", freq);
481
- } else if (freq == 0 || freq > XLP9XX_I2C_HIGH_FREQ) {
479
+ } else if (freq == 0 || freq > I2C_MAX_FAST_MODE_FREQ) {
482480 dev_warn(&pdev->dev, "invalid frequency %u, using default\n",
483481 freq);
484
- freq = XLP9XX_I2C_DEFAULT_FREQ;
482
+ freq = I2C_MAX_STANDARD_MODE_FREQ;
485483 }
486484 priv->clk_hz = freq;
487485
....@@ -491,12 +489,16 @@
491489 static int xlp9xx_i2c_smbus_setup(struct xlp9xx_i2c_dev *priv,
492490 struct platform_device *pdev)
493491 {
492
+ struct i2c_client *ara;
493
+
494494 if (!priv->alert_data.irq)
495495 return -EINVAL;
496496
497
- priv->ara = i2c_setup_smbus_alert(&priv->adapter, &priv->alert_data);
498
- if (!priv->ara)
499
- return -ENODEV;
497
+ ara = i2c_new_smbus_alert_device(&priv->adapter, &priv->alert_data);
498
+ if (IS_ERR(ara))
499
+ return PTR_ERR(ara);
500
+
501
+ priv->ara = ara;
500502
501503 return 0;
502504 }
....@@ -504,23 +506,19 @@
504506 static int xlp9xx_i2c_probe(struct platform_device *pdev)
505507 {
506508 struct xlp9xx_i2c_dev *priv;
507
- struct resource *res;
508509 int err = 0;
509510
510511 priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
511512 if (!priv)
512513 return -ENOMEM;
513514
514
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
515
- priv->base = devm_ioremap_resource(&pdev->dev, res);
515
+ priv->base = devm_platform_ioremap_resource(pdev, 0);
516516 if (IS_ERR(priv->base))
517517 return PTR_ERR(priv->base);
518518
519519 priv->irq = platform_get_irq(pdev, 0);
520
- if (priv->irq <= 0) {
521
- dev_err(&pdev->dev, "invalid irq!\n");
520
+ if (priv->irq < 0)
522521 return priv->irq;
523
- }
524522 /* SMBAlert irq */
525523 priv->alert_data.irq = platform_get_irq(pdev, 1);
526524 if (priv->alert_data.irq <= 0)