#include <linux/i2c.h>
#include <linux/interrupt.h>
#include <linux/io.h>
+#include <linux/pm_runtime.h>
#include <linux/delay.h>
#include "i2c-designware-core.h"
dev_dbg(dev->dev, "%s: msgs: %d\n", __func__, num);
mutex_lock(&dev->lock);
+ pm_runtime_get_sync(dev->dev);
INIT_COMPLETION(dev->cmd_complete);
dev->msgs = msgs;
ret = -EIO;
done:
+ pm_runtime_put(dev->dev);
mutex_unlock(&dev->lock);
return ret;
dw_writel(dev, 1, DW_IC_ENABLE);
}
-void i2c_dw_disable(struct dw_i2c_dev *dev)
+u32 i2c_dw_is_enabled(struct dw_i2c_dev *dev)
{
- int ret;
+ return dw_readl(dev, DW_IC_ENABLE);
+}
+void i2c_dw_disable(struct dw_i2c_dev *dev)
+{
/* Disable controller */
dw_writel(dev, 0, DW_IC_ENABLE);