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