summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2017-02-01 16:01:35 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2017-02-06 07:31:25 +0100
commitf573cd5e4075d65657fb68793f689eace5863cc6 (patch)
treec3384b6933f8fdf796049b8d89eecfc168ee1956
parentbea07a688163c806a1001028f9eda715ca96976c (diff)
downloadbarebox-f573cd5e4075d65657fb68793f689eace5863cc6.tar.gz
clk: i.MX: clk-gate2: Allow to pass flags
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/clk/imx/clk-gate2.c11
-rw-r--r--drivers/clk/imx/clk.h8
2 files changed, 10 insertions, 9 deletions
diff --git a/drivers/clk/imx/clk-gate2.c b/drivers/clk/imx/clk-gate2.c
index f952f3e..e7dcd87 100644
--- a/drivers/clk/imx/clk-gate2.c
+++ b/drivers/clk/imx/clk-gate2.c
@@ -88,7 +88,8 @@ static struct clk_ops clk_gate2_ops = {
};
struct clk *clk_gate2_alloc(const char *name, const char *parent,
- void __iomem *reg, u8 shift, u8 cgr_val)
+ void __iomem *reg, u8 shift, u8 cgr_val,
+ unsigned long flags)
{
struct clk_gate2 *g = xzalloc(sizeof(*g));
@@ -100,7 +101,7 @@ struct clk *clk_gate2_alloc(const char *name, const char *parent,
g->clk.name = name;
g->clk.parent_names = &g->parent;
g->clk.num_parents = 1;
- g->clk.flags = CLK_SET_RATE_PARENT;
+ g->clk.flags = CLK_SET_RATE_PARENT | flags;
return &g->clk;
}
@@ -113,12 +114,12 @@ void clk_gate2_free(struct clk *clk)
}
struct clk *clk_gate2(const char *name, const char *parent, void __iomem *reg,
- u8 shift, u8 cgr_val)
+ u8 shift, u8 cgr_val, unsigned long flags)
{
struct clk *g;
int ret;
- g = clk_gate2_alloc(name , parent, reg, shift, cgr_val);
+ g = clk_gate2_alloc(name , parent, reg, shift, cgr_val, flags);
ret = clk_register(g);
if (ret) {
@@ -135,7 +136,7 @@ struct clk *clk_gate2_inverted(const char *name, const char *parent,
struct clk *clk;
struct clk_gate2 *g;
- clk = clk_gate2(name, parent, reg, shift, 0x3);
+ clk = clk_gate2(name, parent, reg, shift, 0x3, 0);
if (IS_ERR(clk))
return clk;
diff --git a/drivers/clk/imx/clk.h b/drivers/clk/imx/clk.h
index 1610c48..4f80a32 100644
--- a/drivers/clk/imx/clk.h
+++ b/drivers/clk/imx/clk.h
@@ -2,7 +2,7 @@
#define __IMX_CLK_H
struct clk *clk_gate2(const char *name, const char *parent, void __iomem *reg,
- u8 shift, u8 cgr_val);
+ u8 shift, u8 cgr_val, unsigned long flags);
static inline struct clk *imx_clk_divider(const char *name, const char *parent,
void __iomem *reg, u8 shift, u8 width)
@@ -77,13 +77,13 @@ static inline struct clk *imx_clk_gate_dis(const char *name, const char *parent,
static inline struct clk *imx_clk_gate2(const char *name, const char *parent,
void __iomem *reg, u8 shift)
{
- return clk_gate2(name, parent, reg, shift, 0x3);
+ return clk_gate2(name, parent, reg, shift, 0x3, 0);
}
static inline struct clk *imx_clk_gate2_cgr(const char *name, const char *parent,
void __iomem *reg, u8 shift, u8 cgr_val)
{
- return clk_gate2(name, parent, reg, shift, cgr_val);
+ return clk_gate2(name, parent, reg, shift, cgr_val, 0);
}
static inline struct clk *imx_clk_gate3(const char *name, const char *parent,
@@ -95,7 +95,7 @@ static inline struct clk *imx_clk_gate3(const char *name, const char *parent,
static inline struct clk *imx_clk_gate4(const char *name, const char *parent,
void __iomem *reg, u8 shift)
{
- return clk_gate2(name, parent, reg, shift, 0x3);
+ return clk_gate2(name, parent, reg, shift, 0x3, 0);
}
struct clk *imx_clk_pllv1(const char *name, const char *parent,