1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/cpufreq/qcom-cpufreq-nvmem.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Qualcomm Technologies, Inc. NVMEM CPUFreq
10 - Ilia Lin <ilia.lin@kernel.org>
13 In certain Qualcomm Technologies, Inc. SoCs such as QCS404, The CPU supply
14 voltage is dynamically configured by Core Power Reduction (CPR) depending on
15 current CPU frequency and efuse values.
16 CPR provides a power domain with multiple levels that are selected depending
17 on the CPU OPP in use. The CPUFreq driver sets the CPR power domain level
18 according to the required OPPs defined in the CPU OPP tables.
20 For old implementation efuses are parsed to select the correct opp table and
21 voltage and CPR is not supported/used.
45 '^opp-table(-[a-z0-9]+)?$':
51 - operating-points-v2-krait-cpu
52 - operating-points-v2-kryo-cpu
54 $ref: /schemas/opp/opp-v2-kryo-cpu.yaml#
59 const: operating-points-v2-qcom-level
61 $ref: /schemas/opp/opp-v2-qcom-level.yaml#
63 unevaluatedProperties: false
95 '^opp-table(-[a-z0-9]+)?$':
99 const: operating-points-v2-kryo-cpu
106 additionalProperties: true
111 model = "Qualcomm Technologies, Inc. QCS404 EVB 1000";
112 compatible = "qcom,qcs404-evb-1000", "qcom,qcs404-evb", "qcom,qcs404";
113 #address-cells = <2>;
117 #address-cells = <1>;
122 compatible = "arm,cortex-a53";
124 enable-method = "psci";
125 cpu-idle-states = <&CPU_SLEEP_0>;
126 next-level-cache = <&L2_0>;
127 #cooling-cells = <2>;
128 clocks = <&apcs_glb>;
129 operating-points-v2 = <&cpu_opp_table>;
130 power-domains = <&cpr>;
131 power-domain-names = "cpr";
136 compatible = "arm,cortex-a53";
138 enable-method = "psci";
139 cpu-idle-states = <&CPU_SLEEP_0>;
140 next-level-cache = <&L2_0>;
141 #cooling-cells = <2>;
142 clocks = <&apcs_glb>;
143 operating-points-v2 = <&cpu_opp_table>;
144 power-domains = <&cpr>;
145 power-domain-names = "cpr";
150 compatible = "arm,cortex-a53";
152 enable-method = "psci";
153 cpu-idle-states = <&CPU_SLEEP_0>;
154 next-level-cache = <&L2_0>;
155 #cooling-cells = <2>;
156 clocks = <&apcs_glb>;
157 operating-points-v2 = <&cpu_opp_table>;
158 power-domains = <&cpr>;
159 power-domain-names = "cpr";
164 compatible = "arm,cortex-a53";
166 enable-method = "psci";
167 cpu-idle-states = <&CPU_SLEEP_0>;
168 next-level-cache = <&L2_0>;
169 #cooling-cells = <2>;
170 clocks = <&apcs_glb>;
171 operating-points-v2 = <&cpu_opp_table>;
172 power-domains = <&cpr>;
173 power-domain-names = "cpr";
177 cpu_opp_table: opp-table-cpu {
178 compatible = "operating-points-v2-kryo-cpu";
182 opp-hz = /bits/ 64 <1094400000>;
183 required-opps = <&cpr_opp1>;
186 opp-hz = /bits/ 64 <1248000000>;
187 required-opps = <&cpr_opp2>;
190 opp-hz = /bits/ 64 <1401600000>;
191 required-opps = <&cpr_opp3>;
195 cpr_opp_table: opp-table-cpr {
196 compatible = "operating-points-v2-qcom-level";
200 qcom,opp-fuse-level = <1>;
204 qcom,opp-fuse-level = <2>;
208 qcom,opp-fuse-level = <3>;