Skip to content

Commit

Permalink
dt-bindings: cpufreq: qcom-cpufreq-nvmem: make cpr bindings optional
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Christian Marangi authored and Viresh Kumar committed Feb 14, 2023
1 parent 26e27f4 commit 389de9c
Showing 1 changed file with 44 additions and 30 deletions.
74 changes: 44 additions & 30 deletions Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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:
Expand All @@ -63,16 +46,6 @@ patternProperties:
then:
$ref: /schemas/opp/opp-v2-kryo-cpu.yaml#

- if:
properties:
compatible:
const: operating-points-v2-kryo-cpu
then:
patternProperties:
'^opp-?[0-9]+$':
required:
- required-opps

- if:
properties:
compatible:
Expand All @@ -82,6 +55,47 @@ patternProperties:

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:
Expand Down

0 comments on commit 389de9c

Please sign in to comment.