From: Stephen Boyd <stephen.boyd@linaro.org> To: Michael Turquette <mturquette@baylibre.com>, Stephen Boyd <sboyd@codeaurora.org> Cc: linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Linus Walleij <linus.walleij@linaro.org> Subject: [PATCH 20/34] clk: nomadik: Migrate to clk_hw based OF and registration APIs Date: Wed, 1 Jun 2016 16:15:19 -0700 [thread overview] Message-ID: <20160601231533.9354-21-stephen.boyd@linaro.org> (raw) In-Reply-To: <20160601231533.9354-1-stephen.boyd@linaro.org> Now that we have clk_hw based provider APIs to register clks, we can get rid of struct clk pointers while registering clks in these drivers, allowing us to move closer to a clear split of consumer and provider clk APIs. Cc: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Stephen Boyd <stephen.boyd@linaro.org> --- See commit 58657d189a2f and it's children for details on this new registration API. drivers/clk/clk-nomadik.c | 48 +++++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/drivers/clk/clk-nomadik.c b/drivers/clk/clk-nomadik.c index e4d8a991c58f..71677eb12565 100644 --- a/drivers/clk/clk-nomadik.c +++ b/drivers/clk/clk-nomadik.c @@ -253,11 +253,11 @@ static const struct clk_ops pll_clk_ops = { .recalc_rate = pll_clk_recalc_rate, }; -static struct clk * __init +static struct clk_hw * __init pll_clk_register(struct device *dev, const char *name, const char *parent_name, u32 id) { - struct clk *clk; + int ret; struct clk_pll *pll; struct clk_init_data init; @@ -281,11 +281,13 @@ pll_clk_register(struct device *dev, const char *name, pr_debug("register PLL1 clock \"%s\"\n", name); - clk = clk_register(dev, &pll->hw); - if (IS_ERR(clk)) + ret = clk_hw_register(dev, &pll->hw); + if (ret) { kfree(pll); + return ERR_PTR(ret); + } - return clk; + return &pll->hw; } /* @@ -345,11 +347,11 @@ static const struct clk_ops src_clk_ops = { .recalc_rate = src_clk_recalc_rate, }; -static struct clk * __init +static struct clk_hw * __init src_clk_register(struct device *dev, const char *name, const char *parent_name, u8 id) { - struct clk *clk; + int ret; struct clk_src *sclk; struct clk_init_data init; @@ -376,11 +378,13 @@ src_clk_register(struct device *dev, const char *name, pr_debug("register clock \"%s\" ID: %d group: %d bits: %08x\n", name, id, sclk->group1, sclk->clkbit); - clk = clk_register(dev, &sclk->hw); - if (IS_ERR(clk)) + ret = clk_hw_register(dev, &sclk->hw); + if (ret) { kfree(sclk); + return ERR_PTR(ret); + } - return clk; + return &sclk->hw; } #ifdef CONFIG_DEBUG_FS @@ -508,7 +512,7 @@ device_initcall(nomadik_src_clk_init_debugfs); static void __init of_nomadik_pll_setup(struct device_node *np) { - struct clk *clk = ERR_PTR(-EINVAL); + struct clk_hw *hw; const char *clk_name = np->name; const char *parent_name; u32 pll_id; @@ -522,16 +526,16 @@ static void __init of_nomadik_pll_setup(struct device_node *np) return; } parent_name = of_clk_get_parent_name(np, 0); - clk = pll_clk_register(NULL, clk_name, parent_name, pll_id); - if (!IS_ERR(clk)) - of_clk_add_provider(np, of_clk_src_simple_get, clk); + hw = pll_clk_register(NULL, clk_name, parent_name, pll_id); + if (!IS_ERR(hw)) + of_clk_add_hw_provider(np, of_clk_hw_simple_get, hw); } CLK_OF_DECLARE(nomadik_pll_clk, "st,nomadik-pll-clock", of_nomadik_pll_setup); static void __init of_nomadik_hclk_setup(struct device_node *np) { - struct clk *clk = ERR_PTR(-EINVAL); + struct clk_hw *hw; const char *clk_name = np->name; const char *parent_name; @@ -542,20 +546,20 @@ static void __init of_nomadik_hclk_setup(struct device_node *np) /* * The HCLK divides PLL1 with 1 (passthru), 2, 3 or 4. */ - clk = clk_register_divider(NULL, clk_name, parent_name, + hw = clk_hw_register_divider(NULL, clk_name, parent_name, 0, src_base + SRC_CR, 13, 2, CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO, &src_lock); - if (!IS_ERR(clk)) - of_clk_add_provider(np, of_clk_src_simple_get, clk); + if (!IS_ERR(hw)) + of_clk_add_hw_provider(np, of_clk_hw_simple_get, hw); } CLK_OF_DECLARE(nomadik_hclk_clk, "st,nomadik-hclk-clock", of_nomadik_hclk_setup); static void __init of_nomadik_src_clk_setup(struct device_node *np) { - struct clk *clk = ERR_PTR(-EINVAL); + struct clk_hw *hw; const char *clk_name = np->name; const char *parent_name; u32 clk_id; @@ -569,9 +573,9 @@ static void __init of_nomadik_src_clk_setup(struct device_node *np) return; } parent_name = of_clk_get_parent_name(np, 0); - clk = src_clk_register(NULL, clk_name, parent_name, clk_id); - if (!IS_ERR(clk)) - of_clk_add_provider(np, of_clk_src_simple_get, clk); + hw = src_clk_register(NULL, clk_name, parent_name, clk_id); + if (!IS_ERR(hw)) + of_clk_add_hw_provider(np, of_clk_hw_simple_get, hw); } CLK_OF_DECLARE(nomadik_src_clk, "st,nomadik-src-clock", of_nomadik_src_clk_setup); -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: stephen.boyd@linaro.org (Stephen Boyd) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 20/34] clk: nomadik: Migrate to clk_hw based OF and registration APIs Date: Wed, 1 Jun 2016 16:15:19 -0700 [thread overview] Message-ID: <20160601231533.9354-21-stephen.boyd@linaro.org> (raw) In-Reply-To: <20160601231533.9354-1-stephen.boyd@linaro.org> Now that we have clk_hw based provider APIs to register clks, we can get rid of struct clk pointers while registering clks in these drivers, allowing us to move closer to a clear split of consumer and provider clk APIs. Cc: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Stephen Boyd <stephen.boyd@linaro.org> --- See commit 58657d189a2f and it's children for details on this new registration API. drivers/clk/clk-nomadik.c | 48 +++++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/drivers/clk/clk-nomadik.c b/drivers/clk/clk-nomadik.c index e4d8a991c58f..71677eb12565 100644 --- a/drivers/clk/clk-nomadik.c +++ b/drivers/clk/clk-nomadik.c @@ -253,11 +253,11 @@ static const struct clk_ops pll_clk_ops = { .recalc_rate = pll_clk_recalc_rate, }; -static struct clk * __init +static struct clk_hw * __init pll_clk_register(struct device *dev, const char *name, const char *parent_name, u32 id) { - struct clk *clk; + int ret; struct clk_pll *pll; struct clk_init_data init; @@ -281,11 +281,13 @@ pll_clk_register(struct device *dev, const char *name, pr_debug("register PLL1 clock \"%s\"\n", name); - clk = clk_register(dev, &pll->hw); - if (IS_ERR(clk)) + ret = clk_hw_register(dev, &pll->hw); + if (ret) { kfree(pll); + return ERR_PTR(ret); + } - return clk; + return &pll->hw; } /* @@ -345,11 +347,11 @@ static const struct clk_ops src_clk_ops = { .recalc_rate = src_clk_recalc_rate, }; -static struct clk * __init +static struct clk_hw * __init src_clk_register(struct device *dev, const char *name, const char *parent_name, u8 id) { - struct clk *clk; + int ret; struct clk_src *sclk; struct clk_init_data init; @@ -376,11 +378,13 @@ src_clk_register(struct device *dev, const char *name, pr_debug("register clock \"%s\" ID: %d group: %d bits: %08x\n", name, id, sclk->group1, sclk->clkbit); - clk = clk_register(dev, &sclk->hw); - if (IS_ERR(clk)) + ret = clk_hw_register(dev, &sclk->hw); + if (ret) { kfree(sclk); + return ERR_PTR(ret); + } - return clk; + return &sclk->hw; } #ifdef CONFIG_DEBUG_FS @@ -508,7 +512,7 @@ device_initcall(nomadik_src_clk_init_debugfs); static void __init of_nomadik_pll_setup(struct device_node *np) { - struct clk *clk = ERR_PTR(-EINVAL); + struct clk_hw *hw; const char *clk_name = np->name; const char *parent_name; u32 pll_id; @@ -522,16 +526,16 @@ static void __init of_nomadik_pll_setup(struct device_node *np) return; } parent_name = of_clk_get_parent_name(np, 0); - clk = pll_clk_register(NULL, clk_name, parent_name, pll_id); - if (!IS_ERR(clk)) - of_clk_add_provider(np, of_clk_src_simple_get, clk); + hw = pll_clk_register(NULL, clk_name, parent_name, pll_id); + if (!IS_ERR(hw)) + of_clk_add_hw_provider(np, of_clk_hw_simple_get, hw); } CLK_OF_DECLARE(nomadik_pll_clk, "st,nomadik-pll-clock", of_nomadik_pll_setup); static void __init of_nomadik_hclk_setup(struct device_node *np) { - struct clk *clk = ERR_PTR(-EINVAL); + struct clk_hw *hw; const char *clk_name = np->name; const char *parent_name; @@ -542,20 +546,20 @@ static void __init of_nomadik_hclk_setup(struct device_node *np) /* * The HCLK divides PLL1 with 1 (passthru), 2, 3 or 4. */ - clk = clk_register_divider(NULL, clk_name, parent_name, + hw = clk_hw_register_divider(NULL, clk_name, parent_name, 0, src_base + SRC_CR, 13, 2, CLK_DIVIDER_ONE_BASED | CLK_DIVIDER_ALLOW_ZERO, &src_lock); - if (!IS_ERR(clk)) - of_clk_add_provider(np, of_clk_src_simple_get, clk); + if (!IS_ERR(hw)) + of_clk_add_hw_provider(np, of_clk_hw_simple_get, hw); } CLK_OF_DECLARE(nomadik_hclk_clk, "st,nomadik-hclk-clock", of_nomadik_hclk_setup); static void __init of_nomadik_src_clk_setup(struct device_node *np) { - struct clk *clk = ERR_PTR(-EINVAL); + struct clk_hw *hw; const char *clk_name = np->name; const char *parent_name; u32 clk_id; @@ -569,9 +573,9 @@ static void __init of_nomadik_src_clk_setup(struct device_node *np) return; } parent_name = of_clk_get_parent_name(np, 0); - clk = src_clk_register(NULL, clk_name, parent_name, clk_id); - if (!IS_ERR(clk)) - of_clk_add_provider(np, of_clk_src_simple_get, clk); + hw = src_clk_register(NULL, clk_name, parent_name, clk_id); + if (!IS_ERR(hw)) + of_clk_add_hw_provider(np, of_clk_hw_simple_get, hw); } CLK_OF_DECLARE(nomadik_src_clk, "st,nomadik-src-clock", of_nomadik_src_clk_setup); -- 2.7.4
next prev parent reply other threads:[~2016-06-01 23:21 UTC|newest] Thread overview: 179+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-06-01 23:14 [PATCH 00/34] Convert clk providers to clk_hw based APIs (part 1) Stephen Boyd 2016-06-01 23:14 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 01/34] clk: qcom: Migrate to clk_hw based registration and OF APIs Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 02/34] clk: at91: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-06-07 16:36 ` Alexandre Belloni 2016-06-07 16:36 ` Alexandre Belloni 2016-06-07 16:40 ` Boris Brezillon 2016-06-07 16:40 ` Boris Brezillon 2016-09-15 0:39 ` Stephen Boyd 2016-09-15 0:39 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 03/34] clk: highbank: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-06-02 1:02 ` Rob Herring 2016-06-02 1:02 ` Rob Herring 2016-06-02 1:02 ` Rob Herring 2016-06-30 19:25 ` Stephen Boyd 2016-06-30 19:25 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 04/34] clk: bcm2835: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-06-02 18:25 ` Eric Anholt 2016-06-02 18:25 ` Eric Anholt 2016-09-15 0:36 ` Stephen Boyd 2016-09-15 0:36 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 05/34] clk: bcm: iproc: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-06-02 17:22 ` Ray Jui 2016-06-02 17:22 ` Ray Jui 2016-06-30 19:27 ` Stephen Boyd 2016-06-30 19:27 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 06/34] clk: bcm: kona: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-24 23:08 ` Stephen Boyd 2016-08-24 23:08 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 07/34] clk: berlin: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-06-05 17:41 ` Alexandre Belloni 2016-06-05 17:41 ` Alexandre Belloni 2016-06-07 8:40 ` Stephen Boyd 2016-06-07 8:40 ` Stephen Boyd 2016-06-07 16:33 ` Alexandre Belloni 2016-06-07 16:33 ` Alexandre Belloni 2016-06-01 23:15 ` [PATCH 08/34] clk: asm9260: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-24 23:09 ` Stephen Boyd 2016-08-24 23:09 ` Stephen Boyd 2016-08-24 23:10 ` Stephen Boyd 2016-08-24 23:10 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 09/34] clk: axi-clkgen: Migrate to clk_hw based OF and registration APIs Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-24 23:11 ` Stephen Boyd 2016-08-24 23:11 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 10/34] clk: axm5516: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-24 23:12 ` Stephen Boyd 2016-08-24 23:12 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 11/34] clk: cdce: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-24 23:13 ` Stephen Boyd 2016-08-24 23:13 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 12/34] clk: cdce925: Migrate to clk_hw based OF and provider APIs Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:19 ` Stephen Boyd 2016-08-25 0:19 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 13/34] clk: clps711x: Migrate to clk_hw based OF and registration APIs Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:20 ` Stephen Boyd 2016-08-25 0:20 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 14/34] clk: cs2000: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:21 ` Stephen Boyd 2016-08-25 0:21 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 15/34] clk: efm32gg: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:22 ` Stephen Boyd 2016-08-25 0:22 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 16/34] clk: ls1x: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-19 0:09 ` Stephen Boyd 2016-08-19 0:09 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 17/34] clk: maxgen: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-06-07 18:50 ` Javier Martinez Canillas 2016-06-07 18:50 ` Javier Martinez Canillas 2016-06-07 18:50 ` Javier Martinez Canillas 2016-06-07 18:55 ` Javier Martinez Canillas 2016-06-07 18:55 ` Javier Martinez Canillas 2016-06-07 18:55 ` Javier Martinez Canillas 2016-08-16 20:06 ` Stephen Boyd 2016-08-16 20:06 ` Stephen Boyd 2016-08-16 20:06 ` Stephen Boyd 2016-08-17 3:00 ` Javier Martinez Canillas 2016-08-17 3:00 ` Javier Martinez Canillas 2016-08-17 3:00 ` Javier Martinez Canillas 2016-06-01 23:15 ` [PATCH 18/34] clk: mb86s7x: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:27 ` Stephen Boyd 2016-08-25 0:27 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 19/34] clk: moxart: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:25 ` Stephen Boyd 2016-08-25 0:25 ` Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd [this message] 2016-06-01 23:15 ` [PATCH 20/34] clk: nomadik: " Stephen Boyd 2016-06-02 12:06 ` Linus Walleij 2016-06-02 12:06 ` Linus Walleij 2016-06-02 12:06 ` Linus Walleij 2016-06-30 19:26 ` Stephen Boyd 2016-06-30 19:26 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 21/34] clk: nspire: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:25 ` Stephen Boyd 2016-08-25 0:25 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 22/34] clk: palmas: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:25 ` Stephen Boyd 2016-08-25 0:25 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 23/34] clk: pwm: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:25 ` Stephen Boyd 2016-08-25 0:25 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 24/34] clk: rk808: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:30 ` Stephen Boyd 2016-08-25 0:30 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 25/34] clk: s2mps11: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-06-03 7:18 ` Krzysztof Kozlowski 2016-06-03 7:18 ` Krzysztof Kozlowski 2016-06-08 7:22 ` Andi Shyti 2016-06-08 7:22 ` Andi Shyti 2016-06-30 19:29 ` Stephen Boyd 2016-06-30 19:29 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 26/34] clk: scpi: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:30 ` Stephen Boyd 2016-08-25 0:30 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 27/34] clk: si514: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:30 ` Stephen Boyd 2016-08-25 0:30 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 28/34] clk: si5351: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:30 ` Stephen Boyd 2016-08-25 0:30 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 29/34] clk: si570: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:30 ` Stephen Boyd 2016-08-25 0:30 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 30/34] clk: stm32f3: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-06-06 13:48 ` Daniel Thompson 2016-06-06 13:48 ` Daniel Thompson 2016-06-07 8:37 ` Stephen Boyd 2016-06-07 8:37 ` Stephen Boyd 2016-06-07 8:37 ` Stephen Boyd 2016-06-30 19:28 ` Stephen Boyd 2016-06-30 19:28 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 31/34] clk: twl6040: Migrate to clk_hw based " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:34 ` Stephen Boyd 2016-08-25 0:34 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 32/34] clk: u300: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-06-02 12:06 ` Linus Walleij 2016-06-02 12:06 ` Linus Walleij 2016-06-02 12:06 ` Linus Walleij 2016-06-30 19:26 ` Stephen Boyd 2016-06-30 19:26 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 33/34] clk: vt8500: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:36 ` Stephen Boyd 2016-08-25 0:36 ` Stephen Boyd 2016-06-01 23:15 ` [PATCH 34/34] clk: wm831x: " Stephen Boyd 2016-06-01 23:15 ` Stephen Boyd 2016-08-25 0:36 ` Stephen Boyd 2016-08-25 0:36 ` Stephen Boyd
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20160601231533.9354-21-stephen.boyd@linaro.org \ --to=stephen.boyd@linaro.org \ --cc=linus.walleij@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mturquette@baylibre.com \ --cc=sboyd@codeaurora.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.