1 QCOM CPR (Core Power Reduction)
3 CPR (Core Power Reduction) is a technology to reduce core power on a CPU
4 or other device. Each OPP of a device corresponds to a "corner" that has
5 a range of valid voltages for a particular frequency. While the device is
6 running at a particular frequency, CPR monitors dynamic factors such as
7 temperature, etc. and suggests adjustments to the voltage to save power
8 and meet silicon characteristic requirements.
13 Definition: should be "qcom,qcs404-cpr", "qcom,cpr" for qcs404
17 Value type: <prop-encoded-array>
18 Definition: base address and size of the rbcpr register region
22 Value type: <prop-encoded-array>
23 Definition: should specify the CPR interrupt
27 Value type: <prop-encoded-array>
28 Definition: phandle to the reference clock
32 Value type: <stringlist>
33 Definition: must be "ref"
38 Definition: phandle to the vdd-apc-supply regulator
40 - #power-domain-cells:
43 Definition: should be 0
45 - operating-points-v2:
48 Definition: A phandle to the OPP table containing the
49 performance states supported by the CPR
55 Definition: phandle to syscon for writing ACC settings
60 Definition: phandle to nvmem cells containing the data
61 that makes up a fuse corner, for each fuse corner.
62 As well as the CPR fuse revision.
66 Value type: <stringlist>
67 Definition: should be "cpr_quotient_offset1", "cpr_quotient_offset2",
68 "cpr_quotient_offset3", "cpr_init_voltage1",
69 "cpr_init_voltage2", "cpr_init_voltage3", "cpr_quotient1",
70 "cpr_quotient2", "cpr_quotient3", "cpr_ring_osc1",
71 "cpr_ring_osc2", "cpr_ring_osc3", "cpr_fuse_revision"
76 cpr_opp_table: cpr-opp-table {
77 compatible = "operating-points-v2-qcom-level";
81 qcom,opp-fuse-level = <1>;
85 qcom,opp-fuse-level = <2>;
89 qcom,opp-fuse-level = <3>;
93 power-controller@b018000 {
94 compatible = "qcom,qcs404-cpr", "qcom,cpr";
95 reg = <0x0b018000 0x1000>;
96 interrupts = <0 15 IRQ_TYPE_EDGE_RISING>;
99 vdd-apc-supply = <&pms405_s3>;
100 #power-domain-cells = <0>;
101 operating-points-v2 = <&cpr_opp_table>;
102 acc-syscon = <&tcsr>;
104 nvmem-cells = <&cpr_efuse_quot_offset1>,
105 <&cpr_efuse_quot_offset2>,
106 <&cpr_efuse_quot_offset3>,
107 <&cpr_efuse_init_voltage1>,
108 <&cpr_efuse_init_voltage2>,
109 <&cpr_efuse_init_voltage3>,
116 <&cpr_efuse_revision>;
117 nvmem-cell-names = "cpr_quotient_offset1",
118 "cpr_quotient_offset2",
119 "cpr_quotient_offset3",