From: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
To: Arnd Bergmann <arnd@arndb.de>, Guenter Roeck <linux@roeck-us.net>
Cc: wim@iguana.be, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-watchdog@vger.kernel.org,
paul@crapouillou.net
Subject: Re: [PATCH 1/2] dt: watchdog: Add DT binding documentation for jz47xx watchdog timer
Date: Wed, 28 Jan 2015 10:27:00 +0000 [thread overview]
Message-ID: <54C8B974.8030703@imgtec.com> (raw)
In-Reply-To: <9081741.fTg5kD1W54@wuerfel>
On 27/01/15 22:42, Arnd Bergmann wrote:
> On Tuesday 27 January 2015 23:36:36 Arnd Bergmann wrote:
>> On Tuesday 27 January 2015 14:19:09 Guenter Roeck wrote:
>>> On Tue, Jan 27, 2015 at 10:29:49PM +0100, Arnd Bergmann wrote:
>>>> On Tuesday 27 January 2015 12:52:29 Guenter Roeck wrote:
>>>>> Driver does this (today):
>>>>>
>>>>> drvdata->rtc_clk = clk_get(&pdev->dev, "rtc");
>>>>>
>>>>> Isn't that the name to use ? Just wondering.
>>>>
>>>> Just because the driver uses it at the moment does not mean it's the name
>>>> that the IP block uses.
>>>>
>>>> clk_get() has the unpleasant property of doing fuzzy matching
>>>> on the name that is passed. It first tries to use the string
>>>> as the name of the clock input of the device, but if that is
>>>> not there, it falls back to looking for a global clk with a con_id.
>>>>
>>>> In DT, we only support the first kind, but if a driver currently
>>>> uses the second, you get the wrong name.
>>>>
>>>> Looking at arch/mips/jz4740/clock.c now, this seems to be exactly
>>>> what is going on here: there is no clkdev_add call to associate
>>>> the device clocks, so it can only match a global clock entry.
>>>>
>>> Me confused :-(.
>>>
>>> Does that mean the driver needs to be fixed, that the DT property
>>> needs to change (to what ?), or both ?
>>
>> Both.
>>
>> The jz47xx clock driver should register a clkdev lookup table with
>> proper clock input names for each clock that is referenced by a
>> device, and then the drivers can use the right names.
>>
>> In a lot of cases, the best name for a clock is no name so you
>> just use an anonymous clock like
>>
>> clk = clk_get(dev, NULL);
>>
>> but this still requires a clock lookup table.
>
> To illustrate why the current approach is wrong, think of a driver
> that handles a device that can be used on two different SoCs.
>
> The name used by the clock provider is SoC specific, so the driver
> would need to know which SoC it's being used on in order to pass
> the right clock signal name. clkdev is meant to solve this by providing
> a lookup between the device/clock-input pair and the actual clock.
>
> Apparently jz4740 does not share any devices with another SoC at
> the moment, so this has not been a problem, but if jz4780 has
> a slightly different clock tree, it's already broken.
>
> Arnd
>
There is on-going work to fix jz4740, add jz4780 and shake the entire clock tree as well.
Patch 14 onwards in this series
http://patchwork.linux-mips.org/bundle/paulburton/ci20-v3.20/
Instead of lumping things out in huge changesets, I intended to push out the minor patches that are disjoint.
That was the purpose of sending these two patches.
Current binding requires the clock-name to be "rtc". Hence the name at the moment.
Regards,
ZubairLK
next prev parent reply other threads:[~2015-01-28 10:27 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-27 15:11 [PATCH 0/2] watchdog: jz4740: Add DT support Zubair Lutfullah Kakakhel
2015-01-27 15:11 ` [PATCH 1/2] dt: watchdog: Add DT binding documentation for jz47xx watchdog timer Zubair Lutfullah Kakakhel
[not found] ` <1422371490-44402-2-git-send-email-Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
2015-01-27 16:30 ` Guenter Roeck
2015-01-27 20:16 ` Arnd Bergmann
2015-01-27 20:52 ` Guenter Roeck
2015-01-27 21:29 ` Arnd Bergmann
2015-01-27 22:19 ` Guenter Roeck
[not found] ` <20150127221909.GA21671-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-01-27 22:36 ` Arnd Bergmann
2015-01-27 22:42 ` Arnd Bergmann
2015-01-28 10:27 ` Zubair Lutfullah Kakakhel [this message]
2015-01-28 11:23 ` Arnd Bergmann
[not found] ` <1422371490-44402-1-git-send-email-Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
2015-01-27 15:11 ` [PATCH 2/2] watchdog: jz4740: Add DT support Zubair Lutfullah Kakakhel
[not found] ` <1422371490-44402-3-git-send-email-Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
2015-01-27 16:31 ` Guenter Roeck
2015-01-27 20:15 ` Arnd Bergmann
2015-01-27 20:54 ` Guenter Roeck
[not found] ` <20150127205430.GB6983-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-01-27 21:23 ` Arnd Bergmann
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=54C8B974.8030703@imgtec.com \
--to=zubair.kakakhel@imgtec.com \
--cc=arnd@arndb.de \
--cc=devicetree@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=paul@crapouillou.net \
--cc=wim@iguana.be \
/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).