From: christian.ruppert@abilis.com (Christian Ruppert)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] clk: add device tree fixed-factor-clock binding support
Date: Fri, 12 Apr 2013 12:30:10 +0200 [thread overview]
Message-ID: <20130412103007.GE29291@ab42.lan> (raw)
In-Reply-To: <1365760708-4763-2-git-send-email-gregory.clement@free-electrons.com>
Hi Gregory,
Just tested the patch and it works perfectly. Did you forget to update
Documentation/devicetree/bindings/clock/fixed-factor-clock.txt, however?
Greetings,
Christian
On Fri, Apr 12, 2013 at 11:58:28AM +0200, Gregory CLEMENT wrote:
> Add support for DT "fixed-factor-clock" binding to the common fixed
> factor clock support.
>
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
> ---
> .../bindings/clock/fixed-factor-clock.txt | 24 +++++++++++++
> drivers/clk/clk-fixed-factor.c | 36 ++++++++++++++++++++
> include/linux/clk-provider.h | 2 ++
> 3 files changed, 62 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/clock/fixed-factor-clock.txt
>
> diff --git a/Documentation/devicetree/bindings/clock/fixed-factor-clock.txt b/Documentation/devicetree/bindings/clock/fixed-factor-clock.txt
> new file mode 100644
> index 0000000..7ed236f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/fixed-factor-clock.txt
> @@ -0,0 +1,24 @@
> +Binding for simple fixed factor rate clock sources.
> +
> +This binding uses the common clock binding[1].
> +
> +[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
> +
> +Required properties:
> +- compatible : shall be "fixed-factor-clock".
> +- #clock-cells : from common clock binding; shall be set to 0.
> +- div: fixed divider.
> +- mult: fixed multiplier.
> +- clocks: parent clock.
> +
> +Optional properties:
> +- clock-output-names : From common clock binding.
> +
> +Example:
> + clock {
> + compatible = "fixed-factor-clock";
> + clocks = <&parentclk>;
> + #clock-cells = <0>;
> + div = <2>;
> + mult = <1>;
> + };
> diff --git a/drivers/clk/clk-fixed-factor.c b/drivers/clk/clk-fixed-factor.c
> index 1ef271e..9ff7d51 100644
> --- a/drivers/clk/clk-fixed-factor.c
> +++ b/drivers/clk/clk-fixed-factor.c
> @@ -11,6 +11,7 @@
> #include <linux/clk-provider.h>
> #include <linux/slab.h>
> #include <linux/err.h>
> +#include <linux/of.h>
>
> /*
> * DOC: basic fixed multiplier and divider clock that cannot gate
> @@ -96,3 +97,38 @@ struct clk *clk_register_fixed_factor(struct device *dev, const char *name,
>
> return clk;
> }
> +#ifdef CONFIG_OF
> +/**
> + * of_fixed_factor_clk_setup() - Setup function for simple fixed factor clock
> + */
> +void __init of_fixed_factor_clk_setup(struct device_node *node)
> +{
> + struct clk *clk;
> + const char *clk_name = node->name;
> + const char *parent_name;
> + u32 div, mult;
> +
> + if (of_property_read_u32(node, "clock-div", &div)) {
> + pr_err("%s Fixed factor clock <%s> must have a clock-div property\n",
> + __func__, node->name);
> + return;
> + }
> +
> + if (of_property_read_u32(node, "clock-mult", &mult)) {
> + pr_err("%s Fixed factor clock <%s> must have a clokc-mult property\n",
> + __func__, node->name);
> + return;
> + }
> +
> + of_property_read_string(node, "clock-output-names", &clk_name);
> + parent_name = of_clk_get_parent_name(node, 0);
> +
> + clk = clk_register_fixed_factor(NULL, clk_name, parent_name, 0,
> + mult, div);
> + if (!IS_ERR(clk))
> + of_clk_add_provider(node, of_clk_src_simple_get, clk);
> +}
> +EXPORT_SYMBOL_GPL(of_fixed_factor_clk_setup);
> +CLK_OF_DECLARE(fixed_factor_clk, "fixed-factor-clock",
> + of_fixed_factor_clk_setup);
> +#endif
> diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
> index 7f197d7..7ea501b 100644
> --- a/include/linux/clk-provider.h
> +++ b/include/linux/clk-provider.h
> @@ -325,6 +325,8 @@ struct clk *clk_register_fixed_factor(struct device *dev, const char *name,
> const char *parent_name, unsigned long flags,
> unsigned int mult, unsigned int div);
>
> +void of_fixed_factor_clk_setup(struct device_node *node);
> +
> /**
> * clk_register - allocate a new clock, register it and return an opaque cookie
> * @dev: device that is registering this clock
> --
> 1.7.9.5
>
--
Christian Ruppert , <christian.ruppert@abilis.com>
/|
Tel: +41/(0)22 816 19-42 //| 3, Chemin du Pr?-Fleuri
_// | bilis Systems CH-1228 Plan-les-Ouates
WARNING: multiple messages have this Message-ID (diff)
From: Christian Ruppert <christian.ruppert@abilis.com>
To: Gregory CLEMENT <gregory.clement@free-electrons.com>
Cc: Mike Turquette <mturquette@linaro.org>,
Grant Likely <grant.likely@secretlab.ca>,
Rob Herring <rob.herring@calxeda.com>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
devicetree-discuss@lists.ozlabs.or,
Shawn Guo <shawn.guo@freescale.com>
Subject: Re: [PATCH v2] clk: add device tree fixed-factor-clock binding support
Date: Fri, 12 Apr 2013 12:30:10 +0200 [thread overview]
Message-ID: <20130412103007.GE29291@ab42.lan> (raw)
In-Reply-To: <1365760708-4763-2-git-send-email-gregory.clement@free-electrons.com>
Hi Gregory,
Just tested the patch and it works perfectly. Did you forget to update
Documentation/devicetree/bindings/clock/fixed-factor-clock.txt, however?
Greetings,
Christian
On Fri, Apr 12, 2013 at 11:58:28AM +0200, Gregory CLEMENT wrote:
> Add support for DT "fixed-factor-clock" binding to the common fixed
> factor clock support.
>
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
> ---
> .../bindings/clock/fixed-factor-clock.txt | 24 +++++++++++++
> drivers/clk/clk-fixed-factor.c | 36 ++++++++++++++++++++
> include/linux/clk-provider.h | 2 ++
> 3 files changed, 62 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/clock/fixed-factor-clock.txt
>
> diff --git a/Documentation/devicetree/bindings/clock/fixed-factor-clock.txt b/Documentation/devicetree/bindings/clock/fixed-factor-clock.txt
> new file mode 100644
> index 0000000..7ed236f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/fixed-factor-clock.txt
> @@ -0,0 +1,24 @@
> +Binding for simple fixed factor rate clock sources.
> +
> +This binding uses the common clock binding[1].
> +
> +[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
> +
> +Required properties:
> +- compatible : shall be "fixed-factor-clock".
> +- #clock-cells : from common clock binding; shall be set to 0.
> +- div: fixed divider.
> +- mult: fixed multiplier.
> +- clocks: parent clock.
> +
> +Optional properties:
> +- clock-output-names : From common clock binding.
> +
> +Example:
> + clock {
> + compatible = "fixed-factor-clock";
> + clocks = <&parentclk>;
> + #clock-cells = <0>;
> + div = <2>;
> + mult = <1>;
> + };
> diff --git a/drivers/clk/clk-fixed-factor.c b/drivers/clk/clk-fixed-factor.c
> index 1ef271e..9ff7d51 100644
> --- a/drivers/clk/clk-fixed-factor.c
> +++ b/drivers/clk/clk-fixed-factor.c
> @@ -11,6 +11,7 @@
> #include <linux/clk-provider.h>
> #include <linux/slab.h>
> #include <linux/err.h>
> +#include <linux/of.h>
>
> /*
> * DOC: basic fixed multiplier and divider clock that cannot gate
> @@ -96,3 +97,38 @@ struct clk *clk_register_fixed_factor(struct device *dev, const char *name,
>
> return clk;
> }
> +#ifdef CONFIG_OF
> +/**
> + * of_fixed_factor_clk_setup() - Setup function for simple fixed factor clock
> + */
> +void __init of_fixed_factor_clk_setup(struct device_node *node)
> +{
> + struct clk *clk;
> + const char *clk_name = node->name;
> + const char *parent_name;
> + u32 div, mult;
> +
> + if (of_property_read_u32(node, "clock-div", &div)) {
> + pr_err("%s Fixed factor clock <%s> must have a clock-div property\n",
> + __func__, node->name);
> + return;
> + }
> +
> + if (of_property_read_u32(node, "clock-mult", &mult)) {
> + pr_err("%s Fixed factor clock <%s> must have a clokc-mult property\n",
> + __func__, node->name);
> + return;
> + }
> +
> + of_property_read_string(node, "clock-output-names", &clk_name);
> + parent_name = of_clk_get_parent_name(node, 0);
> +
> + clk = clk_register_fixed_factor(NULL, clk_name, parent_name, 0,
> + mult, div);
> + if (!IS_ERR(clk))
> + of_clk_add_provider(node, of_clk_src_simple_get, clk);
> +}
> +EXPORT_SYMBOL_GPL(of_fixed_factor_clk_setup);
> +CLK_OF_DECLARE(fixed_factor_clk, "fixed-factor-clock",
> + of_fixed_factor_clk_setup);
> +#endif
> diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
> index 7f197d7..7ea501b 100644
> --- a/include/linux/clk-provider.h
> +++ b/include/linux/clk-provider.h
> @@ -325,6 +325,8 @@ struct clk *clk_register_fixed_factor(struct device *dev, const char *name,
> const char *parent_name, unsigned long flags,
> unsigned int mult, unsigned int div);
>
> +void of_fixed_factor_clk_setup(struct device_node *node);
> +
> /**
> * clk_register - allocate a new clock, register it and return an opaque cookie
> * @dev: device that is registering this clock
> --
> 1.7.9.5
>
--
Christian Ruppert , <christian.ruppert@abilis.com>
/|
Tel: +41/(0)22 816 19-42 //| 3, Chemin du Pré-Fleuri
_// | bilis Systems CH-1228 Plan-les-Ouates
next prev parent reply other threads:[~2013-04-12 10:30 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-12 9:58 [PATCH v2] clk: add device tree fixed-factor-clock binding support Gregory CLEMENT
2013-04-12 9:58 ` Gregory CLEMENT
2013-04-12 9:58 ` Gregory CLEMENT
2013-04-12 9:58 ` Gregory CLEMENT
2013-04-12 10:30 ` Christian Ruppert [this message]
2013-04-12 10:30 ` Christian Ruppert
2013-04-12 11:18 ` Gregory CLEMENT
2013-04-12 11:18 ` Gregory CLEMENT
2013-04-12 11:42 ` Christian Ruppert
2013-04-12 11:42 ` Christian Ruppert
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=20130412103007.GE29291@ab42.lan \
--to=christian.ruppert@abilis.com \
--cc=linux-arm-kernel@lists.infradead.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: link
Be 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.