linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC] cpufreq: Add "dvfs-method" binding to probe cpufreq drivers
@ 2014-11-26  8:46 Viresh Kumar
  2014-11-26  8:49 ` Viresh Kumar
  2014-11-26 17:00 ` Sudeep Holla
  0 siblings, 2 replies; 14+ messages in thread
From: Viresh Kumar @ 2014-11-26  8:46 UTC (permalink / raw)
  To: Rafael Wysocki
  Cc: linaro-kernel, linux-pm, Nishanth Menon, Sudeep Holla,
	Stephen Boyd, devicetree, Santosh Shilimkar, Lorenzo Pieralisi,
	Arnd Bergmann, Mike Turquette, Rob Herring, Grant Likely,
	kesavan.abhilash, catalin.marinas, k.chander, olof, ta.omasab,
	Viresh Kumar

DT based cpufreq drivers doesn't require much support from platform code now a
days as most of the stuff is moved behind generic APIs. Like clk APIs for
changing clock rates, regulator APIs for changing voltages, etc.

One of the bottleneck still left was how to select which cpufreq driver to probe
for a given platform as there might be multiple drivers available.

Traditionally, we used to create platform devices from machine specific code
which binds with a cpufreq driver. And while we moved towards DT based device
creation, these devices stayed as is.

The problem is getting worse now as we have architectures now with Zero platform
specific code. Forcefully these platforms have to create a new file in
drivers/cpufreq/ to just add these platform devices in order to use the generic
drivers like cpufreq-dt.c.

This has been discussed again and again, but with no solution yet. Last it was
discussed here:

http://lists.infradead.org/pipermail/linux-arm-kernel/2014-May/256154.html

This patch is an attempt towards getting the bindings.

We only need to have one entry in cpus@cpu0 node which will match with drivers
name.

We can then add another file drivers/cpufreq/device_dt.c, which will add a
platform device with the name it finds from cpus@cpu0 node and existing drivers
will work without any change. Or something else if somebody have a better
proposal. But lets fix the bindings first.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
 .../devicetree/bindings/cpufreq/drivers.txt        | 53 ++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/cpufreq/drivers.txt

diff --git a/Documentation/devicetree/bindings/cpufreq/drivers.txt b/Documentation/devicetree/bindings/cpufreq/drivers.txt
new file mode 100644
index 0000000..bd14917
--- /dev/null
+++ b/Documentation/devicetree/bindings/cpufreq/drivers.txt
@@ -0,0 +1,53 @@
+Binding to select which cpufreq driver to register
+
+It is a generic DT binding for selecting which cpufreq-driver to register for
+any platform.
+
+The property  listed below must be defined under node /cpus/cpu@0 node. We don't
+support multiple CPUFreq driver currently for different cluster and so this
+information isn't required to be present in CPUs of all clusters.
+
+Required properties:
+- None
+
+Optional properties:
+- dvfs-method: CPUFreq driver to probe. For example: "arm-bL-cpufreq-dt",
+  "cpufreq-dt", etc
+
+Examples:
+
+cpus {
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	cpu@0 {
+		compatible = "arm,cortex-a9";
+		reg = <0>;
+		next-level-cache = <&L2>;
+		operating-points = <
+			/* kHz    uV */
+			792000  1100000
+			396000  950000
+			198000  850000
+		>;
+		dvfs-method = "cpufreq-dt";
+	};
+
+	cpu@1 {
+		compatible = "arm,cortex-a9";
+		reg = <1>;
+		next-level-cache = <&L2>;
+	};
+
+	cpu@2 {
+		compatible = "arm,cortex-a9";
+		reg = <2>;
+		next-level-cache = <&L2>;
+	};
+
+	cpu@3 {
+		compatible = "arm,cortex-a9";
+		reg = <3>;
+		next-level-cache = <&L2>;
+	};
+};
-- 
2.0.3.693.g996b0fd


^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2014-12-01  8:06 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-26  8:46 [RFC] cpufreq: Add "dvfs-method" binding to probe cpufreq drivers Viresh Kumar
2014-11-26  8:49 ` Viresh Kumar
2014-11-26 16:34   ` santosh shilimkar
2014-11-27  5:14     ` Viresh Kumar
2014-11-30 20:04       ` santosh.shilimkar
2014-11-26 17:00 ` Sudeep Holla
2014-11-26 17:04   ` Sudeep Holla
2014-11-27  5:29   ` Viresh Kumar
2014-11-27  9:54     ` Sudeep Holla
2014-11-27 10:22       ` Viresh Kumar
2014-11-27 11:15         ` Sudeep Holla
2014-11-28  6:31           ` Viresh Kumar
2014-11-28 11:51             ` Sudeep Holla
2014-12-01  8:06               ` Viresh Kumar

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).