xref: /linux/Documentation/devicetree/bindings/opp/allwinner,sun50i-h6-operating-points.yaml (revision 621cde16e49b3ecf7d59a8106a20aaebfb4a59a9)
1b30d8cf5SMaxime Ripard# SPDX-License-Identifier: GPL-2.0
2b30d8cf5SMaxime Ripard%YAML 1.2
3b30d8cf5SMaxime Ripard---
4b30d8cf5SMaxime Ripard$id: http://devicetree.org/schemas/opp/allwinner,sun50i-h6-operating-points.yaml#
5b30d8cf5SMaxime Ripard$schema: http://devicetree.org/meta-schemas/core.yaml#
6b30d8cf5SMaxime Ripard
7dd3cb467SAndrew Lunntitle: Allwinner H6 CPU OPP
8b30d8cf5SMaxime Ripard
9b30d8cf5SMaxime Ripardmaintainers:
10b30d8cf5SMaxime Ripard  - Chen-Yu Tsai <wens@csie.org>
11b30d8cf5SMaxime Ripard  - Maxime Ripard <mripard@kernel.org>
12b30d8cf5SMaxime Ripard
13b30d8cf5SMaxime Riparddescription: |
14b30d8cf5SMaxime Ripard  For some SoCs, the CPU frequency subset and voltage value of each
15b30d8cf5SMaxime Ripard  OPP varies based on the silicon variant in use. Allwinner Process
16*83d4e044SMartin Botka  Voltage Scaling Tables define the voltage and frequency values based
17*83d4e044SMartin Botka  on the speedbin blown in the efuse combination.
18b30d8cf5SMaxime Ripard
1994274f20SRob HerringallOf:
2094274f20SRob Herring  - $ref: opp-v2-base.yaml#
2194274f20SRob Herring
22b30d8cf5SMaxime Ripardproperties:
23b30d8cf5SMaxime Ripard  compatible:
24*83d4e044SMartin Botka    enum:
25*83d4e044SMartin Botka      - allwinner,sun50i-h6-operating-points
26*83d4e044SMartin Botka      - allwinner,sun50i-h616-operating-points
27b30d8cf5SMaxime Ripard
28b30d8cf5SMaxime Ripard  nvmem-cells:
29b30d8cf5SMaxime Ripard    description: |
30b30d8cf5SMaxime Ripard      A phandle pointing to a nvmem-cells node representing the efuse
31*83d4e044SMartin Botka      register that has information about the speedbin that is used
32b30d8cf5SMaxime Ripard      to select the right frequency/voltage value pair. Please refer
33*83d4e044SMartin Botka      to the nvmem-cells bindings in
34*83d4e044SMartin Botka      Documentation/devicetree/bindings/nvmem/nvmem.yaml and also the
35b30d8cf5SMaxime Ripard      examples below.
36b30d8cf5SMaxime Ripard
374828556dSRob Herring  opp-shared: true
384828556dSRob Herring
39b30d8cf5SMaxime Ripardrequired:
40b30d8cf5SMaxime Ripard  - compatible
41b30d8cf5SMaxime Ripard  - nvmem-cells
42b30d8cf5SMaxime Ripard
43b30d8cf5SMaxime RipardpatternProperties:
447621aabdSRob Herring  "^opp-[0-9]+$":
45b30d8cf5SMaxime Ripard    type: object
46b30d8cf5SMaxime Ripard
47b30d8cf5SMaxime Ripard    properties:
48b30d8cf5SMaxime Ripard      opp-hz: true
4994274f20SRob Herring      clock-latency-ns: true
50*83d4e044SMartin Botka      opp-microvolt: true
51*83d4e044SMartin Botka      opp-supported-hw:
52*83d4e044SMartin Botka        maxItems: 1
53*83d4e044SMartin Botka        description:
54*83d4e044SMartin Botka          A single 32 bit bitmap value, representing compatible HW, one
55*83d4e044SMartin Botka          bit per speed bin index.
56b30d8cf5SMaxime Ripard
57b30d8cf5SMaxime Ripard    patternProperties:
587621aabdSRob Herring      "^opp-microvolt-speed[0-9]$": true
59b30d8cf5SMaxime Ripard
60b30d8cf5SMaxime Ripard    required:
61b30d8cf5SMaxime Ripard      - opp-hz
62b30d8cf5SMaxime Ripard
63b30d8cf5SMaxime Ripard    unevaluatedProperties: false
64b30d8cf5SMaxime Ripard
654828556dSRob HerringadditionalProperties: false
66b30d8cf5SMaxime Ripard
67b30d8cf5SMaxime Ripardexamples:
68b30d8cf5SMaxime Ripard  - |
69b30d8cf5SMaxime Ripard    cpu_opp_table: opp-table {
70b30d8cf5SMaxime Ripard        compatible = "allwinner,sun50i-h6-operating-points";
71b30d8cf5SMaxime Ripard        nvmem-cells = <&speedbin_efuse>;
72b30d8cf5SMaxime Ripard        opp-shared;
73b30d8cf5SMaxime Ripard
74b30d8cf5SMaxime Ripard        opp-480000000 {
75b30d8cf5SMaxime Ripard            clock-latency-ns = <244144>; /* 8 32k periods */
76b30d8cf5SMaxime Ripard            opp-hz = /bits/ 64 <480000000>;
77b30d8cf5SMaxime Ripard
78b30d8cf5SMaxime Ripard            opp-microvolt-speed0 = <880000>;
79b30d8cf5SMaxime Ripard            opp-microvolt-speed1 = <820000>;
80b30d8cf5SMaxime Ripard            opp-microvolt-speed2 = <800000>;
81b30d8cf5SMaxime Ripard        };
82b30d8cf5SMaxime Ripard
83b30d8cf5SMaxime Ripard        opp-1080000000 {
84b30d8cf5SMaxime Ripard            clock-latency-ns = <244144>; /* 8 32k periods */
85b30d8cf5SMaxime Ripard            opp-hz = /bits/ 64 <1080000000>;
86b30d8cf5SMaxime Ripard
87b30d8cf5SMaxime Ripard            opp-microvolt-speed0 = <1060000>;
88b30d8cf5SMaxime Ripard            opp-microvolt-speed1 = <880000>;
89b30d8cf5SMaxime Ripard            opp-microvolt-speed2 = <840000>;
90b30d8cf5SMaxime Ripard        };
91b30d8cf5SMaxime Ripard
92b30d8cf5SMaxime Ripard        opp-1488000000 {
93b30d8cf5SMaxime Ripard            clock-latency-ns = <244144>; /* 8 32k periods */
94b30d8cf5SMaxime Ripard            opp-hz = /bits/ 64 <1488000000>;
95b30d8cf5SMaxime Ripard
96b30d8cf5SMaxime Ripard            opp-microvolt-speed0 = <1160000>;
97b30d8cf5SMaxime Ripard            opp-microvolt-speed1 = <1000000>;
98b30d8cf5SMaxime Ripard            opp-microvolt-speed2 = <960000>;
99b30d8cf5SMaxime Ripard        };
100b30d8cf5SMaxime Ripard    };
101b30d8cf5SMaxime Ripard
102*83d4e044SMartin Botka  - |
103*83d4e044SMartin Botka    opp-table {
104*83d4e044SMartin Botka        compatible = "allwinner,sun50i-h616-operating-points";
105*83d4e044SMartin Botka        nvmem-cells = <&speedbin_efuse>;
106*83d4e044SMartin Botka        opp-shared;
107*83d4e044SMartin Botka
108*83d4e044SMartin Botka        opp-480000000 {
109*83d4e044SMartin Botka            clock-latency-ns = <244144>; /* 8 32k periods */
110*83d4e044SMartin Botka            opp-hz = /bits/ 64 <480000000>;
111*83d4e044SMartin Botka
112*83d4e044SMartin Botka            opp-microvolt = <900000>;
113*83d4e044SMartin Botka            opp-supported-hw = <0x1f>;
114*83d4e044SMartin Botka        };
115*83d4e044SMartin Botka
116*83d4e044SMartin Botka        opp-792000000 {
117*83d4e044SMartin Botka            clock-latency-ns = <244144>; /* 8 32k periods */
118*83d4e044SMartin Botka            opp-hz = /bits/ 64 <792000000>;
119*83d4e044SMartin Botka
120*83d4e044SMartin Botka            opp-microvolt-speed1 = <900000>;
121*83d4e044SMartin Botka            opp-microvolt-speed4 = <940000>;
122*83d4e044SMartin Botka            opp-supported-hw = <0x12>;
123*83d4e044SMartin Botka        };
124*83d4e044SMartin Botka
125*83d4e044SMartin Botka        opp-1512000000 {
126*83d4e044SMartin Botka            clock-latency-ns = <244144>; /* 8 32k periods */
127*83d4e044SMartin Botka            opp-hz = /bits/ 64 <1512000000>;
128*83d4e044SMartin Botka
129*83d4e044SMartin Botka            opp-microvolt = <1100000>;
130*83d4e044SMartin Botka            opp-supported-hw = <0x0a>;
131*83d4e044SMartin Botka        };
132*83d4e044SMartin Botka    };
133*83d4e044SMartin Botka
134b30d8cf5SMaxime Ripard...
135