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