1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
QCOM CPR (Core Power Reduction)
CPR (Core Power Reduction) is a technology to reduce core power on a CPU
or other device. Each OPP of a device corresponds to a "corner" that has
a range of valid voltages for a particular frequency. While the device is
running at a particular frequency, CPR monitors dynamic factors such as
temperature, etc. and suggests adjustments to the voltage to save power
and meet silicon characteristic requirements.
- compatible:
Usage: required
Value type: <string>
Definition: must be "qcom,cpr"
- reg:
Usage: required
Value type: <prop-encoded-array>
Definition: base address and size of the rbcpr register region
- interrupts:
Usage: required
Value type: <prop-encoded-array>
Definition: list of three interrupts in order of irq0, irq1, irq2
- acc-syscon:
Usage: optional
Value type: <phandle>
Definition: phandle to syscon for writing ACC settings
- nvmem:
Usage: required
Value type: <phandle>
Definition: phandle to nvmem provider containing efuse settings
- nvmem-names:
Usage: required
Value type: <string>
Definition: must be "qfprom"
vdd-mx-supply = <&pm8916_l3>;
- qcom,cpr-ref-clk:
Usage: required
Value type: <u32>
Definition: rate of reference clock in kHz
- qcom,cpr-timer-delay-us:
Usage: required
Value type: <u32>
Definition: delay in uS for the timer interval
- qcom,cpr-timer-cons-up:
Usage: required
Value type: <u32>
Definition: Consecutive number of timer intervals, or units of
qcom,cpr-timer-delay-us, that occur before issuing an up
interrupt
- qcom,cpr-timer-cons-down:
Usage: required
Value type: <u32>
Definition: Consecutive number of timer intervals, or units of
qcom,cpr-timer-delay-us, that occur before issuing a down
interrupt
- qcom,cpr-up-threshold:
Usage: optional
Value type: <u32>
Definition: The threshold for CPR to issue interrupt when error_steps
is greater than it when stepping up
- qcom,cpr-down-threshold:
Usage: optional
Value type: <u32>
Definition: The threshold for CPR to issue interrdownt when error_steps
is greater than it when stepping down
- qcom,cpr-down-threshold:
Usage: optional
Value type: <u32>
Definition: Idle clock cycles ring oscillator can be in
- qcom,cpr-gcnt-us:
Usage: required
Value type: <u32>
Definition: The time for gate count in uS
- qcom,vdd-apc-step-up-limit:
Usage: required
Value type: <u32>
Definition: Limit of vdd-apc-supply steps for scaling up
- qcom,vdd-apc-step-down-limit:
Usage: required
Value type: <u32>
Definition: Limit of vdd-apc-supply steps for scaling down
- qcom,cpr-cpus:
Usage: required
Value type: <prop-encoded-array>
Definition: List of CPUs that are being monitored
Example:
avs@b018000 {
compatible = "qcom,cpr";
reg = <0xb018000 0x1000>;
interrupts = <0 15 1>, <0 16 1>, <0 17 1>;
vdd-mx-supply = <&pm8916_l3>;
acc-syscon = <&tcsr>;
nvmem = <&qfprom>;
nvmem-names = "qfprom";
qcom,cpr-ref-clk = <19200>;
qcom,cpr-timer-delay-us = <5000>;
qcom,cpr-timer-cons-up = <0>;
qcom,cpr-timer-cons-down = <2>;
qcom,cpr-up-threshold = <0>;
qcom,cpr-down-threshold = <2>;
qcom,cpr-idle-clocks = <15>;
qcom,cpr-gcnt-us = <1>;
qcom,vdd-apc-step-up-limit = <1>;
qcom,vdd-apc-step-down-limit = <1>;
qcom,cpr-cpus = <&CPU0 &CPU1 &CPU2 &CPU3>;
};
|