hc
2024-10-12 a5969cabbb4660eab42b6ef0412cbbd1200cf14d
kernel/drivers/i2c/busses/i2c-owl.c
....@@ -87,9 +87,6 @@
8787
8888 #define OWL_I2C_MAX_RETRIES 50
8989
90
-#define OWL_I2C_DEF_SPEED_HZ 100000
91
-#define OWL_I2C_MAX_SPEED_HZ 400000
92
-
9390 struct owl_i2c_dev {
9491 struct i2c_adapter adap;
9592 struct i2c_msg *msg;
....@@ -168,10 +165,9 @@
168165 {
169166 struct owl_i2c_dev *i2c_dev = _dev;
170167 struct i2c_msg *msg = i2c_dev->msg;
171
- unsigned long flags;
172168 unsigned int stat, fifostat;
173169
174
- spin_lock_irqsave(&i2c_dev->lock, flags);
170
+ spin_lock(&i2c_dev->lock);
175171
176172 i2c_dev->err = 0;
177173
....@@ -217,7 +213,7 @@
217213 OWL_I2C_STAT_IRQP, true);
218214
219215 complete_all(&i2c_dev->msg_complete);
220
- spin_unlock_irqrestore(&i2c_dev->lock, flags);
216
+ spin_unlock(&i2c_dev->lock);
221217
222218 return IRQ_HANDLED;
223219 }
....@@ -405,31 +401,27 @@
405401 {
406402 struct device *dev = &pdev->dev;
407403 struct owl_i2c_dev *i2c_dev;
408
- struct resource *res;
409404 int ret, irq;
410405
411406 i2c_dev = devm_kzalloc(dev, sizeof(*i2c_dev), GFP_KERNEL);
412407 if (!i2c_dev)
413408 return -ENOMEM;
414409
415
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
416
- i2c_dev->base = devm_ioremap_resource(dev, res);
410
+ i2c_dev->base = devm_platform_ioremap_resource(pdev, 0);
417411 if (IS_ERR(i2c_dev->base))
418412 return PTR_ERR(i2c_dev->base);
419413
420414 irq = platform_get_irq(pdev, 0);
421
- if (irq < 0) {
422
- dev_err(dev, "failed to get IRQ number\n");
415
+ if (irq < 0)
423416 return irq;
424
- }
425417
426418 if (of_property_read_u32(dev->of_node, "clock-frequency",
427419 &i2c_dev->bus_freq))
428
- i2c_dev->bus_freq = OWL_I2C_DEF_SPEED_HZ;
420
+ i2c_dev->bus_freq = I2C_MAX_STANDARD_MODE_FREQ;
429421
430422 /* We support only frequencies of 100k and 400k for now */
431
- if (i2c_dev->bus_freq != OWL_I2C_DEF_SPEED_HZ &&
432
- i2c_dev->bus_freq != OWL_I2C_MAX_SPEED_HZ) {
423
+ if (i2c_dev->bus_freq != I2C_MAX_STANDARD_MODE_FREQ &&
424
+ i2c_dev->bus_freq != I2C_MAX_FAST_MODE_FREQ) {
433425 dev_err(dev, "invalid clock-frequency %d\n", i2c_dev->bus_freq);
434426 return -EINVAL;
435427 }
....@@ -481,6 +473,7 @@
481473 }
482474
483475 static const struct of_device_id owl_i2c_of_match[] = {
476
+ { .compatible = "actions,s700-i2c" },
484477 { .compatible = "actions,s900-i2c" },
485478 { /* sentinel */ }
486479 };