| .. | .. |
|---|
| 87 | 87 | |
|---|
| 88 | 88 | #define OWL_I2C_MAX_RETRIES 50 |
|---|
| 89 | 89 | |
|---|
| 90 | | -#define OWL_I2C_DEF_SPEED_HZ 100000 |
|---|
| 91 | | -#define OWL_I2C_MAX_SPEED_HZ 400000 |
|---|
| 92 | | - |
|---|
| 93 | 90 | struct owl_i2c_dev { |
|---|
| 94 | 91 | struct i2c_adapter adap; |
|---|
| 95 | 92 | struct i2c_msg *msg; |
|---|
| .. | .. |
|---|
| 168 | 165 | { |
|---|
| 169 | 166 | struct owl_i2c_dev *i2c_dev = _dev; |
|---|
| 170 | 167 | struct i2c_msg *msg = i2c_dev->msg; |
|---|
| 171 | | - unsigned long flags; |
|---|
| 172 | 168 | unsigned int stat, fifostat; |
|---|
| 173 | 169 | |
|---|
| 174 | | - spin_lock_irqsave(&i2c_dev->lock, flags); |
|---|
| 170 | + spin_lock(&i2c_dev->lock); |
|---|
| 175 | 171 | |
|---|
| 176 | 172 | i2c_dev->err = 0; |
|---|
| 177 | 173 | |
|---|
| .. | .. |
|---|
| 217 | 213 | OWL_I2C_STAT_IRQP, true); |
|---|
| 218 | 214 | |
|---|
| 219 | 215 | complete_all(&i2c_dev->msg_complete); |
|---|
| 220 | | - spin_unlock_irqrestore(&i2c_dev->lock, flags); |
|---|
| 216 | + spin_unlock(&i2c_dev->lock); |
|---|
| 221 | 217 | |
|---|
| 222 | 218 | return IRQ_HANDLED; |
|---|
| 223 | 219 | } |
|---|
| .. | .. |
|---|
| 405 | 401 | { |
|---|
| 406 | 402 | struct device *dev = &pdev->dev; |
|---|
| 407 | 403 | struct owl_i2c_dev *i2c_dev; |
|---|
| 408 | | - struct resource *res; |
|---|
| 409 | 404 | int ret, irq; |
|---|
| 410 | 405 | |
|---|
| 411 | 406 | i2c_dev = devm_kzalloc(dev, sizeof(*i2c_dev), GFP_KERNEL); |
|---|
| 412 | 407 | if (!i2c_dev) |
|---|
| 413 | 408 | return -ENOMEM; |
|---|
| 414 | 409 | |
|---|
| 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); |
|---|
| 417 | 411 | if (IS_ERR(i2c_dev->base)) |
|---|
| 418 | 412 | return PTR_ERR(i2c_dev->base); |
|---|
| 419 | 413 | |
|---|
| 420 | 414 | irq = platform_get_irq(pdev, 0); |
|---|
| 421 | | - if (irq < 0) { |
|---|
| 422 | | - dev_err(dev, "failed to get IRQ number\n"); |
|---|
| 415 | + if (irq < 0) |
|---|
| 423 | 416 | return irq; |
|---|
| 424 | | - } |
|---|
| 425 | 417 | |
|---|
| 426 | 418 | if (of_property_read_u32(dev->of_node, "clock-frequency", |
|---|
| 427 | 419 | &i2c_dev->bus_freq)) |
|---|
| 428 | | - i2c_dev->bus_freq = OWL_I2C_DEF_SPEED_HZ; |
|---|
| 420 | + i2c_dev->bus_freq = I2C_MAX_STANDARD_MODE_FREQ; |
|---|
| 429 | 421 | |
|---|
| 430 | 422 | /* 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) { |
|---|
| 433 | 425 | dev_err(dev, "invalid clock-frequency %d\n", i2c_dev->bus_freq); |
|---|
| 434 | 426 | return -EINVAL; |
|---|
| 435 | 427 | } |
|---|
| .. | .. |
|---|
| 481 | 473 | } |
|---|
| 482 | 474 | |
|---|
| 483 | 475 | static const struct of_device_id owl_i2c_of_match[] = { |
|---|
| 476 | + { .compatible = "actions,s700-i2c" }, |
|---|
| 484 | 477 | { .compatible = "actions,s900-i2c" }, |
|---|
| 485 | 478 | { /* sentinel */ } |
|---|
| 486 | 479 | }; |
|---|