Path: blob/main/sys/contrib/device-tree/Bindings/cpufreq/cpufreq-qcom-hw.yaml
48378 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,sdm670-cpufreq-hw26- qcom,sdm845-cpufreq-hw27- qcom,sm6115-cpufreq-hw28- qcom,sm6350-cpufreq-hw29- qcom,sm8150-cpufreq-hw30- const: qcom,cpufreq-hw3132- description: v2 of CPUFREQ HW (EPSS)33items:34- enum:35- qcom,qdu1000-cpufreq-epss36- qcom,sa8775p-cpufreq-epss37- qcom,sc7280-cpufreq-epss38- qcom,sc8280xp-cpufreq-epss39- qcom,sdx75-cpufreq-epss40- qcom,sm4450-cpufreq-epss41- qcom,sm6375-cpufreq-epss42- qcom,sm8250-cpufreq-epss43- qcom,sm8350-cpufreq-epss44- qcom,sm8450-cpufreq-epss45- qcom,sm8550-cpufreq-epss46- qcom,sm8650-cpufreq-epss47- const: qcom,cpufreq-epss4849reg:50minItems: 151items:52- description: Frequency domain 0 register region53- description: Frequency domain 1 register region54- description: Frequency domain 2 register region55- description: Frequency domain 3 register region5657reg-names:58minItems: 159items:60- const: freq-domain061- const: freq-domain162- const: freq-domain263- const: freq-domain36465clocks:66items:67- description: XO Clock68- description: GPLL0 Clock6970clock-names:71items:72- const: xo73- const: alternate7475interrupts:76minItems: 177maxItems: 47879interrupt-names:80minItems: 181items:82- const: dcvsh-irq-083- const: dcvsh-irq-184- const: dcvsh-irq-285- const: dcvsh-irq-38687'#freq-domain-cells':88const: 18990'#clock-cells':91const: 19293required:94- compatible95- reg96- clocks97- clock-names98- '#freq-domain-cells'99100additionalProperties: false101102allOf:103- if:104properties:105compatible:106contains:107enum:108- qcom,qcm2290-cpufreq-hw109then:110properties:111reg:112minItems: 1113maxItems: 1114115reg-names:116minItems: 1117maxItems: 1118119interrupts:120minItems: 1121maxItems: 1122123interrupt-names:124minItems: 1125126- if:127properties:128compatible:129contains:130enum:131- qcom,qdu1000-cpufreq-epss132- qcom,sc7180-cpufreq-hw133- qcom,sc8280xp-cpufreq-epss134- qcom,sdm670-cpufreq-hw135- qcom,sdm845-cpufreq-hw136- qcom,sm4450-cpufreq-epss137- qcom,sm6115-cpufreq-hw138- qcom,sm6350-cpufreq-hw139- qcom,sm6375-cpufreq-epss140then:141properties:142reg:143minItems: 2144maxItems: 2145146reg-names:147minItems: 2148maxItems: 2149150interrupts:151minItems: 2152maxItems: 2153154interrupt-names:155minItems: 2156157- if:158properties:159compatible:160contains:161enum:162- qcom,sc7280-cpufreq-epss163- qcom,sm8250-cpufreq-epss164- qcom,sm8350-cpufreq-epss165- qcom,sm8450-cpufreq-epss166- qcom,sm8550-cpufreq-epss167then:168properties:169reg:170minItems: 3171maxItems: 3172173reg-names:174minItems: 3175maxItems: 3176177interrupts:178minItems: 3179maxItems: 3180181interrupt-names:182minItems: 3183184- if:185properties:186compatible:187contains:188enum:189- qcom,sm8150-cpufreq-hw190then:191properties:192reg:193minItems: 3194maxItems: 3195196reg-names:197minItems: 3198maxItems: 3199200# On some SoCs the Prime core shares the LMH irq with Big cores201interrupts:202minItems: 2203maxItems: 2204205interrupt-names:206minItems: 2207208209examples:210- |211#include <dt-bindings/clock/qcom,gcc-sdm845.h>212#include <dt-bindings/clock/qcom,rpmh.h>213214// Example 1: Dual-cluster, Quad-core per cluster. CPUs within a cluster215// switch DCVS state together.216cpus {217#address-cells = <2>;218#size-cells = <0>;219220CPU0: cpu@0 {221device_type = "cpu";222compatible = "qcom,kryo385";223reg = <0x0 0x0>;224enable-method = "psci";225next-level-cache = <&L2_0>;226qcom,freq-domain = <&cpufreq_hw 0>;227clocks = <&cpufreq_hw 0>;228L2_0: l2-cache {229compatible = "cache";230cache-unified;231cache-level = <2>;232next-level-cache = <&L3_0>;233L3_0: l3-cache {234compatible = "cache";235cache-unified;236cache-level = <3>;237};238};239};240241CPU1: cpu@100 {242device_type = "cpu";243compatible = "qcom,kryo385";244reg = <0x0 0x100>;245enable-method = "psci";246next-level-cache = <&L2_100>;247qcom,freq-domain = <&cpufreq_hw 0>;248clocks = <&cpufreq_hw 0>;249L2_100: l2-cache {250compatible = "cache";251cache-unified;252cache-level = <2>;253next-level-cache = <&L3_0>;254};255};256257CPU2: cpu@200 {258device_type = "cpu";259compatible = "qcom,kryo385";260reg = <0x0 0x200>;261enable-method = "psci";262next-level-cache = <&L2_200>;263qcom,freq-domain = <&cpufreq_hw 0>;264clocks = <&cpufreq_hw 0>;265L2_200: l2-cache {266compatible = "cache";267cache-unified;268cache-level = <2>;269next-level-cache = <&L3_0>;270};271};272273CPU3: cpu@300 {274device_type = "cpu";275compatible = "qcom,kryo385";276reg = <0x0 0x300>;277enable-method = "psci";278next-level-cache = <&L2_300>;279qcom,freq-domain = <&cpufreq_hw 0>;280clocks = <&cpufreq_hw 0>;281L2_300: l2-cache {282compatible = "cache";283cache-unified;284cache-level = <2>;285next-level-cache = <&L3_0>;286};287};288289CPU4: cpu@400 {290device_type = "cpu";291compatible = "qcom,kryo385";292reg = <0x0 0x400>;293enable-method = "psci";294next-level-cache = <&L2_400>;295qcom,freq-domain = <&cpufreq_hw 1>;296clocks = <&cpufreq_hw 1>;297L2_400: l2-cache {298compatible = "cache";299cache-unified;300cache-level = <2>;301next-level-cache = <&L3_0>;302};303};304305CPU5: cpu@500 {306device_type = "cpu";307compatible = "qcom,kryo385";308reg = <0x0 0x500>;309enable-method = "psci";310next-level-cache = <&L2_500>;311qcom,freq-domain = <&cpufreq_hw 1>;312clocks = <&cpufreq_hw 1>;313L2_500: l2-cache {314compatible = "cache";315cache-unified;316cache-level = <2>;317next-level-cache = <&L3_0>;318};319};320321CPU6: cpu@600 {322device_type = "cpu";323compatible = "qcom,kryo385";324reg = <0x0 0x600>;325enable-method = "psci";326next-level-cache = <&L2_600>;327qcom,freq-domain = <&cpufreq_hw 1>;328clocks = <&cpufreq_hw 1>;329L2_600: l2-cache {330compatible = "cache";331cache-unified;332cache-level = <2>;333next-level-cache = <&L3_0>;334};335};336337CPU7: cpu@700 {338device_type = "cpu";339compatible = "qcom,kryo385";340reg = <0x0 0x700>;341enable-method = "psci";342next-level-cache = <&L2_700>;343qcom,freq-domain = <&cpufreq_hw 1>;344clocks = <&cpufreq_hw 1>;345L2_700: l2-cache {346compatible = "cache";347cache-unified;348cache-level = <2>;349next-level-cache = <&L3_0>;350};351};352};353354soc {355#address-cells = <1>;356#size-cells = <1>;357358cpufreq@17d43000 {359compatible = "qcom,sdm845-cpufreq-hw", "qcom,cpufreq-hw";360reg = <0x17d43000 0x1400>, <0x17d45800 0x1400>;361reg-names = "freq-domain0", "freq-domain1";362363clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GPLL0>;364clock-names = "xo", "alternate";365366#freq-domain-cells = <1>;367#clock-cells = <1>;368};369};370...371372373