blob: f3859157a26fbdc760da4d3c7f0e1deb31001e68 [file] [log] [blame]
MSM Core Energy Aware driver
The Energy Aware driver provides per core power and temperature
information to the scheduler for it to make more power efficient
scheduling decision.
The required properties for the Energy-aware driver are:
- compatible: "qcom,apss-core-ea"
- reg: Physical address mapped to this device
Required nodes:
- ea@X: Parent node that has the sensor mapping for each cpu.
This node's phandle is provided within cpu node
to invoke/probe energy-aware only for available cpus.
There should be one such node present for each cpu.
Optional properties:
- qcom,low-hyst-temp: Degrees C below which the power numbers
need to be recomputed for the cores and reset
the threshold. If this is not present, the default
value is 10C.
- qcom,high-hyst-temp: Degrees C above which the power numbers
need to be recomputed for the cores and reset
the threshold. If this property is not present,
the default value is 5C.
- qcom,polling-interval: Interval for which the power numbers
need to be recomputed for the cores if there
is no change in threshold. If this property is not
present, the power is recalculated only on
temperature threshold notifications.
-qcom,throttling-temp: Temperature threshold for cpu frequency mitigation.
The value should be set same as the threshold temperature
in thermal module - 5 C, such that there is a bandwidth to
control the cores before frequency mitigation happens.
[Second level nodes]
Require properties to define per core characteristics:
- sensor: Sensor phandle to map a particular sensor to the core.
If this property is not present, then the core is assumed
to be at 40C for all the power estimations. No sensor
threshold is set. This phandle's compatible property is
"qcom,sensor-information". This driver relies on the
sensor-type and scaling-factor information provided in this
phandle.
Example
qcom,msm-core@0xfc4b0000 {
compatible = "qcom,apss-core-ea";
reg = <0xfc4b0000 0x1000>;
qcom,low-hyst-temp = <10>;
qcom,high-hyst-temp = <5>;
qcom,polling-interval = <50>;
ea0: ea0 {
sensor = <&sensor_information0>;
};
ea1: ea1 {
sensor = <&sensor_information1>;
};
};
CPU0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <0x0>;
qcom,ea = <&ea0>;
};