summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: c2c296c)
raw | patch | inline | side by side (parent: c2c296c)
author | Tero Kristo <t-kristo@ti.com> | |
Mon, 18 Sep 2017 18:02:24 +0000 (21:02 +0300) | ||
committer | Tero Kristo <t-kristo@ti.com> | |
Fri, 1 Dec 2017 13:15:17 +0000 (15:15 +0200) |
Clkctrl clocks now support clockdomain init also. This will be needed
so that hwmod core can drop the support for clockdomain handling.
Signed-off-by: Tero Kristo <t-kristo@ti.com>
so that hwmod core can drop the support for clockdomain handling.
Signed-off-by: Tero Kristo <t-kristo@ti.com>
drivers/clk/ti/clkctrl.c | patch | blob | history | |
drivers/clk/ti/clock.h | patch | blob | history |
index 2db7d4080f2520f435ce93e63e183dd050812253..284ba449615c1ceebb68b804837c8dc44bbb1b78 100644 (file)
--- a/drivers/clk/ti/clkctrl.c
+++ b/drivers/clk/ti/clkctrl.c
struct omap_clkctrl_provider {
void __iomem *base;
struct list_head clocks;
+ char *clkdm_name;
};
struct omap_clkctrl_clk {
.enable = _omap4_clkctrl_clk_enable,
.disable = _omap4_clkctrl_clk_disable,
.is_enabled = _omap4_clkctrl_clk_is_enabled,
+ .init = omap2_init_clk_clkdm,
};
static struct clk_hw *_ti_omap4_clkctrl_xlate(struct of_phandle_args *clkspec,
provider->base = of_iomap(node, 0);
+ provider->clkdm_name = kmalloc(strlen(node->parent->name) + 3,
+ GFP_KERNEL);
+ if (!provider->clkdm_name) {
+ kfree(provider);
+ return;
+ }
+
+ /*
+ * Create default clkdm name, replace _cm from end of parent node
+ * name with _clkdm
+ */
+ strcpy(provider->clkdm_name, node->parent->name);
+ provider->clkdm_name[strlen(provider->clkdm_name) - 2] = 0;
+ strcat(provider->clkdm_name, "clkdm");
+
INIT_LIST_HEAD(&provider->clocks);
/* Generate clocks */
if (reg_data->flags & CLKF_NO_IDLEST)
hw->flags |= NO_IDLEST;
+ if (reg_data->clkdm_name)
+ hw->clkdm_name = reg_data->clkdm_name;
+ else
+ hw->clkdm_name = provider->clkdm_name;
+
init.parent_names = ®_data->parent;
init.num_parents = 1;
init.flags = 0;
diff --git a/drivers/clk/ti/clock.h b/drivers/clk/ti/clock.h
index 561dbe99ced72122b5b33a808830c0706891a01d..169241fd1edf40bfe7a5da90e16ff6115efde138 100644 (file)
--- a/drivers/clk/ti/clock.h
+++ b/drivers/clk/ti/clock.h
const struct omap_clkctrl_bit_data *bit_data;
u16 flags;
const char *parent;
+ const char *clkdm_name;
};
struct omap_clkctrl_data {