162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/cpufreq/cpufreq-mediatek-hw.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: MediaTek's CPUFREQ
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Hector Yuan <hector.yuan@mediatek.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription:
1362306a36Sopenharmony_ci  CPUFREQ HW is a hardware engine used by MediaTek SoCs to
1462306a36Sopenharmony_ci  manage frequency in hardware. It is capable of controlling
1562306a36Sopenharmony_ci  frequency for multiple clusters.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciproperties:
1862306a36Sopenharmony_ci  compatible:
1962306a36Sopenharmony_ci    const: mediatek,cpufreq-hw
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci  reg:
2262306a36Sopenharmony_ci    minItems: 1
2362306a36Sopenharmony_ci    maxItems: 2
2462306a36Sopenharmony_ci    description:
2562306a36Sopenharmony_ci      Addresses and sizes for the memory of the HW bases in
2662306a36Sopenharmony_ci      each frequency domain. Each entry corresponds to
2762306a36Sopenharmony_ci      a register bank for each frequency domain present.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  "#performance-domain-cells":
3062306a36Sopenharmony_ci    description:
3162306a36Sopenharmony_ci      Number of cells in a performance domain specifier.
3262306a36Sopenharmony_ci      Set const to 1 here for nodes providing multiple
3362306a36Sopenharmony_ci      performance domains.
3462306a36Sopenharmony_ci    const: 1
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_cirequired:
3762306a36Sopenharmony_ci  - compatible
3862306a36Sopenharmony_ci  - reg
3962306a36Sopenharmony_ci  - "#performance-domain-cells"
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciadditionalProperties: false
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciexamples:
4462306a36Sopenharmony_ci  - |
4562306a36Sopenharmony_ci    cpus {
4662306a36Sopenharmony_ci            #address-cells = <1>;
4762306a36Sopenharmony_ci            #size-cells = <0>;
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci            cpu0: cpu@0 {
5062306a36Sopenharmony_ci                device_type = "cpu";
5162306a36Sopenharmony_ci                compatible = "arm,cortex-a55";
5262306a36Sopenharmony_ci                enable-method = "psci";
5362306a36Sopenharmony_ci                performance-domains = <&performance 0>;
5462306a36Sopenharmony_ci                reg = <0x000>;
5562306a36Sopenharmony_ci            };
5662306a36Sopenharmony_ci    };
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci    /* ... */
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci    soc {
6162306a36Sopenharmony_ci        #address-cells = <2>;
6262306a36Sopenharmony_ci        #size-cells = <2>;
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci        performance: performance-controller@11bc00 {
6562306a36Sopenharmony_ci            compatible = "mediatek,cpufreq-hw";
6662306a36Sopenharmony_ci            reg = <0 0x0011bc10 0 0x120>, <0 0x0011bd30 0 0x120>;
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci            #performance-domain-cells = <1>;
6962306a36Sopenharmony_ci        };
7062306a36Sopenharmony_ci    };
71