Re: [RFC] cpufreq: Add "dvfs-method" binding to probe cpufreq drivers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 






On 26/11/14 17:00, Sudeep Holla wrote:
Hi Viresh,


[...]

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
+

You should manage this with compatible rather than a new property as
it's not a real hardware property. IMHO Rob's suggestion[1] should work
fine.

IIUC, you can have the driver which create this platform device if DT
has generic compatible unconditionally(e.g "cpufreq-dt" as you have
chosen above). For all existing DT you can create a blacklist of
compatibles to match(as it doesn't have the generic compatible) covering
all the existing platforms using cpufreq-dt driver, there by you can
even remove the platform device creating from multiple places.
IMO something like the patch below should work(not tested, also
late_initcall is used just to demonstrate the idea)

Rob, please correct me if my understanding is wrong.

Regards,
Sudeep

[1]
http://lists.infradead.org/pipermail/linux-arm-kernel/2014-May/256191.html

--->8

diff --git a/drivers/cpufreq/cpufreq-dt.c b/drivers/cpufreq/cpufreq-dt.c
index f657c571b18e..19a616e298e0 100644
--- a/drivers/cpufreq/cpufreq-dt.c
+++ b/drivers/cpufreq/cpufreq-dt.c
@@ -387,6 +387,32 @@ static struct platform_driver dt_cpufreq_platdrv = {
   };
   module_platform_driver(dt_cpufreq_platdrv);

+static const struct of_device_id compatible_machine_match[] = {
+       /* All new machines must have the below compatible to use this
driver */
+       { .compatible = "cpufreq-generic-dt" },
+       /* BLACKLIST of existing users of cpufreq-dt below */
+       { .compatible = "samsung,exynos5420" },
+       { .compatible = "samsung,exynos5800" },

Please ignore the above 2 compatible values in this context, I just
chose randomly 2 values but I now realize that there are big-little
platforms and might not use this driver :(

Regards,
Sudeep

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux