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 bindings
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.
57 '^opp-table(-[a-z0-9]+)?$':
61 const: operating-points-v2-kryo-cpu
68 additionalProperties: true
73 model = "Qualcomm Technologies, Inc. QCS404 EVB 1000";
74 compatible = "qcom,qcs404-evb-1000", "qcom,qcs404-evb", "qcom,qcs404";
84 compatible = "arm,cortex-a53";
86 enable-method = "psci";
87 cpu-idle-states = <&CPU_SLEEP_0>;
88 next-level-cache = <&L2_0>;
91 operating-points-v2 = <&cpu_opp_table>;
92 power-domains = <&cpr>;
93 power-domain-names = "cpr";
98 compatible = "arm,cortex-a53";
100 enable-method = "psci";
101 cpu-idle-states = <&CPU_SLEEP_0>;
102 next-level-cache = <&L2_0>;
103 #cooling-cells = <2>;
104 clocks = <&apcs_glb>;
105 operating-points-v2 = <&cpu_opp_table>;
106 power-domains = <&cpr>;
107 power-domain-names = "cpr";
112 compatible = "arm,cortex-a53";
114 enable-method = "psci";
115 cpu-idle-states = <&CPU_SLEEP_0>;
116 next-level-cache = <&L2_0>;
117 #cooling-cells = <2>;
118 clocks = <&apcs_glb>;
119 operating-points-v2 = <&cpu_opp_table>;
120 power-domains = <&cpr>;
121 power-domain-names = "cpr";
126 compatible = "arm,cortex-a53";
128 enable-method = "psci";
129 cpu-idle-states = <&CPU_SLEEP_0>;
130 next-level-cache = <&L2_0>;
131 #cooling-cells = <2>;
132 clocks = <&apcs_glb>;
133 operating-points-v2 = <&cpu_opp_table>;
134 power-domains = <&cpr>;
135 power-domain-names = "cpr";
139 cpu_opp_table: opp-table-cpu {
140 compatible = "operating-points-v2-kryo-cpu";
144 opp-hz = /bits/ 64 <1094400000>;
145 required-opps = <&cpr_opp1>;
148 opp-hz = /bits/ 64 <1248000000>;
149 required-opps = <&cpr_opp2>;
152 opp-hz = /bits/ 64 <1401600000>;
153 required-opps = <&cpr_opp3>;
157 cpr_opp_table: opp-table-cpr {
158 compatible = "operating-points-v2-qcom-level";
162 qcom,opp-fuse-level = <1>;
166 qcom,opp-fuse-level = <2>;
170 qcom,opp-fuse-level = <3>;