aboutsummaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/power/avs/qcom,cpr.txt
blob: 873128c666441dc04d57b1c16271a1ad88a10a26 (plain)
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>;
	};