Path: blob/master/Documentation/devicetree/bindings/cpufreq/cpufreq-qcom-hw.yaml
53495 views
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause1%YAML 1.22---3$id: http://devicetree.org/schemas/cpufreq/cpufreq-qcom-hw.yaml#4$schema: http://devicetree.org/meta-schemas/core.yaml#56title: Qualcomm Technologies, Inc. CPUFREQ78maintainers:9- Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>1011description: |1213CPUFREQ HW is a hardware engine used by some Qualcomm Technologies, Inc. (QTI)14SoCs to manage frequency in hardware. It is capable of controlling frequency15for multiple clusters.1617properties:18compatible:19oneOf:20- description: v1 of CPUFREQ HW21items:22- enum:23- qcom,qcm2290-cpufreq-hw24- qcom,qcs615-cpufreq-hw25- qcom,sc7180-cpufreq-hw26- qcom,sc8180x-cpufreq-hw27- qcom,sdm670-cpufreq-hw28- qcom,sdm845-cpufreq-hw29- qcom,sm6115-cpufreq-hw30- qcom,sm6350-cpufreq-hw31- qcom,sm8150-cpufreq-hw32- const: qcom,cpufreq-hw3334- description: v2 of CPUFREQ HW (EPSS)35items:36- enum:37- qcom,milos-cpufreq-epss38- qcom,qcs8300-cpufreq-epss39- qcom,qdu1000-cpufreq-epss40- qcom,sa8255p-cpufreq-epss41- qcom,sa8775p-cpufreq-epss42- qcom,sar2130p-cpufreq-epss43- qcom,sc7280-cpufreq-epss44- qcom,sc8280xp-cpufreq-epss45- qcom,sdx75-cpufreq-epss46- qcom,sm4450-cpufreq-epss47- qcom,sm6375-cpufreq-epss48- qcom,sm8250-cpufreq-epss49- qcom,sm8350-cpufreq-epss50- qcom,sm8450-cpufreq-epss51- qcom,sm8550-cpufreq-epss52- qcom,sm8650-cpufreq-epss53- const: qcom,cpufreq-epss5455reg:56minItems: 157items:58- description: Frequency domain 0 register region59- description: Frequency domain 1 register region60- description: Frequency domain 2 register region61- description: Frequency domain 3 register region6263reg-names:64minItems: 165items:66- const: freq-domain067- const: freq-domain168- const: freq-domain269- const: freq-domain37071clocks:72items:73- description: XO Clock74- description: GPLL0 Clock7576clock-names:77items:78- const: xo79- const: alternate8081interrupts:82minItems: 183maxItems: 48485interrupt-names:86minItems: 187items:88- const: dcvsh-irq-089- const: dcvsh-irq-190- const: dcvsh-irq-291- const: dcvsh-irq-39293'#freq-domain-cells':94const: 19596'#clock-cells':97const: 19899required:100- compatible101- reg102- clocks103- clock-names104- '#freq-domain-cells'105106additionalProperties: false107108allOf:109- if:110properties:111compatible:112contains:113enum:114- qcom,qcm2290-cpufreq-hw115- qcom,sar2130p-cpufreq-epss116- qcom,sdx75-cpufreq-epss117then:118properties:119reg:120maxItems: 1121122reg-names:123maxItems: 1124125interrupts:126maxItems: 1127128interrupt-names:129maxItems: 1130131- if:132properties:133compatible:134contains:135enum:136- qcom,qcs615-cpufreq-hw137- qcom,qdu1000-cpufreq-epss138- qcom,sa8255p-cpufreq-epss139- qcom,sa8775p-cpufreq-epss140- qcom,sc7180-cpufreq-hw141- qcom,sc8180x-cpufreq-hw142- qcom,sc8280xp-cpufreq-epss143- qcom,sdm670-cpufreq-hw144- qcom,sdm845-cpufreq-hw145- qcom,sm4450-cpufreq-epss146- qcom,sm6115-cpufreq-hw147- qcom,sm6350-cpufreq-hw148- qcom,sm6375-cpufreq-epss149then:150properties:151reg:152minItems: 2153maxItems: 2154155reg-names:156minItems: 2157maxItems: 2158159interrupts:160minItems: 2161maxItems: 2162163interrupt-names:164minItems: 2165maxItems: 2166167- if:168properties:169compatible:170contains:171enum:172- qcom,milos-cpufreq-epss173- qcom,qcs8300-cpufreq-epss174- qcom,sc7280-cpufreq-epss175- qcom,sm8250-cpufreq-epss176- qcom,sm8350-cpufreq-epss177- qcom,sm8450-cpufreq-epss178- qcom,sm8550-cpufreq-epss179then:180properties:181reg:182minItems: 3183maxItems: 3184185reg-names:186minItems: 3187maxItems: 3188189interrupts:190minItems: 3191maxItems: 3192193interrupt-names:194minItems: 3195maxItems: 3196197- if:198properties:199compatible:200contains:201enum:202- qcom,sm8150-cpufreq-hw203then:204properties:205reg:206minItems: 3207maxItems: 3208209reg-names:210minItems: 3211maxItems: 3212213# On some SoCs the Prime core shares the LMH irq with Big cores214interrupts:215minItems: 2216maxItems: 2217218interrupt-names:219minItems: 2220maxItems: 2221222- if:223properties:224compatible:225contains:226enum:227- qcom,sm8650-cpufreq-epss228then:229properties:230reg:231minItems: 4232maxItems: 4233234reg-names:235minItems: 4236maxItems: 4237238interrupts:239minItems: 4240maxItems: 4241242interrupt-names:243minItems: 4244maxItems: 4245246examples:247- |248#include <dt-bindings/clock/qcom,gcc-sdm845.h>249#include <dt-bindings/clock/qcom,rpmh.h>250251// Example 1: Dual-cluster, Quad-core per cluster. CPUs within a cluster252// switch DCVS state together.253cpus {254#address-cells = <2>;255#size-cells = <0>;256257CPU0: cpu@0 {258device_type = "cpu";259compatible = "qcom,kryo385";260reg = <0x0 0x0>;261enable-method = "psci";262next-level-cache = <&L2_0>;263qcom,freq-domain = <&cpufreq_hw 0>;264clocks = <&cpufreq_hw 0>;265L2_0: l2-cache {266compatible = "cache";267cache-unified;268cache-level = <2>;269next-level-cache = <&L3_0>;270L3_0: l3-cache {271compatible = "cache";272cache-unified;273cache-level = <3>;274};275};276};277278CPU1: cpu@100 {279device_type = "cpu";280compatible = "qcom,kryo385";281reg = <0x0 0x100>;282enable-method = "psci";283next-level-cache = <&L2_100>;284qcom,freq-domain = <&cpufreq_hw 0>;285clocks = <&cpufreq_hw 0>;286L2_100: l2-cache {287compatible = "cache";288cache-unified;289cache-level = <2>;290next-level-cache = <&L3_0>;291};292};293294CPU2: cpu@200 {295device_type = "cpu";296compatible = "qcom,kryo385";297reg = <0x0 0x200>;298enable-method = "psci";299next-level-cache = <&L2_200>;300qcom,freq-domain = <&cpufreq_hw 0>;301clocks = <&cpufreq_hw 0>;302L2_200: l2-cache {303compatible = "cache";304cache-unified;305cache-level = <2>;306next-level-cache = <&L3_0>;307};308};309310CPU3: cpu@300 {311device_type = "cpu";312compatible = "qcom,kryo385";313reg = <0x0 0x300>;314enable-method = "psci";315next-level-cache = <&L2_300>;316qcom,freq-domain = <&cpufreq_hw 0>;317clocks = <&cpufreq_hw 0>;318L2_300: l2-cache {319compatible = "cache";320cache-unified;321cache-level = <2>;322next-level-cache = <&L3_0>;323};324};325326CPU4: cpu@400 {327device_type = "cpu";328compatible = "qcom,kryo385";329reg = <0x0 0x400>;330enable-method = "psci";331next-level-cache = <&L2_400>;332qcom,freq-domain = <&cpufreq_hw 1>;333clocks = <&cpufreq_hw 1>;334L2_400: l2-cache {335compatible = "cache";336cache-unified;337cache-level = <2>;338next-level-cache = <&L3_0>;339};340};341342CPU5: cpu@500 {343device_type = "cpu";344compatible = "qcom,kryo385";345reg = <0x0 0x500>;346enable-method = "psci";347next-level-cache = <&L2_500>;348qcom,freq-domain = <&cpufreq_hw 1>;349clocks = <&cpufreq_hw 1>;350L2_500: l2-cache {351compatible = "cache";352cache-unified;353cache-level = <2>;354next-level-cache = <&L3_0>;355};356};357358CPU6: cpu@600 {359device_type = "cpu";360compatible = "qcom,kryo385";361reg = <0x0 0x600>;362enable-method = "psci";363next-level-cache = <&L2_600>;364qcom,freq-domain = <&cpufreq_hw 1>;365clocks = <&cpufreq_hw 1>;366L2_600: l2-cache {367compatible = "cache";368cache-unified;369cache-level = <2>;370next-level-cache = <&L3_0>;371};372};373374CPU7: cpu@700 {375device_type = "cpu";376compatible = "qcom,kryo385";377reg = <0x0 0x700>;378enable-method = "psci";379next-level-cache = <&L2_700>;380qcom,freq-domain = <&cpufreq_hw 1>;381clocks = <&cpufreq_hw 1>;382L2_700: l2-cache {383compatible = "cache";384cache-unified;385cache-level = <2>;386next-level-cache = <&L3_0>;387};388};389};390391soc {392#address-cells = <1>;393#size-cells = <1>;394395cpufreq@17d43000 {396compatible = "qcom,sdm845-cpufreq-hw", "qcom,cpufreq-hw";397reg = <0x17d43000 0x1400>, <0x17d45800 0x1400>;398reg-names = "freq-domain0", "freq-domain1";399400clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GPLL0>;401clock-names = "xo", "alternate";402403#freq-domain-cells = <1>;404#clock-cells = <1>;405};406};407...408409410