public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@opensource.wolfsonmicro.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Grant Likely <grant.likely@secretlab.ca>,
	timur@freescale.com, devicetree-discuss@ozlabs.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.arm.linux.org.uk, scottwood@freescale.com,
	yuan-bo.ye@motorola.com, David Miller <davem@davemloft.net>
Subject: Re: [RFC] [PATCH] Device Tree on ARM platform
Date: Sat, 30 May 2009 18:56:37 +0100	[thread overview]
Message-ID: <20090530175636.GA6335@sirena.org.uk> (raw)
In-Reply-To: <20090530102153.GA6910@n2100.arm.linux.org.uk>

On Sat, May 30, 2009 at 11:21:53AM +0100, Russell King - ARM Linux wrote:

> I think the first thing to do is to get an accurate description of the
> problem before thinking about how to come up with solutions.  I saw
> that this kept coming up in Mark's emails, so I asked him about it
> in private.

I have had these discussions in one form or another several times so
I've not really been going into any of the issues in enormous detail in
this thread.

> 2. inter-relationships between several clocks.  To take his example,
>    for clocking a DAC and ADC, you may have three clocks (dac_clk,
>    adc_clk and bclk).  You may want dac_clk to be xkHz, adc_clk ykHz
>    and bclk (which could well be related to both) to be zkHz.  For
>    each of these, you might be able to accept an error of so-many-
>    percent.

More generally this is a desire for a framework which can take the set
of clocks and constraints on them and automatically implement a viable
configuration for the system.  Since there are tradeoffs involved it's
not as straightfoward as it might be.  The things that give me headaches
when I consider this include:

 - PLLs/FLLs with varying degrees of configurability are available on
   some devices but burn power when used (this is one of the issues with
   the accuracy consideration you mention).
 - Many of the clocks can be either an input or an output.
 - Pretty much any aspect of the desired configuration can change at run
   time based on any part of the system - some of it is policy.

Within any one system there are normally simplifying assumptions which
make life a lot easier but these aren't available to generic code.

I think this is a solvable problem but it's not trivial and depends on
the clock API implementation improvements you have mentioned - since the
audio clocking is generally tied into the rest of the system clocking a
free standing solution is not going to cover everything.

> I believe (2) is an entirely separate problem to the device tree, and
> really shouldn't concern the device tree beyond, maybe, providing the
> contraints for individual clock _sources_.

That's not the impression that a lot of the device tree users give - the
expectation people seem to have is that they can put all the system
configuration that needs to be done into the device tree.  This means
that we end up needing to be able to either have software that can
decide the configuration for itself or be able to express the various
options in the device tree so that the configuration can be handed to
the kernel that way.  Given the whole OS neutrality thing I'm not sure
how far we can go beyond simply describing the hardware which tends to
suggest that automatic configuration is going to be needed to make
people happy.

> (1) on the other hand is related, but is not really a device tree problem.
> It's a problem with the way people use the API (even though that wrong
> usage is explicitly documented as being wrong, this doesn't stop people
> being lazy.)

I agree entirely with this; while there's work to do in this area I
don't see any fundamental problem with describing clock trees in either
the kernel or a device tree style format.

  reply	other threads:[~2009-05-30 17:57 UTC|newest]

Thread overview: 151+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-27  7:08 [RFC] [PATCH] Device Tree on ARM platform Janboe Ye
2009-05-27 14:27 ` Grant Likely
2009-05-27 14:39   ` Timur Tabi
2009-05-27 15:05     ` Robert Schwebel
2009-05-27 15:39       ` Grant Likely
2009-05-27 16:20         ` Robert Schwebel
2009-05-27 20:35           ` Grant Likely
2009-05-27 23:48             ` Robert Schwebel
2009-05-27 23:52               ` David Miller
2009-05-27 23:58               ` Scott Wood
2009-05-28  0:02                 ` David Miller
2009-05-28  0:07                 ` Robert Schwebel
2009-05-28  0:15                   ` David Miller
2009-05-28 10:37                     ` Mark Brown
2009-05-28 22:32                       ` Grant Likely
2009-05-29 12:34                         ` Mark Brown
2009-05-30  9:52                           ` Benjamin Herrenschmidt
2009-05-30 10:21                             ` Russell King - ARM Linux
2009-05-30 17:56                               ` Mark Brown [this message]
2009-06-02  7:57                               ` Holger Schurig
2009-06-02  9:48                                 ` Mark Brown
2009-05-28  2:57                   ` David Gibson
2009-05-28  3:36                     ` Grant Likely
2009-05-28  3:29                   ` Grant Likely
2009-05-28  9:51                     ` Wolfgang Denk
2009-05-28  9:59                       ` David Miller
2009-05-28 10:13                       ` Robert Schwebel
2009-05-28 13:33                         ` Jon Smirl
2009-05-28 13:42                           ` Robert Schwebel
2009-05-28  9:38                   ` Wolfgang Denk
2009-05-28  3:21                 ` Grant Likely
2009-05-28  3:16               ` Grant Likely
2009-05-28  0:55           ` Stephen Neuendorffer
2009-05-27 18:56         ` Alexander Clouter
2009-05-27 20:46           ` Grant Likely
2009-05-27 21:32             ` Alexander Clouter
2009-05-27 15:41       ` Peter Korsgaard
2009-05-27 16:23         ` Scott Wood
2009-05-27 17:56           ` Russell King
2009-05-27 19:08             ` Scott Wood
2009-05-27 19:13               ` Jon Smirl
2009-05-27 19:21                 ` Russell King - ARM Linux
2009-05-27 19:39                   ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-27 20:22                     ` Grant Likely
2009-05-27 20:19                       ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-27 20:54                         ` Grant Likely
2009-05-28  3:04                           ` David Gibson
2009-05-28  7:58                           ` Benjamin Herrenschmidt
2009-05-27 23:57                       ` Robert Schwebel
2009-05-28  0:00                         ` David Miller
2009-05-28  3:21                         ` Grant Likely
2009-05-28  6:34                           ` Wolfram Sang
2009-05-28  7:55                             ` Benjamin Herrenschmidt
2009-05-28 13:34                             ` Grant Likely
2009-05-28  7:48                         ` Benjamin Herrenschmidt
2009-05-28 14:22                       ` Ben Dooks
2009-05-27 20:28                     ` David Miller
2009-05-27 20:31                       ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-28  2:52                   ` David Gibson
2009-05-28  4:27                     ` David Miller
2009-05-28  4:47                       ` David Gibson
2009-05-28  5:31                         ` David Miller
2009-05-28  5:47                           ` David Gibson
2009-05-28  7:47                   ` Benjamin Herrenschmidt
2009-05-28 14:17                 ` Ben Dooks
2009-05-28 14:24                   ` Robert Schwebel
2009-05-28 14:47                   ` Grant Likely
2009-05-27 19:29               ` Russell King
2009-05-27 19:47                 ` Sergei Shtylyov
2009-05-27 19:53                 ` Scott Wood
2009-05-27 19:54                   ` Timur Tabi
2009-05-27 20:25                     ` David Miller
2009-05-27 20:27                       ` Timur Tabi
2009-05-27 20:55                         ` David Miller
2009-05-27 23:26                           ` Robert Schwebel
2009-05-27 20:35                       ` M. Warner Losh
2009-05-27 20:14                   ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-27 20:23                 ` David Miller
2009-05-27 20:27                   ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-27 20:48                     ` Josh Boyer
2009-05-27 20:56                     ` David Miller
2009-05-27 20:52                 ` Mark Brown
2009-05-27 21:05                   ` Grant Likely
2009-05-28  0:11                     ` Jon Smirl
2009-05-28 12:43                     ` Sascha Hauer
2009-05-28 13:18                       ` Thomas Gleixner
2009-05-28 15:04                         ` Sascha Hauer
2009-05-28 15:27                           ` Thomas Gleixner
2009-05-29  0:51                           ` Benjamin Herrenschmidt
2009-05-29  7:52                             ` Sascha Hauer
2009-05-29  9:08                               ` Benjamin Herrenschmidt
2009-05-31 10:52                             ` Russell King - ARM Linux
2009-05-28 14:31                       ` Grant Likely
2009-05-28  3:25                   ` David Gibson
2009-05-28  8:10                 ` Benjamin Herrenschmidt
2009-05-28  7:38               ` Benjamin Herrenschmidt
2009-05-27 20:43             ` Grant Likely
2009-05-28  7:37             ` Benjamin Herrenschmidt
2009-05-28  9:15               ` Russell King - ARM Linux
2009-05-28  9:57                 ` David Miller
2009-05-28 10:11                   ` Benjamin Herrenschmidt
2009-05-28 10:33                     ` Robert Schwebel
2009-05-28 10:34                     ` Russell King - ARM Linux
2009-05-28 22:33                       ` Benjamin Herrenschmidt
2009-05-28 10:14                   ` Russell King - ARM Linux
2009-05-28 21:30                     ` David Miller
2009-05-28 12:17                   ` Dmitry Eremin-Solenikov
2009-05-28 12:48                     ` David Gibson
2009-05-28 12:55                       ` David Gibson
2009-05-28 14:13                     ` Grant Likely
2009-05-28 16:53                       ` Russell King - ARM Linux
2009-05-28 17:05                         ` Grant Likely
2009-05-28 18:46                         ` Alexander Clouter
2009-05-28 22:21                       ` Benjamin Herrenschmidt
2009-05-29  1:39                         ` David Gibson
2009-05-29  1:59                           ` Mitch Bradley
2009-05-29  3:52                             ` Benjamin Herrenschmidt
2009-05-29  4:11                               ` David Miller
2009-05-29  4:11                             ` David Miller
2009-05-29  4:56                               ` Benjamin Herrenschmidt
2009-05-29  5:11                                 ` David Miller
2009-05-28 10:00                 ` Benjamin Herrenschmidt
2009-05-28 11:44                 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-28 12:47                 ` Jon Smirl
2009-05-28 14:39                   ` Grant Likely
2009-05-28 14:54                 ` Grant Likely
2009-05-27 18:26           ` Peter Korsgaard
2009-05-27 16:32       ` Mark Brown
2009-05-27 18:50         ` Jon Smirl
2009-05-27 22:24           ` Mark Brown
2009-05-28  0:04             ` Jon Smirl
2009-05-28 13:07               ` Mark Brown
2009-05-27 20:42         ` Grant Likely
2009-05-27 21:38           ` Mark Brown
2009-05-28  3:02       ` David Gibson
2009-05-28  7:32       ` Benjamin Herrenschmidt
2009-05-28 13:38         ` Grant Likely
2009-05-27 22:01     ` Mitch Bradley
2009-05-28  8:17       ` Benjamin Herrenschmidt
2009-05-28 12:43     ` Holger Schurig
2009-05-28 13:12       ` Mark Brown
2009-05-27 17:44   ` Russell King
2009-05-27 17:52     ` Grant Likely
2009-05-28  3:44       ` David Gibson
2009-05-30 11:22 ` Pavel Machek
2009-05-31  1:29   ` Kyle Moffett
2009-05-31  5:56     ` David Miller
2009-06-01  8:37     ` Dmitry Eremin-Solenikov
2009-05-31 10:08 ` Russell King - ARM Linux
2009-06-01  9:24   ` Stephen Rothwell
2009-06-01 10:36   ` Janboe Ye

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=20090530175636.GA6335@sirena.org.uk \
    --to=broonie@opensource.wolfsonmicro.com \
    --cc=benh@kernel.crashing.org \
    --cc=davem@davemloft.net \
    --cc=devicetree-discuss@ozlabs.org \
    --cc=grant.likely@secretlab.ca \
    --cc=linux-arm-kernel@lists.arm.linux.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=scottwood@freescale.com \
    --cc=timur@freescale.com \
    --cc=yuan-bo.ye@motorola.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox