diff options
author | Christian Marangi <ansuelsmth@gmail.com> | 2023-02-08 16:39:12 +0100 |
---|---|---|
committer | Viresh Kumar <viresh.kumar@linaro.org> | 2023-02-14 10:51:58 +0530 |
commit | 389de9c5a677c0d950528ee7d1871366ad2a6fd8 (patch) | |
tree | e26d4a33bb62da27d56c2a821a9957fd00478ffc | |
parent | 26e27f4e382f126d80e230df2a76d5f1c5a1ac42 (diff) | |
download | linux-stable-389de9c5a677c0d950528ee7d1871366ad2a6fd8.tar.gz linux-stable-389de9c5a677c0d950528ee7d1871366ad2a6fd8.tar.bz2 linux-stable-389de9c5a677c0d950528ee7d1871366ad2a6fd8.zip |
dt-bindings: cpufreq: qcom-cpufreq-nvmem: make cpr bindings optional
The qcom-cpufreq-nvmem driver supports 2 kind of devices:
- pre-cpr that doesn't have power-domains and base everything on nvmem
cells and multiple named microvolt bindings.
Doesn't need required-opp binding in the opp nodes as they are only
used for genpd based devices.
- cpr-based that require power-domain in the cpu nodes and use various
source to decide the correct voltage and freq
Require required-opp binding since they need to be linked to the
related opp-level.
When the schema was introduced, it was wrongly set to always require these
binding but this is not the case for pre-cpr devices.
Make the power-domain and the required-opp optional and set them required
only for qcs404 based devices.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
-rw-r--r-- | Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml | 74 |
1 files changed, 44 insertions, 30 deletions
diff --git a/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml b/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml index 7c42d9439abd..6f5e7904181f 100644 --- a/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml +++ b/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml @@ -17,6 +17,9 @@ description: | on the CPU OPP in use. The CPUFreq driver sets the CPR power domain level according to the required OPPs defined in the CPU OPP tables. + For old implementation efuses are parsed to select the correct opp table and + voltage and CPR is not supported/used. + select: properties: compatible: @@ -33,26 +36,6 @@ select: required: - compatible -properties: - cpus: - type: object - - patternProperties: - '^cpu@[0-9a-f]+$': - type: object - - properties: - power-domains: - maxItems: 1 - - power-domain-names: - items: - - const: cpr - - required: - - power-domains - - power-domain-names - patternProperties: '^opp-table(-[a-z0-9]+)?$': allOf: @@ -66,22 +49,53 @@ patternProperties: - if: properties: compatible: - const: operating-points-v2-kryo-cpu - then: - patternProperties: - '^opp-?[0-9]+$': - required: - - required-opps - - - if: - properties: - compatible: const: operating-points-v2-qcom-level then: $ref: /schemas/opp/opp-v2-qcom-level.yaml# unevaluatedProperties: false +allOf: + - if: + properties: + compatible: + contains: + enum: + - qcom,qcs404 + + then: + properties: + cpus: + type: object + + patternProperties: + '^cpu@[0-9a-f]+$': + type: object + + properties: + power-domains: + maxItems: 1 + + power-domain-names: + items: + - const: cpr + + required: + - power-domains + - power-domain-names + + patternProperties: + '^opp-table(-[a-z0-9]+)?$': + if: + properties: + compatible: + const: operating-points-v2-kryo-cpu + then: + patternProperties: + '^opp-?[0-9]+$': + required: + - required-opps + additionalProperties: true examples: |