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.
  *