Path: blob/master/Documentation/devicetree/bindings/cpufreq/cpufreq-qcom-hw.yaml
26308 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,sc7180-cpufreq-hw25- qcom,sc8180x-cpufreq-hw26- qcom,sdm670-cpufreq-hw27- qcom,sdm845-cpufreq-hw28- qcom,sm6115-cpufreq-hw29- qcom,sm6350-cpufreq-hw30- qcom,sm8150-cpufreq-hw31- const: qcom,cpufreq-hw3233- description: v2 of CPUFREQ HW (EPSS)34items:35- enum:36- qcom,qcs8300-cpufreq-epss37- qcom,qdu1000-cpufreq-epss38- qcom,sa8255p-cpufreq-epss39- qcom,sa8775p-cpufreq-epss40- qcom,sar2130p-cpufreq-epss41- qcom,sc7280-cpufreq-epss42- qcom,sc8280xp-cpufreq-epss43- qcom,sdx75-cpufreq-epss44- qcom,sm4450-cpufreq-epss45- qcom,sm6375-cpufreq-epss46- qcom,sm8250-cpufreq-epss47- qcom,sm8350-cpufreq-epss48- qcom,sm8450-cpufreq-epss49- qcom,sm8550-cpufreq-epss50- qcom,sm8650-cpufreq-epss51- const: qcom,cpufreq-epss5253reg:54minItems: 155items:56- description: Frequency domain 0 register region57- description: Frequency domain 1 register region58- description: Frequency domain 2 register region59- description: Frequency domain 3 register region6061reg-names:62minItems: 163items:64- const: freq-domain065- const: freq-domain166- const: freq-domain267- const: freq-domain36869clocks:70items:71- description: XO Clock72- description: GPLL0 Clock7374clock-names:75items:76- const: xo77- const: alternate7879interrupts:80minItems: 181maxItems: 48283interrupt-names:84minItems: 185items:86- const: dcvsh-irq-087- const: dcvsh-irq-188- const: dcvsh-irq-289- const: dcvsh-irq-39091'#freq-domain-cells':92const: 19394'#clock-cells':95const: 19697required:98- compatible99- reg100- clocks101- clock-names102- '#freq-domain-cells'103104additionalProperties: false105106allOf:107- if:108properties:109compatible:110contains:111enum:112- qcom,qcm2290-cpufreq-hw113- qcom,sar2130p-cpufreq-epss114- qcom,sdx75-cpufreq-epss115then:116properties:117reg:118maxItems: 1119120reg-names:121maxItems: 1122123interrupts:124maxItems: 1125126interrupt-names:127maxItems: 1128129- if:130properties:131compatible:132contains:133enum:134- qcom,qdu1000-cpufreq-epss135- qcom,sa8255p-cpufreq-epss136- qcom,sa8775p-cpufreq-epss137- qcom,sc7180-cpufreq-hw138- qcom,sc8180x-cpufreq-hw139- qcom,sc8280xp-cpufreq-epss140- qcom,sdm670-cpufreq-hw141- qcom,sdm845-cpufreq-hw142- qcom,sm4450-cpufreq-epss143- qcom,sm6115-cpufreq-hw144- qcom,sm6350-cpufreq-hw145- qcom,sm6375-cpufreq-epss146then:147properties:148reg:149minItems: 2150maxItems: 2151152reg-names:153minItems: 2154maxItems: 2155156interrupts:157minItems: 2158maxItems: 2159160interrupt-names:161minItems: 2162maxItems: 2163164- if:165properties:166compatible:167contains:168enum:169- qcom,qcs8300-cpufreq-epss170- qcom,sc7280-cpufreq-epss171- qcom,sm8250-cpufreq-epss172- qcom,sm8350-cpufreq-epss173- qcom,sm8450-cpufreq-epss174- qcom,sm8550-cpufreq-epss175then:176properties:177reg:178minItems: 3179maxItems: 3180181reg-names:182minItems: 3183maxItems: 3184185interrupts:186minItems: 3187maxItems: 3188189interrupt-names:190minItems: 3191maxItems: 3192193- if:194properties:195compatible:196contains:197enum:198- qcom,sm8150-cpufreq-hw199then:200properties:201reg:202minItems: 3203maxItems: 3204205reg-names:206minItems: 3207maxItems: 3208209# On some SoCs the Prime core shares the LMH irq with Big cores210interrupts:211minItems: 2212maxItems: 2213214interrupt-names:215minItems: 2216maxItems: 2217218- if:219properties:220compatible:221contains:222enum:223- qcom,sm8650-cpufreq-epss224then:225properties:226reg:227minItems: 4228maxItems: 4229230reg-names:231minItems: 4232maxItems: 4233234interrupts:235minItems: 4236maxItems: 4237238interrupt-names:239minItems: 4240maxItems: 4241242examples:243- |244#include <dt-bindings/clock/qcom,gcc-sdm845.h>245#include <dt-bindings/clock/qcom,rpmh.h>246247// Example 1: Dual-cluster, Quad-core per cluster. CPUs within a cluster248// switch DCVS state together.249cpus {250#address-cells = <2>;251#size-cells = <0>;252253CPU0: cpu@0 {254device_type = "cpu";255compatible = "qcom,kryo385";256reg = <0x0 0x0>;257enable-method = "psci";258next-level-cache = <&L2_0>;259qcom,freq-domain = <&cpufreq_hw 0>;260clocks = <&cpufreq_hw 0>;261L2_0: l2-cache {262compatible = "cache";263cache-unified;264cache-level = <2>;265next-level-cache = <&L3_0>;266L3_0: l3-cache {267compatible = "cache";268cache-unified;269cache-level = <3>;270};271};272};273274CPU1: cpu@100 {275device_type = "cpu";276compatible = "qcom,kryo385";277reg = <0x0 0x100>;278enable-method = "psci";279next-level-cache = <&L2_100>;280qcom,freq-domain = <&cpufreq_hw 0>;281clocks = <&cpufreq_hw 0>;282L2_100: l2-cache {283compatible = "cache";284cache-unified;285cache-level = <2>;286next-level-cache = <&L3_0>;287};288};289290CPU2: cpu@200 {291device_type = "cpu";292compatible = "qcom,kryo385";293reg = <0x0 0x200>;294enable-method = "psci";295next-level-cache = <&L2_200>;296qcom,freq-domain = <&cpufreq_hw 0>;297clocks = <&cpufreq_hw 0>;298L2_200: l2-cache {299compatible = "cache";300cache-unified;301cache-level = <2>;302next-level-cache = <&L3_0>;303};304};305306CPU3: cpu@300 {307device_type = "cpu";308compatible = "qcom,kryo385";309reg = <0x0 0x300>;310enable-method = "psci";311next-level-cache = <&L2_300>;312qcom,freq-domain = <&cpufreq_hw 0>;313clocks = <&cpufreq_hw 0>;314L2_300: l2-cache {315compatible = "cache";316cache-unified;317cache-level = <2>;318next-level-cache = <&L3_0>;319};320};321322CPU4: cpu@400 {323device_type = "cpu";324compatible = "qcom,kryo385";325reg = <0x0 0x400>;326enable-method = "psci";327next-level-cache = <&L2_400>;328qcom,freq-domain = <&cpufreq_hw 1>;329clocks = <&cpufreq_hw 1>;330L2_400: l2-cache {331compatible = "cache";332cache-unified;333cache-level = <2>;334next-level-cache = <&L3_0>;335};336};337338CPU5: cpu@500 {339device_type = "cpu";340compatible = "qcom,kryo385";341reg = <0x0 0x500>;342enable-method = "psci";343next-level-cache = <&L2_500>;344qcom,freq-domain = <&cpufreq_hw 1>;345clocks = <&cpufreq_hw 1>;346L2_500: l2-cache {347compatible = "cache";348cache-unified;349cache-level = <2>;350next-level-cache = <&L3_0>;351};352};353354CPU6: cpu@600 {355device_type = "cpu";356compatible = "qcom,kryo385";357reg = <0x0 0x600>;358enable-method = "psci";359next-level-cache = <&L2_600>;360qcom,freq-domain = <&cpufreq_hw 1>;361clocks = <&cpufreq_hw 1>;362L2_600: l2-cache {363compatible = "cache";364cache-unified;365cache-level = <2>;366next-level-cache = <&L3_0>;367};368};369370CPU7: cpu@700 {371device_type = "cpu";372compatible = "qcom,kryo385";373reg = <0x0 0x700>;374enable-method = "psci";375next-level-cache = <&L2_700>;376qcom,freq-domain = <&cpufreq_hw 1>;377clocks = <&cpufreq_hw 1>;378L2_700: l2-cache {379compatible = "cache";380cache-unified;381cache-level = <2>;382next-level-cache = <&L3_0>;383};384};385};386387soc {388#address-cells = <1>;389#size-cells = <1>;390391cpufreq@17d43000 {392compatible = "qcom,sdm845-cpufreq-hw", "qcom,cpufreq-hw";393reg = <0x17d43000 0x1400>, <0x17d45800 0x1400>;394reg-names = "freq-domain0", "freq-domain1";395396clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GPLL0>;397clock-names = "xo", "alternate";398399#freq-domain-cells = <1>;400#clock-cells = <1>;401};402};403...404405406