Skip to content

Commit 422ec6f

Browse files
committed
Merge tag 'opp-updates-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm
Pull OPP updates for 6.6 from Viresh Kumar: "- Minor core cleanup and addition of new frequency related APIs (Viresh Kumar and Manivannan Sadhasivam). - Convert ti cpufreq/opp bindings to json schema (Nishanth Menon)." * tag 'opp-updates-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm: dt-bindings: cpufreq: Convert ti-cpufreq to json schema dt-bindings: opp: Convert ti-omap5-opp-supply to json schema OPP: Fix argument name in doc comment dt-bindings: opp: Increase maxItems for opp-hz property OPP: Fix passing 0 to PTR_ERR in _opp_attach_genpd() OPP: Fix potential null ptr dereference in dev_pm_opp_get_required_pstate() OPP: Reuse dev_pm_opp_get_freq_indexed() OPP: Update _read_freq() to return the correct frequency OPP: Add dev_pm_opp_find_freq_exact_indexed() OPP: Introduce dev_pm_opp_get_freq_indexed() API OPP: Introduce dev_pm_opp_find_freq_{ceil/floor}_indexed() APIs OPP: Rearrange entries in pm_opp.h
2 parents 2114d59 + e576a9a commit 422ec6f

File tree

8 files changed

+344
-229
lines changed

8 files changed

+344
-229
lines changed

Documentation/devicetree/bindings/cpufreq/ti-cpufreq.txt

Lines changed: 0 additions & 132 deletions
This file was deleted.
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/opp/operating-points-v2-ti-cpu.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: TI CPU OPP (Operating Performance Points)
8+
9+
description:
10+
TI SoCs, like those in the AM335x, AM437x, AM57xx, AM62x, and DRA7xx
11+
families, the CPU frequencies subset and the voltage value of each
12+
OPP vary based on the silicon variant used. The data sheet sections
13+
corresponding to "Operating Performance Points" describe the frequency
14+
and voltage values based on device type and speed bin information
15+
blown in corresponding eFuse bits as referred to by the Technical
16+
Reference Manual.
17+
18+
This document extends the operating-points-v2 binding by providing
19+
the hardware description for the scheme mentioned above.
20+
21+
maintainers:
22+
- Nishanth Menon <nm@ti.com>
23+
24+
allOf:
25+
- $ref: opp-v2-base.yaml#
26+
27+
properties:
28+
compatible:
29+
const: operating-points-v2-ti-cpu
30+
31+
syscon:
32+
$ref: /schemas/types.yaml#/definitions/phandle
33+
description: |
34+
points to syscon node representing the control module
35+
register space of the SoC.
36+
37+
opp-shared: true
38+
39+
patternProperties:
40+
'^opp(-?[0-9]+)*$':
41+
type: object
42+
additionalProperties: false
43+
44+
properties:
45+
clock-latency-ns: true
46+
opp-hz: true
47+
opp-microvolt: true
48+
opp-supported-hw: true
49+
opp-suspend: true
50+
turbo-mode: true
51+
52+
required:
53+
- opp-hz
54+
- opp-supported-hw
55+
56+
required:
57+
- compatible
58+
- syscon
59+
60+
additionalProperties: false
61+
62+
examples:
63+
- |
64+
opp-table {
65+
compatible = "operating-points-v2-ti-cpu";
66+
syscon = <&scm_conf>;
67+
68+
opp-300000000 {
69+
opp-hz = /bits/ 64 <300000000>;
70+
opp-microvolt = <1100000 1078000 1122000>;
71+
opp-supported-hw = <0x06 0x0020>;
72+
opp-suspend;
73+
};
74+
75+
opp-500000000 {
76+
opp-hz = /bits/ 64 <500000000>;
77+
opp-microvolt = <1100000 1078000 1122000>;
78+
opp-supported-hw = <0x01 0xFFFF>;
79+
};
80+
81+
opp-600000000 {
82+
opp-hz = /bits/ 64 <600000000>;
83+
opp-microvolt = <1100000 1078000 1122000>;
84+
opp-supported-hw = <0x06 0x0040>;
85+
};
86+
87+
opp-1000000000 {
88+
opp-hz = /bits/ 64 <1000000000>;
89+
opp-microvolt = <1325000 1298500 1351500>;
90+
opp-supported-hw = <0x04 0x0200>;
91+
};
92+
};

Documentation/devicetree/bindings/opp/opp-v2-base.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ patternProperties:
5656
need to be configured and that is left for the implementation
5757
specific binding.
5858
minItems: 1
59-
maxItems: 16
59+
maxItems: 32
6060
items:
6161
maxItems: 1
6262

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/opp/ti,omap-opp-supply.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Texas Instruments OMAP compatible OPP supply
8+
9+
description:
10+
OMAP5, DRA7, and AM57 families of SoCs have Class 0 AVS eFuse
11+
registers, which contain OPP-specific voltage information tailored
12+
for the specific device. This binding provides the information
13+
needed to describe such a hardware values and relate them to program
14+
the primary regulator during an OPP transition.
15+
16+
Also, some supplies may have an associated vbb-supply, an Adaptive
17+
Body Bias regulator, which must transition in a specific sequence
18+
w.r.t the vdd-supply and clk when making an OPP transition. By
19+
supplying two regulators to the device that will undergo OPP
20+
transitions, we can use the multi-regulator support implemented by
21+
the OPP core to describe both regulators the platform needs. The
22+
OPP core binding Documentation/devicetree/bindings/opp/opp-v2.yaml
23+
provides further information (refer to Example 4 Handling multiple
24+
regulators).
25+
26+
maintainers:
27+
- Nishanth Menon <nm@ti.com>
28+
29+
properties:
30+
$nodename:
31+
pattern: '^opp-supply(@[0-9a-f]+)?$'
32+
33+
compatible:
34+
oneOf:
35+
- description: Basic OPP supply controlling VDD and VBB
36+
const: ti,omap-opp-supply
37+
- description: OMAP5+ optimized voltages in efuse(Class 0) VDD along with
38+
VBB.
39+
const: ti,omap5-opp-supply
40+
- description: OMAP5+ optimized voltages in efuse(class0) VDD but no VBB
41+
const: ti,omap5-core-opp-supply
42+
43+
reg:
44+
maxItems: 1
45+
46+
ti,absolute-max-voltage-uv:
47+
$ref: /schemas/types.yaml#/definitions/uint32
48+
description: Absolute maximum voltage for the OPP supply in micro-volts.
49+
minimum: 750000
50+
maximum: 1500000
51+
52+
ti,efuse-settings:
53+
description: An array of u32 tuple items providing information about
54+
optimized efuse configuration.
55+
minItems: 1
56+
$ref: /schemas/types.yaml#/definitions/uint32-matrix
57+
items:
58+
items:
59+
- description: Reference voltage in micro-volts (OPP Voltage)
60+
minimum: 750000
61+
maximum: 1500000
62+
multipleOf: 10000
63+
- description: efuse offset where the optimized voltage is located
64+
multipleOf: 4
65+
maximum: 256
66+
67+
required:
68+
- compatible
69+
- ti,absolute-max-voltage-uv
70+
71+
allOf:
72+
- if:
73+
not:
74+
properties:
75+
compatible:
76+
contains:
77+
const: ti,omap-opp-supply
78+
then:
79+
required:
80+
- reg
81+
- ti,efuse-settings
82+
83+
additionalProperties: false
84+
85+
examples:
86+
- |
87+
opp-supply {
88+
compatible = "ti,omap-opp-supply";
89+
ti,absolute-max-voltage-uv = <1375000>;
90+
};
91+
- |
92+
opp-supply@4a003b20 {
93+
compatible = "ti,omap5-opp-supply";
94+
reg = <0x4a003b20 0x8>;
95+
ti,efuse-settings =
96+
/* uV offset */
97+
<1060000 0x0>,
98+
<1160000 0x4>,
99+
<1210000 0x8>;
100+
ti,absolute-max-voltage-uv = <1500000>;
101+
};

0 commit comments

Comments
 (0)