Path: blob/main/sys/contrib/device-tree/Bindings/cpufreq/cpufreq-qcom-hw.txt
48375 views
Qualcomm Technologies, Inc. CPUFREQ Bindings12CPUFREQ HW is a hardware engine used by some Qualcomm Technologies, Inc. (QTI)3SoCs to manage frequency in hardware. It is capable of controlling frequency4for multiple clusters.56Properties:7- compatible8Usage: required9Value type: <string>10Definition: must be "qcom,cpufreq-hw" or "qcom,cpufreq-epss".1112- clocks13Usage: required14Value type: <phandle> From common clock binding.15Definition: clock handle for XO clock and GPLL0 clock.1617- clock-names18Usage: required19Value type: <string> From common clock binding.20Definition: must be "xo", "alternate".2122- reg23Usage: required24Value type: <prop-encoded-array>25Definition: Addresses and sizes for the memory of the HW bases in26each frequency domain.27- reg-names28Usage: Optional29Value type: <string>30Definition: Frequency domain name i.e.31"freq-domain0", "freq-domain1".3233- #freq-domain-cells:34Usage: required.35Definition: Number of cells in a freqency domain specifier.3637* Property qcom,freq-domain38Devices supporting freq-domain must set their "qcom,freq-domain" property with39phandle to a cpufreq_hw followed by the Domain ID(0/1) in the CPU DT node.404142Example:4344Example 1: Dual-cluster, Quad-core per cluster. CPUs within a cluster switch45DCVS state together.4647/ {48cpus {49#address-cells = <2>;50#size-cells = <0>;5152CPU0: cpu@0 {53device_type = "cpu";54compatible = "qcom,kryo385";55reg = <0x0 0x0>;56enable-method = "psci";57next-level-cache = <&L2_0>;58qcom,freq-domain = <&cpufreq_hw 0>;59L2_0: l2-cache {60compatible = "cache";61next-level-cache = <&L3_0>;62L3_0: l3-cache {63compatible = "cache";64};65};66};6768CPU1: cpu@100 {69device_type = "cpu";70compatible = "qcom,kryo385";71reg = <0x0 0x100>;72enable-method = "psci";73next-level-cache = <&L2_100>;74qcom,freq-domain = <&cpufreq_hw 0>;75L2_100: l2-cache {76compatible = "cache";77next-level-cache = <&L3_0>;78};79};8081CPU2: cpu@200 {82device_type = "cpu";83compatible = "qcom,kryo385";84reg = <0x0 0x200>;85enable-method = "psci";86next-level-cache = <&L2_200>;87qcom,freq-domain = <&cpufreq_hw 0>;88L2_200: l2-cache {89compatible = "cache";90next-level-cache = <&L3_0>;91};92};9394CPU3: cpu@300 {95device_type = "cpu";96compatible = "qcom,kryo385";97reg = <0x0 0x300>;98enable-method = "psci";99next-level-cache = <&L2_300>;100qcom,freq-domain = <&cpufreq_hw 0>;101L2_300: l2-cache {102compatible = "cache";103next-level-cache = <&L3_0>;104};105};106107CPU4: cpu@400 {108device_type = "cpu";109compatible = "qcom,kryo385";110reg = <0x0 0x400>;111enable-method = "psci";112next-level-cache = <&L2_400>;113qcom,freq-domain = <&cpufreq_hw 1>;114L2_400: l2-cache {115compatible = "cache";116next-level-cache = <&L3_0>;117};118};119120CPU5: cpu@500 {121device_type = "cpu";122compatible = "qcom,kryo385";123reg = <0x0 0x500>;124enable-method = "psci";125next-level-cache = <&L2_500>;126qcom,freq-domain = <&cpufreq_hw 1>;127L2_500: l2-cache {128compatible = "cache";129next-level-cache = <&L3_0>;130};131};132133CPU6: cpu@600 {134device_type = "cpu";135compatible = "qcom,kryo385";136reg = <0x0 0x600>;137enable-method = "psci";138next-level-cache = <&L2_600>;139qcom,freq-domain = <&cpufreq_hw 1>;140L2_600: l2-cache {141compatible = "cache";142next-level-cache = <&L3_0>;143};144};145146CPU7: cpu@700 {147device_type = "cpu";148compatible = "qcom,kryo385";149reg = <0x0 0x700>;150enable-method = "psci";151next-level-cache = <&L2_700>;152qcom,freq-domain = <&cpufreq_hw 1>;153L2_700: l2-cache {154compatible = "cache";155next-level-cache = <&L3_0>;156};157};158};159160soc {161cpufreq_hw: cpufreq@17d43000 {162compatible = "qcom,cpufreq-hw";163reg = <0x17d43000 0x1400>, <0x17d45800 0x1400>;164reg-names = "freq-domain0", "freq-domain1";165166clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GPLL0>;167clock-names = "xo", "alternate";168169#freq-domain-cells = <1>;170};171}172173174