Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'cpufreq-arm-updates-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm

Pull cpufreq ARM updates for 6.3 from Viresh Kumar:

"- Enable thermal cooling for Tegra194 (Yi-Wei Wang).

- Register module device table and add missing compatibles for
cpufreq-qcom-hw (Nícolas F. R. A. Prado, Abel Vesa and Luca Weiss).

- Various dt binding updates for qcom-cpufreq-nvmem and opp-v2-kryo-cpu
(Christian Marangi)."

* tag 'cpufreq-arm-updates-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm:
dt-bindings: opp: opp-v2-kryo-cpu: enlarge opp-supported-hw maximum
dt-bindings: cpufreq: qcom-cpufreq-nvmem: make cpr bindings optional
dt-bindings: cpufreq: qcom-cpufreq-nvmem: specify supported opp tables
dt-bindings: cpufreq: cpufreq-qcom-hw: Add SM8550 compatible
dt-bindings: cpufreq: cpufreq-qcom-hw: Add missing compatibles
cpufreq: mediatek-hw: Register to module device table
cpufreq: tegra194: Enable CPUFREQ thermal cooling

+77 -29
+5
Documentation/devicetree/bindings/cpufreq/cpufreq-qcom-hw.yaml
··· 26 26 items: 27 27 - enum: 28 28 - qcom,qdu1000-cpufreq-epss 29 + - qcom,sc7280-cpufreq-epss 30 + - qcom,sc8280xp-cpufreq-epss 29 31 - qcom,sm6375-cpufreq-epss 30 32 - qcom,sm8250-cpufreq-epss 33 + - qcom,sm8350-cpufreq-epss 34 + - qcom,sm8450-cpufreq-epss 35 + - qcom,sm8550-cpufreq-epss 31 36 - const: qcom,cpufreq-epss 32 37 33 38 reg:
+56 -25
Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml
··· 17 17 on the CPU OPP in use. The CPUFreq driver sets the CPR power domain level 18 18 according to the required OPPs defined in the CPU OPP tables. 19 19 20 + For old implementation efuses are parsed to select the correct opp table and 21 + voltage and CPR is not supported/used. 22 + 20 23 select: 21 24 properties: 22 25 compatible: ··· 36 33 required: 37 34 - compatible 38 35 39 - properties: 40 - cpus: 41 - type: object 42 - 43 - patternProperties: 44 - '^cpu@[0-9a-f]+$': 45 - type: object 46 - 47 - properties: 48 - power-domains: 49 - maxItems: 1 50 - 51 - power-domain-names: 52 - items: 53 - - const: cpr 54 - 55 - required: 56 - - power-domains 57 - - power-domain-names 58 - 59 36 patternProperties: 60 37 '^opp-table(-[a-z0-9]+)?$': 61 - if: 38 + allOf: 39 + - if: 40 + properties: 41 + compatible: 42 + const: operating-points-v2-kryo-cpu 43 + then: 44 + $ref: /schemas/opp/opp-v2-kryo-cpu.yaml# 45 + 46 + - if: 47 + properties: 48 + compatible: 49 + const: operating-points-v2-qcom-level 50 + then: 51 + $ref: /schemas/opp/opp-v2-qcom-level.yaml# 52 + 53 + unevaluatedProperties: false 54 + 55 + allOf: 56 + - if: 62 57 properties: 63 58 compatible: 64 - const: operating-points-v2-kryo-cpu 59 + contains: 60 + enum: 61 + - qcom,qcs404 62 + 65 63 then: 64 + properties: 65 + cpus: 66 + type: object 67 + 68 + patternProperties: 69 + '^cpu@[0-9a-f]+$': 70 + type: object 71 + 72 + properties: 73 + power-domains: 74 + maxItems: 1 75 + 76 + power-domain-names: 77 + items: 78 + - const: cpr 79 + 80 + required: 81 + - power-domains 82 + - power-domain-names 83 + 66 84 patternProperties: 67 - '^opp-?[0-9]+$': 68 - required: 69 - - required-opps 85 + '^opp-table(-[a-z0-9]+)?$': 86 + if: 87 + properties: 88 + compatible: 89 + const: operating-points-v2-kryo-cpu 90 + then: 91 + patternProperties: 92 + '^opp-?[0-9]+$': 93 + required: 94 + - required-opps 70 95 71 96 additionalProperties: true 72 97
+13 -3
Documentation/devicetree/bindings/opp/opp-v2-kryo-cpu.yaml
··· 50 50 opp-supported-hw: 51 51 description: | 52 52 A single 32 bit bitmap value, representing compatible HW. 53 - Bitmap: 53 + Bitmap for MSM8996 format: 54 54 0: MSM8996, speedbin 0 55 55 1: MSM8996, speedbin 1 56 56 2: MSM8996, speedbin 2 57 - 3-31: unused 58 - maximum: 0x7 57 + 3: MSM8996, speedbin 3 58 + 4-31: unused 59 + 60 + Bitmap for MSM8996SG format (speedbin shifted of 4 left): 61 + 0-3: unused 62 + 4: MSM8996SG, speedbin 0 63 + 5: MSM8996SG, speedbin 1 64 + 6: MSM8996SG, speedbin 2 65 + 7-31: unused 66 + enum: [0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 67 + 0x9, 0xd, 0xe, 0xf, 68 + 0x10, 0x20, 0x30, 0x70] 59 69 60 70 clock-latency-ns: true 61 71
+1
drivers/cpufreq/mediatek-cpufreq-hw.c
··· 326 326 { .compatible = "mediatek,cpufreq-hw", .data = &cpufreq_mtk_offsets }, 327 327 {} 328 328 }; 329 + MODULE_DEVICE_TABLE(of, mtk_cpufreq_hw_match); 329 330 330 331 static struct platform_driver mtk_cpufreq_hw_driver = { 331 332 .probe = mtk_cpufreq_hw_driver_probe,
+2 -1
drivers/cpufreq/tegra194-cpufreq.c
··· 411 411 412 412 static struct cpufreq_driver tegra194_cpufreq_driver = { 413 413 .name = "tegra194", 414 - .flags = CPUFREQ_CONST_LOOPS | CPUFREQ_NEED_INITIAL_FREQ_CHECK, 414 + .flags = CPUFREQ_CONST_LOOPS | CPUFREQ_NEED_INITIAL_FREQ_CHECK | 415 + CPUFREQ_IS_COOLING_DEV, 415 416 .verify = cpufreq_generic_frequency_table_verify, 416 417 .target_index = tegra194_cpufreq_set_target, 417 418 .get = tegra194_get_speed,