ARM: dts: Add Integrator/AP cpus node and operating points

This adds the cpus node to the Integrator/AP device tree so
that we have a proper placeholder to put in the DT-defined
operating points for the generic DT/OPP cpufreq driver,
along with the proper operating points.

The old Integrator cpufreq driver would resolve the max
frequency to 71MHz, and the min frequency to 12 MHz, but
the clock driver can actually handle any frequency inbetween
so I picked a few select frequencies as OPPs. The cpufreq
framework doesn't seem to deal with sliding frequency scales,
only fixed points so 7 OPPs is better than 2 atleast.

We define a CPU node since this is required for cpufreq-dt,
however we do not define any compatible string for the CPU
since this architecture has pluggable CPU modules and we
do not know which one will be used. If necessary, the CPU
compatible can be filled in by the boot loader, but for
just cpufreq-dt it is not required.

Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Russell King <linux@armlinux.org.uk>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Linus Walleij 2016-08-04 16:21:57 +02:00 committed by Olof Johansson
parent 426610dd8c
commit 964971c8a3

View File

@ -10,6 +10,41 @@
compatible = "arm,integrator-ap";
dma-ranges = <0x80000000 0x0 0x80000000>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
/*
* Since the board has pluggable CPU modules, we
* cannot define a proper compatible here. Let the
* boot loader fill in the apropriate compatible
* string if necessary.
*/
/* compatible = "arm,arm926ej-s"; */
reg = <0>;
/*
* The documentation in ARM DUI 0138E page 3-12 states
* that the maximum frequency for this clock is 200 MHz
* but painful trial-and-error has proved to me that it
* is actually just hanging the system above 71 MHz.
* Sad but true.
*/
/* kHz uV */
operating-points = <71000 0
66000 0
60000 0
48000 0
36000 0
24000 0
12000 0>;
clocks = <&cmosc>;
clock-names = "cpu";
clock-latency = <1000000>; /* 1 ms */
};
};
aliases {
arm,timer-primary = &timer2;
arm,timer-secondary = &timer1;