dt-bindings: add binding document for Rockchip cpu avs
[firefly-linux-kernel-4.4.55.git] / Documentation / devicetree / bindings / power / rockchip-cpu-avs.txt
1 Rockchip cpu avs device tree bindings
2 -------------------------------------
3
4 Under the same frequency, the operating voltage tends to decrease with
5 increasing leakage. so it is necessary to adjust opp's voltage according
6 to leakage for power.
7
8
9 Required properties:
10 - cluster-id: At runtime, the platform can find a cpu's cluster_id
11   according to it's cpu_id and match cluster-id property.
12 - min-volt: The minimum voltage in uV. Even though opp's voltage will be
13   adjusted, it must be bigger than or equal to the minimum.
14 - min-freq: The minimum frequency in KHz. If an opp's frequency is bigger
15   than or equal to the minimum, its volatge will be adjusted.
16 - leakage-adjust-volt: The property is an array of 3-tuples items, and
17   each item consists of leakage and voltage like
18   <min-leakage-mA max-leakage-mA volt-uV>.
19         min-leakage: minimum leakage in mA, ranges from 0 to 254.
20         max-leakage: maximum leakage in mA, ranges from 0 to 254.
21         volt: voltage offset in uV to apply to the opp table entries.
22 - nvmem-cells: A phandle to the leakage data provided by efuse.
23 - nvmem-cell-names: Should be "cpu_leakage".
24
25 Example:
26
27         cpu_avs: cpu-avs {
28                 cluster0-avs {
29                         cluster-id = <0>;
30                         min-volt = <800000>; /* uV */
31                         min-freq = <408000>; /* KHz */
32                         leakage-adjust-volt = <
33                         /*  mA        mA         uV */
34                             0         254        0
35                         >;
36                         nvmem-cells = <&cpul_leakage>;
37                         nvmem-cell-names = "cpu_leakage";
38                 };
39                 cluster1-avs {
40                         cluster-id = <1>;
41                         min-volt = <800000>; /* uV */
42                         min-freq = <408000>; /* KHz */
43                         leakage-adjust-volt = <
44                         /*  mA        mA         uV */
45                             0         254        0
46                         >;
47                         nvmem-cells = <&cpub_leakage>;
48                         nvmem-cell-names = "cpu_leakage";
49                 };
50         };