From: Sylwester Nawrocki <s.nawrocki@samsung.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Greg KH <gregkh@linuxfoundation.org>,
Ben Dooks <ben.dooks@codethink.co.uk>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, mturquette@linaro.org,
linux@arm.linux.org.uk, robh+dt@kernel.org,
grant.likely@linaro.org, mark.rutland@arm.com,
galak@codeaurora.org, kyungmin.park@samsung.com,
sw0312.kim@samsung.com, m.szyprowski@samsung.com,
t.figa@samsung.com, laurent.pinchart@ideasonboard.com
Subject: Re: [PATCH RFC v4 2/2] clk: Add handling of clk parent and rate assigned from DT
Date: Wed, 02 Apr 2014 12:24:26 +0200 [thread overview]
Message-ID: <533BE55A.80408@samsung.com> (raw)
In-Reply-To: <20140402053715.GV17250@pengutronix.de>
On 02/04/14 07:37, Sascha Hauer wrote:
> On Tue, Apr 01, 2014 at 09:37:44AM -0700, Greg KH wrote:
>> On Tue, Apr 01, 2014 at 04:23:12PM +0200, Sylwester Nawrocki wrote:
>>> On 01/04/14 15:19, Ben Dooks wrote:
>>>> On 31/03/14 21:06, Greg KH wrote:
>>>>>> On Mon, Mar 31, 2014 at 06:41:56PM +0200, Sylwester Nawrocki wrote:
>>> [...]
>>>>>> I don't understand why you need the driver core to initialize this one
>>>>>> type of thing? That should be in a driver, or in a class, or at worse
>>>>>> case, the platform code.
>>>>>>
>>>>>> What makes clocks so "unique" here?
>>>
>>> The reason I put it in the driver core was mainly to avoid having many
>>> drivers doing same call to this initialization function.
>>> I was considering moving it to the bus code, still there are several
>>> buses for which it would need to be repeated.
>>
>> "several" is how many? 2? 3? 10?
>>
>> Please fix it "correctly" and don't put it in the driver core just
>> because it seems easier that way.
>>
>>> Maybe really_probe() is not a best place to put this, nonetheless
>>> the requirements I could list were:
>>>
>>> 1. not involving individual drivers,
>>
>> Why not?
>>
>>> 2. have such an initialization call done for all devices, irrespective
>>> of Linux bus or class type,
>>
>> Why? Do _all_ devices that Linux supports have this issue to be
>> resolved?
>>
>>> 3. Handle errors properly, e.g. defer driver probing if a clock for
>>> a device is not yet available.
>>
>> Then do it in the bus that controls that device, as it knows to defer
>> probing at that point in time.
>
> The issue this patch tries to solve is not about single devices, but
> about the way these devices are connected with each other.
>
> Clocks for different (sometimes completely unrelated) devices influence
> each other. You can't control the clock from one device without
> influencing other devices. Knowledge about these constraints can't be
> encoded in the drivers, because the constraints differ per SoC,
> sometimes even per board. Many SoCs share the same devices, but the
> clock topology they are surrounded with is always different. With this I
> don't mean the direct clock inputs, these are well abstracted with the
> current clk_* API. What I mean is situations like: "On this board use
> the clock controller to output this particular clock on that pin,
> because it happens to be the master clock of some audio codec connected
> externally; also make the same clock input to the internal Audio system
> to make sure both are in sync". These situations can be completely
> different on the next board or on the next SoC which has the same
> devices, but a different clock routing.
>
> That said, I also think the driver core doesn't have to be bothered with
> the clock setup. Putting the clock setup into the devicenode providing
> the clocks (and thus parsing it from the clock controller driver) should
> be sufficient.
It would work but I don't really like such a DT binding. Rather than
only having a long list of clocks in one node I would prefer to also
have a possibility to list clock data specific to a device in its
corresponding DT node. Similarly as it's done, e.g. with interrupts.
--
Thanks,
Sylwester
next prev parent reply other threads:[~2014-04-02 10:24 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-31 16:41 [PATCH RFC v4 0/2] clk: Support for DT assigned clock parents and rates Sylwester Nawrocki
[not found] ` <1396284116-19178-1-git-send-email-s.nawrocki-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-03-31 16:41 ` [PATCH RFC v4 1/2] clk: Add function parsing arbitrary clock list DT property Sylwester Nawrocki
2014-03-31 16:41 ` [PATCH RFC v4 2/2] clk: Add handling of clk parent and rate assigned from DT Sylwester Nawrocki
[not found] ` <1396284116-19178-3-git-send-email-s.nawrocki-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-03-31 17:04 ` Ben Dooks
[not found] ` <5339A036.6090703-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org>
2014-04-01 6:23 ` Sascha Hauer
[not found] ` <20140401062306.GS17250-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2014-04-01 9:31 ` Sylwester Nawrocki
2014-03-31 20:06 ` Greg KH
[not found] ` <20140331200620.GA13881-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2014-04-01 13:19 ` Ben Dooks
[not found] ` <533ABCEC.8040701-4yDnlxn2s6sWdaTGBSpHTA@public.gmane.org>
2014-04-01 14:23 ` Sylwester Nawrocki
2014-04-01 16:37 ` Greg KH
[not found] ` <20140401163744.GE3842-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2014-04-02 5:37 ` Sascha Hauer
2014-04-02 10:24 ` Sylwester Nawrocki [this message]
2014-04-02 10:18 ` Sylwester Nawrocki
2014-04-02 8:01 ` Peter De Schrijver
[not found] ` <20140402080102.GK2931-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2014-04-02 13:02 ` Sylwester Nawrocki
2014-04-01 16:35 ` Greg KH
2014-04-01 13:15 ` Laurent Pinchart
2014-04-01 14:52 ` Sylwester Nawrocki
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=533BE55A.80408@samsung.com \
--to=s.nawrocki@samsung.com \
--cc=ben.dooks@codethink.co.uk \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=grant.likely@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=kyungmin.park@samsung.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=m.szyprowski@samsung.com \
--cc=mark.rutland@arm.com \
--cc=mturquette@linaro.org \
--cc=robh+dt@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=sw0312.kim@samsung.com \
--cc=t.figa@samsung.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;
as well as URLs for NNTP newsgroup(s).