xref: /openbmc/linux/Documentation/devicetree/bindings/opp/allwinner,sun50i-h6-operating-points.yaml (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
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
16b30d8cf5SMaxime Ripard  Voltage Scaling Tables defines the voltage and frequency value based
17b30d8cf5SMaxime Ripard  on the speedbin blown in the efuse combination. The
18b30d8cf5SMaxime Ripard  sun50i-cpufreq-nvmem driver reads the efuse value from the SoC to
19b30d8cf5SMaxime Ripard  provide the OPP framework with required information.
20b30d8cf5SMaxime Ripard
2194274f20SRob HerringallOf:
2294274f20SRob Herring  - $ref: opp-v2-base.yaml#
2394274f20SRob Herring
24b30d8cf5SMaxime Ripardproperties:
25b30d8cf5SMaxime Ripard  compatible:
26b30d8cf5SMaxime Ripard    const: allwinner,sun50i-h6-operating-points
27b30d8cf5SMaxime Ripard
28b30d8cf5SMaxime Ripard  nvmem-cells:
29b30d8cf5SMaxime Ripard    description: |
30b30d8cf5SMaxime Ripard      A phandle pointing to a nvmem-cells node representing the efuse
31b30d8cf5SMaxime Ripard      registers that has information about the speedbin that is used
32b30d8cf5SMaxime Ripard      to select the right frequency/voltage value pair. Please refer
33b30d8cf5SMaxime Ripard      the for nvmem-cells bindings
34b30d8cf5SMaxime Ripard      Documentation/devicetree/bindings/nvmem/nvmem.txt and also
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:
44*7621aabdSRob Herring  "^opp-[0-9]+$":
45b30d8cf5SMaxime Ripard    type: object
46b30d8cf5SMaxime Ripard
47b30d8cf5SMaxime Ripard    properties:
48b30d8cf5SMaxime Ripard      opp-hz: true
4994274f20SRob Herring      clock-latency-ns: true
50b30d8cf5SMaxime Ripard
51b30d8cf5SMaxime Ripard    patternProperties:
52*7621aabdSRob Herring      "^opp-microvolt-speed[0-9]$": true
53b30d8cf5SMaxime Ripard
54b30d8cf5SMaxime Ripard    required:
55b30d8cf5SMaxime Ripard      - opp-hz
56b30d8cf5SMaxime Ripard      - opp-microvolt-speed0
57b30d8cf5SMaxime Ripard      - opp-microvolt-speed1
58b30d8cf5SMaxime Ripard      - opp-microvolt-speed2
59b30d8cf5SMaxime Ripard
60b30d8cf5SMaxime Ripard    unevaluatedProperties: false
61b30d8cf5SMaxime Ripard
624828556dSRob HerringadditionalProperties: false
63b30d8cf5SMaxime Ripard
64b30d8cf5SMaxime Ripardexamples:
65b30d8cf5SMaxime Ripard  - |
66b30d8cf5SMaxime Ripard    cpu_opp_table: opp-table {
67b30d8cf5SMaxime Ripard        compatible = "allwinner,sun50i-h6-operating-points";
68b30d8cf5SMaxime Ripard        nvmem-cells = <&speedbin_efuse>;
69b30d8cf5SMaxime Ripard        opp-shared;
70b30d8cf5SMaxime Ripard
71b30d8cf5SMaxime Ripard        opp-480000000 {
72b30d8cf5SMaxime Ripard            clock-latency-ns = <244144>; /* 8 32k periods */
73b30d8cf5SMaxime Ripard            opp-hz = /bits/ 64 <480000000>;
74b30d8cf5SMaxime Ripard
75b30d8cf5SMaxime Ripard            opp-microvolt-speed0 = <880000>;
76b30d8cf5SMaxime Ripard            opp-microvolt-speed1 = <820000>;
77b30d8cf5SMaxime Ripard            opp-microvolt-speed2 = <800000>;
78b30d8cf5SMaxime Ripard        };
79b30d8cf5SMaxime Ripard
80b30d8cf5SMaxime Ripard        opp-720000000 {
81b30d8cf5SMaxime Ripard            clock-latency-ns = <244144>; /* 8 32k periods */
82b30d8cf5SMaxime Ripard            opp-hz = /bits/ 64 <720000000>;
83b30d8cf5SMaxime Ripard
84b30d8cf5SMaxime Ripard            opp-microvolt-speed0 = <880000>;
85b30d8cf5SMaxime Ripard            opp-microvolt-speed1 = <820000>;
86b30d8cf5SMaxime Ripard            opp-microvolt-speed2 = <800000>;
87b30d8cf5SMaxime Ripard        };
88b30d8cf5SMaxime Ripard
89b30d8cf5SMaxime Ripard        opp-816000000 {
90b30d8cf5SMaxime Ripard            clock-latency-ns = <244144>; /* 8 32k periods */
91b30d8cf5SMaxime Ripard            opp-hz = /bits/ 64 <816000000>;
92b30d8cf5SMaxime Ripard
93b30d8cf5SMaxime Ripard            opp-microvolt-speed0 = <880000>;
94b30d8cf5SMaxime Ripard            opp-microvolt-speed1 = <820000>;
95b30d8cf5SMaxime Ripard            opp-microvolt-speed2 = <800000>;
96b30d8cf5SMaxime Ripard        };
97b30d8cf5SMaxime Ripard
98b30d8cf5SMaxime Ripard        opp-888000000 {
99b30d8cf5SMaxime Ripard            clock-latency-ns = <244144>; /* 8 32k periods */
100b30d8cf5SMaxime Ripard            opp-hz = /bits/ 64 <888000000>;
101b30d8cf5SMaxime Ripard
102b30d8cf5SMaxime Ripard            opp-microvolt-speed0 = <940000>;
103b30d8cf5SMaxime Ripard            opp-microvolt-speed1 = <820000>;
104b30d8cf5SMaxime Ripard            opp-microvolt-speed2 = <800000>;
105b30d8cf5SMaxime Ripard        };
106b30d8cf5SMaxime Ripard
107b30d8cf5SMaxime Ripard        opp-1080000000 {
108b30d8cf5SMaxime Ripard            clock-latency-ns = <244144>; /* 8 32k periods */
109b30d8cf5SMaxime Ripard            opp-hz = /bits/ 64 <1080000000>;
110b30d8cf5SMaxime Ripard
111b30d8cf5SMaxime Ripard            opp-microvolt-speed0 = <1060000>;
112b30d8cf5SMaxime Ripard            opp-microvolt-speed1 = <880000>;
113b30d8cf5SMaxime Ripard            opp-microvolt-speed2 = <840000>;
114b30d8cf5SMaxime Ripard        };
115b30d8cf5SMaxime Ripard
116b30d8cf5SMaxime Ripard        opp-1320000000 {
117b30d8cf5SMaxime Ripard            clock-latency-ns = <244144>; /* 8 32k periods */
118b30d8cf5SMaxime Ripard            opp-hz = /bits/ 64 <1320000000>;
119b30d8cf5SMaxime Ripard
120b30d8cf5SMaxime Ripard            opp-microvolt-speed0 = <1160000>;
121b30d8cf5SMaxime Ripard            opp-microvolt-speed1 = <940000>;
122b30d8cf5SMaxime Ripard            opp-microvolt-speed2 = <900000>;
123b30d8cf5SMaxime Ripard        };
124b30d8cf5SMaxime Ripard
125b30d8cf5SMaxime Ripard        opp-1488000000 {
126b30d8cf5SMaxime Ripard            clock-latency-ns = <244144>; /* 8 32k periods */
127b30d8cf5SMaxime Ripard            opp-hz = /bits/ 64 <1488000000>;
128b30d8cf5SMaxime Ripard
129b30d8cf5SMaxime Ripard            opp-microvolt-speed0 = <1160000>;
130b30d8cf5SMaxime Ripard            opp-microvolt-speed1 = <1000000>;
131b30d8cf5SMaxime Ripard            opp-microvolt-speed2 = <960000>;
132b30d8cf5SMaxime Ripard        };
133b30d8cf5SMaxime Ripard    };
134b30d8cf5SMaxime Ripard
135b30d8cf5SMaxime Ripard...
136