clk: Add two clock functions commonly used by linux drivers
This adds clk_prepare_enable() and clk_disable_unprepare(),
two clock functions used by many linux drivers.
Signed-off-by: Alexandre Bailon <abailon@baylibre.com>
diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c b/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c
index ec9df10..8839483 100644
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.c
@@ -3,16 +3,6 @@
#include <common.h>
#include "brcmnand_compat.h"
-int clk_prepare_enable(struct clk *clk)
-{
- return clk_enable(clk);
-}
-
-void clk_disable_unprepare(struct clk *clk)
-{
- clk_disable(clk);
-}
-
static char *devm_kvasprintf(struct udevice *dev, gfp_t gfp, const char *fmt,
va_list ap)
{
diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.h b/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.h
index c33d542..7766f4a 100644
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.h
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand_compat.h
@@ -6,8 +6,6 @@
#include <clk.h>
#include <dm.h>
#include <dm/device.h>
-int clk_prepare_enable(struct clk *clk);
-void clk_disable_unprepare(struct clk *clk);
char *devm_kasprintf(struct udevice *dev, gfp_t gfp, const char *fmt, ...);
diff --git a/include/clk.h b/include/clk.h
index 18b2e3c..443ffb4 100644
--- a/include/clk.h
+++ b/include/clk.h
@@ -307,6 +307,13 @@
*/
int clk_enable(struct clk *clk);
+static inline int clk_prepare_enable(struct clk *clk)
+{
+ if (!clk)
+ return 0;
+ return clk_enable(clk);
+}
+
/**
* clk_enable_bulk() - Enable (turn on) all clocks in a clock bulk struct.
*
@@ -325,6 +332,12 @@
*/
int clk_disable(struct clk *clk);
+static inline void clk_disable_unprepare(struct clk *clk)
+{
+ if (clk)
+ clk_disable(clk);
+}
+
/**
* clk_disable_bulk() - Disable (turn off) all clocks in a clock bulk struct.
*