All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime.ripard@free-electrons.com>
To: Josh Wu <josh.wu@atmel.com>
Cc: jic23@cam.ac.uk, linux-arm-kernel@lists.infradead.org,
	linux-iio@vger.kernel.org, plagnioj@jcrosoft.com,
	nicolas.ferre@atmel.com
Subject: Re: [PATCH 4/5] iio: at91: add an optional dt property for for adc clock hz.
Date: Tue, 16 Jul 2013 12:30:14 +0200	[thread overview]
Message-ID: <20130716103014.GB3125@lukather> (raw)
In-Reply-To: <51E4FC70.3050207@atmel.com>

[-- Attachment #1: Type: text/plain, Size: 2536 bytes --]

On Tue, Jul 16, 2013 at 03:55:28PM +0800, Josh Wu wrote:
> >On Sun, Jul 14, 2013 at 04:04:28PM +0800, Josh Wu wrote:
> >>diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c
> >>index e93a075..8f1386f 100644
> >>--- a/drivers/iio/adc/at91_adc.c
> >>+++ b/drivers/iio/adc/at91_adc.c
> >>@@ -47,6 +47,7 @@ struct at91_adc_caps {
> >>  struct at91_adc_state {
> >>  	struct clk		*adc_clk;
> >>+	u32			adc_clk_rate;
> >>  	u16			*buffer;
> >>  	unsigned long		channels_mask;
> >>  	struct clk		*clk;
> >>@@ -448,6 +449,10 @@ static int at91_adc_probe_dt(struct at91_adc_state *st,
> >>  	if (!node)
> >>  		return -EINVAL;
> >>+	prop = 0;
> >>+	of_property_read_u32(node, "atmel,adc-clock-rate", &prop);
> >>+	st->adc_clk_rate = prop;
> >>+
> >>  	st->use_external = of_property_read_bool(node, "atmel,adc-use-external-triggers");
> >>  	if (of_property_read_u32(node, "atmel,adc-channels-used", &prop)) {
> >>@@ -723,7 +728,8 @@ static int at91_adc_probe(struct platform_device *pdev)
> >>  	 * specified by the electrical characteristics of the board.
> >>  	 */
> >>  	mstrclk = clk_get_rate(st->clk);
> >>-	adc_clk = clk_get_rate(st->adc_clk);
> >>+	adc_clk = st->adc_clk_rate ?
> >>+		st->adc_clk_rate : clk_get_rate(st->adc_clk);
> >Why is that needed? Isn't it completely redundant with the clocks
> >property?
> 
> As st->adc_clk rate is specified in arch/arm/mach-at91/sama5d3.c
> (take sama5d3 for example), changing the clock rate should recompile
> the kernel binary.
> Use dt parameter will let us easily specify the clock rate instead
> of recompile the code.
>
> And yes, it is redundant that we can define the adc_op_clk rate in
> two places (clock property in .c and adc-clock-rate in dts). But
> this can be compatible with the non-dt platform.

Yet, it's not, while, like you pointed at, the common clock framework
actually *is* usable for both DT and non-DT platforms at no cost.

The fact that AT91 isn't using the DT to retrieve its clock tree yet is
another story (but I believe that it's a work in progress).

> After a further thinking of this, maybe remove the adc_op_clk is
> better since it is a fake clock, and only used to specify the clock
> rate.
> To specify the clock rate use a dt property or platform data
> parameter is better.

No, to specify *any* clock, the common clock framework is the better
solution.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: maxime.ripard@free-electrons.com (Maxime Ripard)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/5] iio: at91: add an optional dt property for for adc clock hz.
Date: Tue, 16 Jul 2013 12:30:14 +0200	[thread overview]
Message-ID: <20130716103014.GB3125@lukather> (raw)
In-Reply-To: <51E4FC70.3050207@atmel.com>

On Tue, Jul 16, 2013 at 03:55:28PM +0800, Josh Wu wrote:
> >On Sun, Jul 14, 2013 at 04:04:28PM +0800, Josh Wu wrote:
> >>diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c
> >>index e93a075..8f1386f 100644
> >>--- a/drivers/iio/adc/at91_adc.c
> >>+++ b/drivers/iio/adc/at91_adc.c
> >>@@ -47,6 +47,7 @@ struct at91_adc_caps {
> >>  struct at91_adc_state {
> >>  	struct clk		*adc_clk;
> >>+	u32			adc_clk_rate;
> >>  	u16			*buffer;
> >>  	unsigned long		channels_mask;
> >>  	struct clk		*clk;
> >>@@ -448,6 +449,10 @@ static int at91_adc_probe_dt(struct at91_adc_state *st,
> >>  	if (!node)
> >>  		return -EINVAL;
> >>+	prop = 0;
> >>+	of_property_read_u32(node, "atmel,adc-clock-rate", &prop);
> >>+	st->adc_clk_rate = prop;
> >>+
> >>  	st->use_external = of_property_read_bool(node, "atmel,adc-use-external-triggers");
> >>  	if (of_property_read_u32(node, "atmel,adc-channels-used", &prop)) {
> >>@@ -723,7 +728,8 @@ static int at91_adc_probe(struct platform_device *pdev)
> >>  	 * specified by the electrical characteristics of the board.
> >>  	 */
> >>  	mstrclk = clk_get_rate(st->clk);
> >>-	adc_clk = clk_get_rate(st->adc_clk);
> >>+	adc_clk = st->adc_clk_rate ?
> >>+		st->adc_clk_rate : clk_get_rate(st->adc_clk);
> >Why is that needed? Isn't it completely redundant with the clocks
> >property?
> 
> As st->adc_clk rate is specified in arch/arm/mach-at91/sama5d3.c
> (take sama5d3 for example), changing the clock rate should recompile
> the kernel binary.
> Use dt parameter will let us easily specify the clock rate instead
> of recompile the code.
>
> And yes, it is redundant that we can define the adc_op_clk rate in
> two places (clock property in .c and adc-clock-rate in dts). But
> this can be compatible with the non-dt platform.

Yet, it's not, while, like you pointed at, the common clock framework
actually *is* usable for both DT and non-DT platforms at no cost.

The fact that AT91 isn't using the DT to retrieve its clock tree yet is
another story (but I believe that it's a work in progress).

> After a further thinking of this, maybe remove the adc_op_clk is
> better since it is a fake clock, and only used to specify the clock
> rate.
> To specify the clock rate use a dt property or platform data
> parameter is better.

No, to specify *any* clock, the common clock framework is the better
solution.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130716/4fd79342/attachment-0001.sig>

  reply	other threads:[~2013-07-16 10:30 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-14  8:04 [PATCH 0/5] iio: at91: Add touch screen support in at91 adc Josh Wu
2013-07-14  8:04 ` Josh Wu
2013-07-14  8:04 ` [PATCH 1/5] iio: at91: use adc_clk_khz to make the calculation not easy to large than u32 Josh Wu
2013-07-14  8:04   ` Josh Wu
2013-07-15 12:52   ` Maxime Ripard
2013-07-15 12:52     ` Maxime Ripard
2013-07-16  7:54     ` Josh Wu
2013-07-16  7:54       ` Josh Wu
2013-07-14  8:04 ` [PATCH 2/5] iio: at91: Use different prescal, startup mask in MR for different IP Josh Wu
2013-07-14  8:04   ` Josh Wu
2013-07-15 12:58   ` Maxime Ripard
2013-07-15 12:58     ` Maxime Ripard
2013-07-16  8:35     ` Josh Wu
2013-07-16  8:35       ` Josh Wu
2013-07-16  8:46       ` Nicolas Ferre
2013-07-16  8:46         ` Nicolas Ferre
2013-07-16 11:20         ` Maxime Ripard
2013-07-16 11:20           ` Maxime Ripard
2013-07-16 11:30         ` Thomas Petazzoni
2013-07-16 11:30           ` Thomas Petazzoni
2013-07-16 11:30           ` Thomas Petazzoni
2013-07-16 19:03           ` Jonathan Cameron
2013-07-16 19:03             ` Jonathan Cameron
2013-07-16 19:03             ` Jonathan Cameron
2013-07-16 19:17             ` Thomas Petazzoni
2013-07-16 19:17               ` Thomas Petazzoni
2013-07-16 19:17               ` Thomas Petazzoni
2013-07-17  8:23               ` Nicolas Ferre
2013-07-17  8:23                 ` Nicolas Ferre
2013-07-17  8:23                 ` Nicolas Ferre
2013-07-17  8:12     ` Nicolas Ferre
2013-07-17  8:12       ` Nicolas Ferre
2013-07-17  9:07       ` Josh Wu
2013-07-17  9:07         ` Josh Wu
2013-07-17 15:40       ` Maxime Ripard
2013-07-17 15:40         ` Maxime Ripard
2013-07-17  7:58   ` Nicolas Ferre
2013-07-17  7:58     ` Nicolas Ferre
2013-07-17 10:09     ` Josh Wu
2013-07-17 10:09       ` Josh Wu
2013-07-20  9:35       ` Jonathan Cameron
2013-07-20  9:35         ` Jonathan Cameron
2013-07-14  8:04 ` [PATCH 3/5] iio: at91: ADC start-up time calculation changed since at91sam9x5 Josh Wu
2013-07-14  8:04   ` Josh Wu
2013-07-20  9:39   ` Jonathan Cameron
2013-07-20  9:39     ` Jonathan Cameron
2013-07-25  7:35     ` Josh Wu
2013-07-25  7:35       ` Josh Wu
2013-07-14  8:04 ` [PATCH 4/5] iio: at91: add an optional dt property for for adc clock hz Josh Wu
2013-07-14  8:04   ` Josh Wu
2013-07-15 13:06   ` Maxime Ripard
2013-07-15 13:06     ` Maxime Ripard
2013-07-16  7:55     ` Josh Wu
2013-07-16  7:55       ` Josh Wu
2013-07-16 10:30       ` Maxime Ripard [this message]
2013-07-16 10:30         ` Maxime Ripard
2013-07-16 11:16         ` Lars-Peter Clausen
2013-07-16 11:16           ` Lars-Peter Clausen
2013-07-25  7:29           ` Josh Wu
2013-07-25  7:29             ` Josh Wu
2013-07-25 12:01   ` boris brezillon
2013-07-25 12:01     ` boris brezillon
2013-07-25 12:11     ` boris brezillon
2013-07-25 12:11       ` boris brezillon
2013-07-14  8:04 ` [PATCH 5/5] iio: at91: introduce touch screen support in iio adc driver Josh Wu
2013-07-14  8:04   ` Josh Wu
2013-07-15 13:15   ` Maxime Ripard
2013-07-15 13:15     ` Maxime Ripard
2013-07-16  9:09     ` Josh Wu
2013-07-16  9:09       ` Josh Wu
2013-07-16 11:43       ` Maxime Ripard
2013-07-16 11:43         ` Maxime Ripard
     [not found]   ` <1373789069-11604-6-git-send-email-josh.wu-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
2013-07-20  9:57     ` Jonathan Cameron
2013-07-20  9:57       ` Jonathan Cameron
2013-07-20  9:57       ` Jonathan Cameron
2013-07-22 13:17   ` Mark Rutland
2013-07-22 13:17     ` Mark Rutland
2013-07-25  7:56     ` Josh Wu
2013-07-25  7:56       ` Josh Wu
2013-07-25 16:45       ` Mark Rutland
2013-07-25 16:45         ` Mark Rutland
2013-08-06 10:24         ` Josh Wu
2013-08-06 10:24           ` Josh Wu
2013-08-08 13:40           ` Mark Rutland
2013-08-08 13:40             ` Mark Rutland

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=20130716103014.GB3125@lukather \
    --to=maxime.ripard@free-electrons.com \
    --cc=jic23@cam.ac.uk \
    --cc=josh.wu@atmel.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=nicolas.ferre@atmel.com \
    --cc=plagnioj@jcrosoft.com \
    /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.