Path: blob/master/Documentation/devicetree/bindings/cpufreq/cpufreq-qcom-hw.yaml
29281 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,qcs8300-cpufreq-epss38- qcom,qdu1000-cpufreq-epss39- qcom,sa8255p-cpufreq-epss40- qcom,sa8775p-cpufreq-epss41- qcom,sar2130p-cpufreq-epss42- qcom,sc7280-cpufreq-epss43- qcom,sc8280xp-cpufreq-epss44- qcom,sdx75-cpufreq-epss45- qcom,sm4450-cpufreq-epss46- qcom,sm6375-cpufreq-epss47- qcom,sm8250-cpufreq-epss48- qcom,sm8350-cpufreq-epss49- qcom,sm8450-cpufreq-epss50- qcom,sm8550-cpufreq-epss51- qcom,sm8650-cpufreq-epss52- const: qcom,cpufreq-epss5354reg:55minItems: 156items:57- description: Frequency domain 0 register region58- description: Frequency domain 1 register region59- description: Frequency domain 2 register region60- description: Frequency domain 3 register region6162reg-names:63minItems: 164items:65- const: freq-domain066- const: freq-domain167- const: freq-domain268- const: freq-domain36970clocks:71items:72- description: XO Clock73- description: GPLL0 Clock7475clock-names:76items:77- const: xo78- const: alternate7980interrupts:81minItems: 182maxItems: 48384interrupt-names:85minItems: 186items:87- const: dcvsh-irq-088- const: dcvsh-irq-189- const: dcvsh-irq-290- const: dcvsh-irq-39192'#freq-domain-cells':93const: 19495'#clock-cells':96const: 19798required:99- compatible100- reg101- clocks102- clock-names103- '#freq-domain-cells'104105additionalProperties: false106107allOf:108- if:109properties:110compatible:111contains:112enum:113- qcom,qcm2290-cpufreq-hw114- qcom,sar2130p-cpufreq-epss115- qcom,sdx75-cpufreq-epss116then:117properties:118reg:119maxItems: 1120121reg-names:122maxItems: 1123124interrupts:125maxItems: 1126127interrupt-names:128maxItems: 1129130- if:131properties:132compatible:133contains:134enum:135- qcom,qcs615-cpufreq-hw136- qcom,qdu1000-cpufreq-epss137- qcom,sa8255p-cpufreq-epss138- qcom,sa8775p-cpufreq-epss139- qcom,sc7180-cpufreq-hw140- qcom,sc8180x-cpufreq-hw141- qcom,sc8280xp-cpufreq-epss142- qcom,sdm670-cpufreq-hw143- qcom,sdm845-cpufreq-hw144- qcom,sm4450-cpufreq-epss145- qcom,sm6115-cpufreq-hw146- qcom,sm6350-cpufreq-hw147- qcom,sm6375-cpufreq-epss148then:149properties:150reg:151minItems: 2152maxItems: 2153154reg-names:155minItems: 2156maxItems: 2157158interrupts:159minItems: 2160maxItems: 2161162interrupt-names:163minItems: 2164maxItems: 2165166- if:167properties:168compatible:169contains:170enum:171- qcom,qcs8300-cpufreq-epss172- qcom,sc7280-cpufreq-epss173- qcom,sm8250-cpufreq-epss174- qcom,sm8350-cpufreq-epss175- qcom,sm8450-cpufreq-epss176- qcom,sm8550-cpufreq-epss177then:178properties:179reg:180minItems: 3181maxItems: 3182183reg-names:184minItems: 3185maxItems: 3186187interrupts:188minItems: 3189maxItems: 3190191interrupt-names:192minItems: 3193maxItems: 3194195- if:196properties:197compatible:198contains:199enum:200- qcom,sm8150-cpufreq-hw201then:202properties:203reg:204minItems: 3205maxItems: 3206207reg-names:208minItems: 3209maxItems: 3210211# On some SoCs the Prime core shares the LMH irq with Big cores212interrupts:213minItems: 2214maxItems: 2215216interrupt-names:217minItems: 2218maxItems: 2219220- if:221properties:222compatible:223contains:224enum:225- qcom,sm8650-cpufreq-epss226then:227properties:228reg:229minItems: 4230maxItems: 4231232reg-names:233minItems: 4234maxItems: 4235236interrupts:237minItems: 4238maxItems: 4239240interrupt-names:241minItems: 4242maxItems: 4243244examples:245- |246#include <dt-bindings/clock/qcom,gcc-sdm845.h>247#include <dt-bindings/clock/qcom,rpmh.h>248249// Example 1: Dual-cluster, Quad-core per cluster. CPUs within a cluster250// switch DCVS state together.251cpus {252#address-cells = <2>;253#size-cells = <0>;254255CPU0: cpu@0 {256device_type = "cpu";257compatible = "qcom,kryo385";258reg = <0x0 0x0>;259enable-method = "psci";260next-level-cache = <&L2_0>;261qcom,freq-domain = <&cpufreq_hw 0>;262clocks = <&cpufreq_hw 0>;263L2_0: l2-cache {264compatible = "cache";265cache-unified;266cache-level = <2>;267next-level-cache = <&L3_0>;268L3_0: l3-cache {269compatible = "cache";270cache-unified;271cache-level = <3>;272};273};274};275276CPU1: cpu@100 {277device_type = "cpu";278compatible = "qcom,kryo385";279reg = <0x0 0x100>;280enable-method = "psci";281next-level-cache = <&L2_100>;282qcom,freq-domain = <&cpufreq_hw 0>;283clocks = <&cpufreq_hw 0>;284L2_100: l2-cache {285compatible = "cache";286cache-unified;287cache-level = <2>;288next-level-cache = <&L3_0>;289};290};291292CPU2: cpu@200 {293device_type = "cpu";294compatible = "qcom,kryo385";295reg = <0x0 0x200>;296enable-method = "psci";297next-level-cache = <&L2_200>;298qcom,freq-domain = <&cpufreq_hw 0>;299clocks = <&cpufreq_hw 0>;300L2_200: l2-cache {301compatible = "cache";302cache-unified;303cache-level = <2>;304next-level-cache = <&L3_0>;305};306};307308CPU3: cpu@300 {309device_type = "cpu";310compatible = "qcom,kryo385";311reg = <0x0 0x300>;312enable-method = "psci";313next-level-cache = <&L2_300>;314qcom,freq-domain = <&cpufreq_hw 0>;315clocks = <&cpufreq_hw 0>;316L2_300: l2-cache {317compatible = "cache";318cache-unified;319cache-level = <2>;320next-level-cache = <&L3_0>;321};322};323324CPU4: cpu@400 {325device_type = "cpu";326compatible = "qcom,kryo385";327reg = <0x0 0x400>;328enable-method = "psci";329next-level-cache = <&L2_400>;330qcom,freq-domain = <&cpufreq_hw 1>;331clocks = <&cpufreq_hw 1>;332L2_400: l2-cache {333compatible = "cache";334cache-unified;335cache-level = <2>;336next-level-cache = <&L3_0>;337};338};339340CPU5: cpu@500 {341device_type = "cpu";342compatible = "qcom,kryo385";343reg = <0x0 0x500>;344enable-method = "psci";345next-level-cache = <&L2_500>;346qcom,freq-domain = <&cpufreq_hw 1>;347clocks = <&cpufreq_hw 1>;348L2_500: l2-cache {349compatible = "cache";350cache-unified;351cache-level = <2>;352next-level-cache = <&L3_0>;353};354};355356CPU6: cpu@600 {357device_type = "cpu";358compatible = "qcom,kryo385";359reg = <0x0 0x600>;360enable-method = "psci";361next-level-cache = <&L2_600>;362qcom,freq-domain = <&cpufreq_hw 1>;363clocks = <&cpufreq_hw 1>;364L2_600: l2-cache {365compatible = "cache";366cache-unified;367cache-level = <2>;368next-level-cache = <&L3_0>;369};370};371372CPU7: cpu@700 {373device_type = "cpu";374compatible = "qcom,kryo385";375reg = <0x0 0x700>;376enable-method = "psci";377next-level-cache = <&L2_700>;378qcom,freq-domain = <&cpufreq_hw 1>;379clocks = <&cpufreq_hw 1>;380L2_700: l2-cache {381compatible = "cache";382cache-unified;383cache-level = <2>;384next-level-cache = <&L3_0>;385};386};387};388389soc {390#address-cells = <1>;391#size-cells = <1>;392393cpufreq@17d43000 {394compatible = "qcom,sdm845-cpufreq-hw", "qcom,cpufreq-hw";395reg = <0x17d43000 0x1400>, <0x17d45800 0x1400>;396reg-names = "freq-domain0", "freq-domain1";397398clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GPLL0>;399clock-names = "xo", "alternate";400401#freq-domain-cells = <1>;402#clock-cells = <1>;403};404};405...406407408