Make clk-gate2 available for use outside of imx.

Signed-off-by: Sean Anderson <sean...@gmail.com>
---
 drivers/clk/Makefile              |  1 +
 drivers/clk/{imx => }/clk-gate2.c | 20 ++++----------------
 drivers/clk/imx/Makefile          |  2 +-
 drivers/clk/imx/clk.h             |  5 -----
 include/linux/clk-provider.h      | 24 ++++++++++++++++++++----
 5 files changed, 26 insertions(+), 26 deletions(-)
 rename drivers/clk/{imx => }/clk-gate2.c (85%)

diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile
index 06131edb9f..fef3280f16 100644
--- a/drivers/clk/Makefile
+++ b/drivers/clk/Makefile
@@ -9,6 +9,7 @@ obj-$(CONFIG_$(SPL_TPL_)CLK) += clk_fixed_rate.o
 obj-$(CONFIG_$(SPL_TPL_)CLK) += clk_fixed_factor.o
 obj-$(CONFIG_$(SPL_TPL_)CLK_CCF) += clk.o clk-divider.o clk-mux.o clk-gate.o
 obj-$(CONFIG_$(SPL_TPL_)CLK_CCF) += clk-fixed-factor.o
+obj-$(CONFIG_$(SPL_TPL_)CLK_CCF) += clk-gate2.o
 obj-$(CONFIG_$(SPL_TPL_)CLK_COMPOSITE_CCF) += clk-composite.o

 obj-y += analogbits/
diff --git a/drivers/clk/imx/clk-gate2.c b/drivers/clk/clk-gate2.c
similarity index 85%
rename from drivers/clk/imx/clk-gate2.c
rename to drivers/clk/clk-gate2.c
index 1b9db6e791..cfe21e5496 100644
--- a/drivers/clk/imx/clk-gate2.c
+++ b/drivers/clk/clk-gate2.c
@@ -10,8 +10,7 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  *
- * Gated clock implementation
- *
+ * Gated clock which redirects rate functions to its parent clock
  */

 #include <common.h>
@@ -21,19 +20,8 @@
 #include <dm/device.h>
 #include <linux/clk-provider.h>
 #include <clk.h>
-#include "clk.h"
-
-#define UBOOT_DM_CLK_IMX_GATE2 "imx_clk_gate2"
-
-struct clk_gate2 {
-       struct clk clk;
-       void __iomem    *reg;
-       u8              bit_idx;
-       u8              cgr_val;
-       u8              flags;
-};

-#define to_clk_gate2(_clk) container_of(_clk, struct clk_gate2, clk)
+#define UBOOT_DM_CLK_GATE2 "clk_gate2"

 static int clk_gate2_enable(struct clk *clk)
 {
@@ -97,7 +85,7 @@ struct clk *clk_register_gate2(struct device *dev, const char 
*name,

        clk = &gate->clk;

-       ret = clk_register(clk, UBOOT_DM_CLK_IMX_GATE2, name, parent_name);
+       ret = clk_register(clk, UBOOT_DM_CLK_GATE2, name, parent_name);
        if (ret) {
                kfree(gate);
                return ERR_PTR(ret);
@@ -107,7 +95,7 @@ struct clk *clk_register_gate2(struct device *dev, const 
char *name,
 }

 U_BOOT_DRIVER(clk_gate2) = {
-       .name   = UBOOT_DM_CLK_IMX_GATE2,
+       .name   = UBOOT_DM_CLK_GATE2,
        .id     = UCLASS_CLK,
        .ops    = &clk_gate2_ops,
        .flags = DM_FLAG_PRE_RELOC,
diff --git a/drivers/clk/imx/Makefile b/drivers/clk/imx/Makefile
index 222c5a4e08..5328e9265a 100644
--- a/drivers/clk/imx/Makefile
+++ b/drivers/clk/imx/Makefile
@@ -2,7 +2,7 @@
 #
 # SPDX-License-Identifier: GPL-2.0

-obj-$(CONFIG_$(SPL_TPL_)CLK_CCF) += clk-gate2.o clk-pllv3.o clk-pfd.o
+obj-$(CONFIG_$(SPL_TPL_)CLK_CCF) += clk-pllv3.o clk-pfd.o
 obj-$(CONFIG_$(SPL_TPL_)CLK_IMX6Q) += clk-imx6q.o
 obj-$(CONFIG_CLK_IMX8) += clk-imx8.o

diff --git a/drivers/clk/imx/clk.h b/drivers/clk/imx/clk.h
index 07dcf94ea5..c46570e9f4 100644
--- a/drivers/clk/imx/clk.h
+++ b/drivers/clk/imx/clk.h
@@ -45,11 +45,6 @@ struct clk *imx_clk_pll14xx(const char *name, const char 
*parent_name,
                            void __iomem *base,
                            const struct imx_pll14xx_clk *pll_clk);

-struct clk *clk_register_gate2(struct device *dev, const char *name,
-               const char *parent_name, unsigned long flags,
-               void __iomem *reg, u8 bit_idx, u8 cgr_val,
-               u8 clk_gate_flags);
-
 struct clk *imx_clk_pllv3(enum imx_pllv3_type type, const char *name,
                          const char *parent_name, void __iomem *base,
                          u32 div_mask);
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
index 0ef6e685ad..f510291018 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
@@ -90,10 +90,6 @@ struct clk_gate {
 #define CLK_GATE_HIWORD_MASK           BIT(1)

 extern const struct clk_ops clk_gate_ops;
-struct clk *clk_register_gate(struct device *dev, const char *name,
-                             const char *parent_name, unsigned long flags,
-                             void __iomem *reg, u8 bit_idx,
-                             u8 clk_gate_flags, spinlock_t *lock);

 struct clk_div_table {
        unsigned int    val;
@@ -159,6 +155,16 @@ struct clk_composite {

 #define to_clk_composite(_clk) container_of(_clk, struct clk_composite, clk)

+struct clk_gate2 {
+       struct clk clk;
+       void __iomem    *reg;
+       u8              bit_idx;
+       u8              cgr_val;
+       u8              flags;
+};
+
+#define to_clk_gate2(_clk) container_of(_clk, struct clk_gate2, clk)
+
 struct clk *clk_register_composite(struct device *dev, const char *name,
                const char * const *parent_names, int num_parents,
                struct clk *mux_clk, const struct clk_ops *mux_ops,
@@ -184,6 +190,16 @@ struct clk *clk_register_mux(struct device *dev, const 
char *name,
                void __iomem *reg, u8 shift, u8 width,
                u8 clk_mux_flags);

+struct clk *clk_register_gate(struct device *dev, const char *name,
+                             const char *parent_name, unsigned long flags,
+                             void __iomem *reg, u8 bit_idx,
+                             u8 clk_gate_flags, spinlock_t *lock);
+
+struct clk *clk_register_gate2(struct device *dev, const char *name,
+                              const char *parent_name, unsigned long flags,
+                              void __iomem *reg, u8 bit_idx, u8 cgr_val,
+                              u8 clk_gate_flags);
+
 const char *clk_hw_get_name(const struct clk *hw);
 ulong clk_generic_get_rate(struct clk *clk);

-- 
2.24.1

Reply via email to