From 32a2a673c6d24a85751f88fb14bb8302fc11c4a9 Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Sun, 27 Apr 2014 11:30:38 +0200 Subject: clk: gate: add flags argument to clock gate constructor This adds a clk_gate_flags argument to clock gate creation functions to allow the introduction of new clock gate modifiers. Signed-off-by: Beniamino Galvani Signed-off-by: Sascha Hauer --- drivers/clk/clk-gate.c | 12 +++++------- drivers/clk/mvebu/common.c | 2 +- drivers/clk/mxs/clk-imx28.c | 2 +- drivers/clk/tegra/clk-periph.c | 2 +- 4 files changed, 8 insertions(+), 10 deletions(-) (limited to 'drivers') diff --git a/drivers/clk/clk-gate.c b/drivers/clk/clk-gate.c index b298b193dc..11c749a8d9 100644 --- a/drivers/clk/clk-gate.c +++ b/drivers/clk/clk-gate.c @@ -25,7 +25,6 @@ struct clk_gate { void __iomem *reg; int shift; const char *parent; -#define CLK_GATE_INVERTED (1 << 0) unsigned flags; }; @@ -85,7 +84,7 @@ static struct clk_ops clk_gate_ops = { }; struct clk *clk_gate_alloc(const char *name, const char *parent, - void __iomem *reg, u8 shift, unsigned flags) + void __iomem *reg, u8 shift, unsigned flags, u8 clk_gate_flags) { struct clk_gate *g = xzalloc(sizeof(*g)); @@ -97,6 +96,7 @@ struct clk *clk_gate_alloc(const char *name, const char *parent, g->clk.flags = flags; g->clk.parent_names = &g->parent; g->clk.num_parents = 1; + g->flags = clk_gate_flags; return &g->clk; } @@ -109,12 +109,12 @@ void clk_gate_free(struct clk *clk_gate) } struct clk *clk_gate(const char *name, const char *parent, void __iomem *reg, - u8 shift, unsigned flags) + u8 shift, unsigned flags, u8 clk_gate_flags) { struct clk *g; int ret; - g = clk_gate_alloc(name , parent, reg, shift, flags); + g = clk_gate_alloc(name , parent, reg, shift, flags, clk_gate_flags); ret = clk_register(g); if (ret) { @@ -131,13 +131,11 @@ struct clk *clk_gate_inverted(const char *name, const char *parent, struct clk *clk; struct clk_gate *g; - clk = clk_gate(name, parent, reg, shift, flags); + clk = clk_gate(name, parent, reg, shift, flags, CLK_GATE_INVERTED); if (IS_ERR(clk)) return clk; g = container_of(clk, struct clk_gate, clk); - g->flags = CLK_GATE_INVERTED; - return clk; } diff --git a/drivers/clk/mvebu/common.c b/drivers/clk/mvebu/common.c index 658ce3e81a..f3be5f2974 100644 --- a/drivers/clk/mvebu/common.c +++ b/drivers/clk/mvebu/common.c @@ -188,7 +188,7 @@ int mvebu_clk_gating_probe(struct device_d *dev) (desc[n].parent) ? desc[n].parent : default_parent; gate->bit_idx = desc[n].bit_idx; gate->clk = clk_gate(desc[n].name, parent, - base, desc[n].bit_idx, 0); + base, desc[n].bit_idx, 0, 0); WARN_ON(IS_ERR(gate->clk)); } diff --git a/drivers/clk/mxs/clk-imx28.c b/drivers/clk/mxs/clk-imx28.c index 934a1940fb..36b71f6870 100644 --- a/drivers/clk/mxs/clk-imx28.c +++ b/drivers/clk/mxs/clk-imx28.c @@ -128,7 +128,7 @@ int __init mx28_clocks_init(void __iomem *regs) clks[fec] = mxs_clk_gate("fec", "fec_sleep", ENET, 30); clks[usb0_phy] = mxs_clk_gate("usb0_phy", "pll0", PLL0CTRL0, 18); clks[usb1_phy] = mxs_clk_gate("usb1_phy", "pll1", PLL1CTRL0, 18); - clks[enet_out] = clk_gate("enet_out", "pll2", ENET, 18, 0); + clks[enet_out] = clk_gate("enet_out", "pll2", ENET, 18, 0, 0); clks[lcdif_comp] = mxs_clk_lcdif("lcdif_comp", clks[ref_pix], clks[lcdif_div], clks[lcdif]); diff --git a/drivers/clk/tegra/clk-periph.c b/drivers/clk/tegra/clk-periph.c index c970f63afa..b7414dec0b 100644 --- a/drivers/clk/tegra/clk-periph.c +++ b/drivers/clk/tegra/clk-periph.c @@ -145,7 +145,7 @@ struct clk *_tegra_clk_register_periph(const char *name, goto out_mux; periph->gate = clk_gate_alloc(NULL, NULL, clk_base + 0x10 + - ((id >> 3) & 0xc), id & 0x1f, 0); + ((id >> 3) & 0xc), id & 0x1f, 0, 0); if (!periph->gate) goto out_gate; -- cgit v1.2.3