i2c: designware: move i2c_dw_plat_prepare_clk to common
authorPhil Reid <preid@electromag.com.au>
Thu, 2 Nov 2017 02:40:25 +0000 (10:40 +0800)
committerWolfram Sang <wsa@the-dreams.de>
Mon, 27 Nov 2017 17:39:22 +0000 (18:39 +0100)
Move the i2c_dw_plat_prepare_clk funciton to common file in preparation
for its use also by the master driver.

Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Phil Reid <preid@electromag.com.au>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-designware-common.c
drivers/i2c/busses/i2c-designware-core.h
drivers/i2c/busses/i2c-designware-platdrv.c

index d1a6937..b79f342 100644 (file)
@@ -21,6 +21,7 @@
  * ----------------------------------------------------------------------------
  *
  */
+#include <linux/clk.h>
 #include <linux/delay.h>
 #include <linux/export.h>
 #include <linux/errno.h>
@@ -185,6 +186,18 @@ unsigned long i2c_dw_clk_rate(struct dw_i2c_dev *dev)
        return dev->get_clk_rate_khz(dev);
 }
 
+int i2c_dw_plat_prepare_clk(struct dw_i2c_dev *i_dev, bool prepare)
+{
+       if (IS_ERR(i_dev->clk))
+               return PTR_ERR(i_dev->clk);
+
+       if (prepare)
+               return clk_prepare_enable(i_dev->clk);
+
+       clk_disable_unprepare(i_dev->clk);
+       return 0;
+}
+
 int i2c_dw_acquire_lock(struct dw_i2c_dev *dev)
 {
        int ret;
index 21bf619..e80a14c 100644 (file)
@@ -301,6 +301,7 @@ u32 i2c_dw_scl_lcnt(u32 ic_clk, u32 tLOW, u32 tf, int offset);
 void __i2c_dw_enable(struct dw_i2c_dev *dev, bool enable);
 void __i2c_dw_enable_and_wait(struct dw_i2c_dev *dev, bool enable);
 unsigned long i2c_dw_clk_rate(struct dw_i2c_dev *dev);
+int i2c_dw_plat_prepare_clk(struct dw_i2c_dev *i_dev, bool prepare);
 int i2c_dw_acquire_lock(struct dw_i2c_dev *dev);
 void i2c_dw_release_lock(struct dw_i2c_dev *dev);
 int i2c_dw_wait_bus_not_busy(struct dw_i2c_dev *dev);
index 293f586..6a3fd8d 100644 (file)
@@ -203,18 +203,6 @@ static void i2c_dw_configure_slave(struct dw_i2c_dev *dev)
        dev->mode = DW_IC_SLAVE;
 }
 
-static int i2c_dw_plat_prepare_clk(struct dw_i2c_dev *i_dev, bool prepare)
-{
-       if (IS_ERR(i_dev->clk))
-               return PTR_ERR(i_dev->clk);
-
-       if (prepare)
-               return clk_prepare_enable(i_dev->clk);
-
-       clk_disable_unprepare(i_dev->clk);
-       return 0;
-}
-
 static void dw_i2c_set_fifo_size(struct dw_i2c_dev *dev, int id)
 {
        u32 param, tx_fifo_depth, rx_fifo_depth;