Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / opp / ti,omap-opp-supply.yaml
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     };