~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/cpufreq/qcom-cpufreq-nvmem.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Qualcomm Technologies, Inc. NVMEM CPUFreq
  8 
  9 maintainers:
 10   - Ilia Lin <ilia.lin@kernel.org>
 11 
 12 description: |
 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.
 19 
 20   For old implementation efuses are parsed to select the correct opp table and
 21   voltage and CPR is not supported/used.
 22 
 23 select:
 24   properties:
 25     compatible:
 26       contains:
 27         enum:
 28           - qcom,apq8064
 29           - qcom,apq8096
 30           - qcom,ipq5332
 31           - qcom,ipq6018
 32           - qcom,ipq8064
 33           - qcom,ipq8074
 34           - qcom,ipq9574
 35           - qcom,msm8909
 36           - qcom,msm8939
 37           - qcom,msm8960
 38           - qcom,msm8974
 39           - qcom,msm8996
 40           - qcom,qcs404
 41   required:
 42     - compatible
 43 
 44 patternProperties:
 45   '^opp-table(-[a-z0-9]+)?$':
 46     allOf:
 47       - if:
 48           properties:
 49             compatible:
 50               enum:
 51                 - operating-points-v2-krait-cpu
 52                 - operating-points-v2-kryo-cpu
 53         then:
 54           $ref: /schemas/opp/opp-v2-kryo-cpu.yaml#
 55 
 56       - if:
 57           properties:
 58             compatible:
 59               const: operating-points-v2-qcom-level
 60         then:
 61           $ref: /schemas/opp/opp-v2-qcom-level.yaml#
 62 
 63     unevaluatedProperties: false
 64 
 65 allOf:
 66   - if:
 67       properties:
 68         compatible:
 69           contains:
 70             enum:
 71               - qcom,qcs404
 72 
 73     then:
 74       properties:
 75         cpus:
 76           type: object
 77 
 78           patternProperties:
 79             '^cpu@[0-9a-f]+$':
 80               type: object
 81 
 82               properties:
 83                 power-domains:
 84                   maxItems: 1
 85 
 86                 power-domain-names:
 87                   items:
 88                     - const: cpr
 89 
 90               required:
 91                 - power-domains
 92                 - power-domain-names
 93 
 94       patternProperties:
 95         '^opp-table(-[a-z0-9]+)?$':
 96           if:
 97             properties:
 98               compatible:
 99                 const: operating-points-v2-kryo-cpu
100           then:
101             patternProperties:
102               '^opp-?[0-9]+$':
103                 required:
104                   - required-opps
105 
106 additionalProperties: true
107 
108 examples:
109   - |
110     / {
111         model = "Qualcomm Technologies, Inc. QCS404 EVB 1000";
112         compatible = "qcom,qcs404-evb-1000", "qcom,qcs404-evb", "qcom,qcs404";
113         #address-cells = <2>;
114         #size-cells = <2>;
115 
116         cpus {
117             #address-cells = <1>;
118             #size-cells = <0>;
119 
120             CPU0: cpu@100 {
121                 device_type = "cpu";
122                 compatible = "arm,cortex-a53";
123                 reg = <0x100>;
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";
132             };
133 
134             CPU1: cpu@101 {
135                 device_type = "cpu";
136                 compatible = "arm,cortex-a53";
137                 reg = <0x101>;
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";
146             };
147 
148             CPU2: cpu@102 {
149                 device_type = "cpu";
150                 compatible = "arm,cortex-a53";
151                 reg = <0x102>;
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";
160             };
161 
162             CPU3: cpu@103 {
163                 device_type = "cpu";
164                 compatible = "arm,cortex-a53";
165                 reg = <0x103>;
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";
174             };
175         };
176 
177         cpu_opp_table: opp-table-cpu {
178             compatible = "operating-points-v2-kryo-cpu";
179             opp-shared;
180 
181             opp-1094400000 {
182                 opp-hz = /bits/ 64 <1094400000>;
183                 required-opps = <&cpr_opp1>;
184             };
185             opp-1248000000 {
186                 opp-hz = /bits/ 64 <1248000000>;
187                 required-opps = <&cpr_opp2>;
188             };
189             opp-1401600000 {
190                 opp-hz = /bits/ 64 <1401600000>;
191                 required-opps = <&cpr_opp3>;
192             };
193         };
194 
195         cpr_opp_table: opp-table-cpr {
196             compatible = "operating-points-v2-qcom-level";
197 
198             cpr_opp1: opp1 {
199                 opp-level = <1>;
200                 qcom,opp-fuse-level = <1>;
201             };
202             cpr_opp2: opp2 {
203                 opp-level = <2>;
204                 qcom,opp-fuse-level = <2>;
205             };
206             cpr_opp3: opp3 {
207                 opp-level = <3>;
208                 qcom,opp-fuse-level = <3>;
209             };
210         };
211     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php