From: khilman@ti.com (Kevin Hilman)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V6 4/7] cpufreq: add clk-reg cpufreq driver
Date: Thu, 12 Jan 2012 14:52:20 -0800 [thread overview]
Message-ID: <874nw0sfdn.fsf@ti.com> (raw)
In-Reply-To: <20120112082300.GF2414@b20223-02.ap.freescale.net> (Richard Zhao's message of "Thu, 12 Jan 2012 16:23:01 +0800")
Richard Zhao <richard.zhao@freescale.com> writes:
> On Wed, Jan 11, 2012 at 03:22:34PM -0800, Kevin Hilman wrote:
>> Richard Zhao <richard.zhao@linaro.org> writes:
>>
>> > The driver get cpu operation point table from device tree cpu0 node,
>>
>> Since we already have an existing OPP infrastructure in the kernel,
>> seems like this driver should get OPPs by asking the OPP layer.
>
> When I created the patch, there's only omap cpufreq driver using
> OPP. If it depends on OPP, it might prevent users who have not
> adopted OPP from using the driver.
Then they should probably adopt to OPP, since it was created exactly for
this purpose. What this patch creates is an alternate way of adding
OPPs using the device tree.
The point is using a static list of OPPs from boot time simply doesn't
work. You need the ability to dynamically add/remove OPPs at runtime to
adjust for various operating conditons (or HW bugs) as well as for
thermal considerations. The OPP layer provides this.
A generic driver should get available OPPs using the OPP layer.
The DT can certainly be used at boot time to create the initial list of
OPPs, but as the list of available OPPs changes at runtime, the only way
to track that is to use the OPP layer.
>> This approach assumes the OPP layer is static at boot time and not
>> changing, however that's not the case in practice.
>>
>> The OPP layer could be extended to read boot-time OPPs from DT if
>> desired, but since the OPPs are also populated/enabled/disabled
>> dynamicaly on some platforms (e.g. OMAP), I think the any generic
>> CPUfreq driver should use the OPP interface and not DT directly.
>>
>> > and adjusts operating points using clk and regulator APIs.
>>
>> For a generic driver, the regulator used should also be configurable.
>>
>> For example, this driver currently assumes a regulator named "cpu" for
>> all instances. If you had separate clusters with independent voltage
>> control, you'd likely have a separate regulator for each cluster.
> The driver, for now, assumes all cpu cores uses the same clk and voltage.
> It's correct for most arm multi-core SoC.
Sure, but a "generic" driver such as the one proposed is not just for
ARM, and not just for today's SoCs.
flexible enough
> Do you have real case to need different voltage/clk?
Sure, any system with independently scalable CPUs/clusters.
Kevin
next prev parent reply other threads:[~2012-01-12 22:52 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-30 2:56 [PATCH V6 0/7] add a generic cpufreq driver Richard Zhao
2011-12-30 2:56 ` [PATCH V6 1/7] ARM: add cpufreq transiton notifier to adjust loops_per_jiffy for smp Richard Zhao
2011-12-30 2:56 ` [PATCH V6 2/7] arm/imx: cpufreq: remove loops_per_jiffy recalculate " Richard Zhao
2012-01-06 0:56 ` Richard Zhao
2012-01-06 13:19 ` Shawn Guo
2011-12-30 2:56 ` [PATCH V6 3/7] cpufreq: OMAP: " Richard Zhao
2012-01-06 1:02 ` Richard Zhao
2011-12-30 2:56 ` [PATCH V6 4/7] cpufreq: add clk-reg cpufreq driver Richard Zhao
2012-01-11 23:22 ` Kevin Hilman
2012-01-12 8:23 ` Richard Zhao
2012-01-12 22:52 ` Kevin Hilman [this message]
2012-01-13 17:16 ` Cousson, Benoit
2011-12-30 2:56 ` [PATCH V6 5/7] dts/imx6q: add cpufreq property Richard Zhao
2011-12-30 2:56 ` [PATCH V6 6/7] arm/imx6q: register arm_clk as cpu to clkdev Richard Zhao
2011-12-30 2:56 ` [PATCH V6 7/7] arm/imx6q: select ARCH_HAS_CPUFREQ Richard Zhao
2012-01-04 22:16 ` [PATCH V6 0/7] add a generic cpufreq driver Richard Zhao
2012-01-06 0:53 ` Richard Zhao
2012-01-09 14:52 ` Richard Zhao
2012-02-03 16:28 ` Russell King - ARM Linux
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=874nw0sfdn.fsf@ti.com \
--to=khilman@ti.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 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).