18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/opp/allwinner,sun50i-h6-operating-points.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Allwinner H6 CPU OPP Device Tree Bindings
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Chen-Yu Tsai <wens@csie.org>
118c2ecf20Sopenharmony_ci  - Maxime Ripard <mripard@kernel.org>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cidescription: |
148c2ecf20Sopenharmony_ci  For some SoCs, the CPU frequency subset and voltage value of each
158c2ecf20Sopenharmony_ci  OPP varies based on the silicon variant in use. Allwinner Process
168c2ecf20Sopenharmony_ci  Voltage Scaling Tables defines the voltage and frequency value based
178c2ecf20Sopenharmony_ci  on the speedbin blown in the efuse combination. The
188c2ecf20Sopenharmony_ci  sun50i-cpufreq-nvmem driver reads the efuse value from the SoC to
198c2ecf20Sopenharmony_ci  provide the OPP framework with required information.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciproperties:
228c2ecf20Sopenharmony_ci  compatible:
238c2ecf20Sopenharmony_ci    const: allwinner,sun50i-h6-operating-points
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci  nvmem-cells:
268c2ecf20Sopenharmony_ci    description: |
278c2ecf20Sopenharmony_ci      A phandle pointing to a nvmem-cells node representing the efuse
288c2ecf20Sopenharmony_ci      registers that has information about the speedbin that is used
298c2ecf20Sopenharmony_ci      to select the right frequency/voltage value pair. Please refer
308c2ecf20Sopenharmony_ci      the for nvmem-cells bindings
318c2ecf20Sopenharmony_ci      Documentation/devicetree/bindings/nvmem/nvmem.txt and also
328c2ecf20Sopenharmony_ci      examples below.
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci  opp-shared: true
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_cirequired:
378c2ecf20Sopenharmony_ci  - compatible
388c2ecf20Sopenharmony_ci  - nvmem-cells
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_cipatternProperties:
418c2ecf20Sopenharmony_ci  "opp-[0-9]+":
428c2ecf20Sopenharmony_ci    type: object
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci    properties:
458c2ecf20Sopenharmony_ci      opp-hz: true
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci    patternProperties:
488c2ecf20Sopenharmony_ci      "opp-microvolt-.*": true
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci    required:
518c2ecf20Sopenharmony_ci      - opp-hz
528c2ecf20Sopenharmony_ci      - opp-microvolt-speed0
538c2ecf20Sopenharmony_ci      - opp-microvolt-speed1
548c2ecf20Sopenharmony_ci      - opp-microvolt-speed2
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci    unevaluatedProperties: false
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ciadditionalProperties: false
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ciexamples:
618c2ecf20Sopenharmony_ci  - |
628c2ecf20Sopenharmony_ci    cpu_opp_table: opp-table {
638c2ecf20Sopenharmony_ci        compatible = "allwinner,sun50i-h6-operating-points";
648c2ecf20Sopenharmony_ci        nvmem-cells = <&speedbin_efuse>;
658c2ecf20Sopenharmony_ci        opp-shared;
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci        opp-480000000 {
688c2ecf20Sopenharmony_ci            clock-latency-ns = <244144>; /* 8 32k periods */
698c2ecf20Sopenharmony_ci            opp-hz = /bits/ 64 <480000000>;
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci            opp-microvolt-speed0 = <880000>;
728c2ecf20Sopenharmony_ci            opp-microvolt-speed1 = <820000>;
738c2ecf20Sopenharmony_ci            opp-microvolt-speed2 = <800000>;
748c2ecf20Sopenharmony_ci        };
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ci        opp-720000000 {
778c2ecf20Sopenharmony_ci            clock-latency-ns = <244144>; /* 8 32k periods */
788c2ecf20Sopenharmony_ci            opp-hz = /bits/ 64 <720000000>;
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci            opp-microvolt-speed0 = <880000>;
818c2ecf20Sopenharmony_ci            opp-microvolt-speed1 = <820000>;
828c2ecf20Sopenharmony_ci            opp-microvolt-speed2 = <800000>;
838c2ecf20Sopenharmony_ci        };
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci        opp-816000000 {
868c2ecf20Sopenharmony_ci            clock-latency-ns = <244144>; /* 8 32k periods */
878c2ecf20Sopenharmony_ci            opp-hz = /bits/ 64 <816000000>;
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_ci            opp-microvolt-speed0 = <880000>;
908c2ecf20Sopenharmony_ci            opp-microvolt-speed1 = <820000>;
918c2ecf20Sopenharmony_ci            opp-microvolt-speed2 = <800000>;
928c2ecf20Sopenharmony_ci        };
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci        opp-888000000 {
958c2ecf20Sopenharmony_ci            clock-latency-ns = <244144>; /* 8 32k periods */
968c2ecf20Sopenharmony_ci            opp-hz = /bits/ 64 <888000000>;
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ci            opp-microvolt-speed0 = <940000>;
998c2ecf20Sopenharmony_ci            opp-microvolt-speed1 = <820000>;
1008c2ecf20Sopenharmony_ci            opp-microvolt-speed2 = <800000>;
1018c2ecf20Sopenharmony_ci        };
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ci        opp-1080000000 {
1048c2ecf20Sopenharmony_ci            clock-latency-ns = <244144>; /* 8 32k periods */
1058c2ecf20Sopenharmony_ci            opp-hz = /bits/ 64 <1080000000>;
1068c2ecf20Sopenharmony_ci
1078c2ecf20Sopenharmony_ci            opp-microvolt-speed0 = <1060000>;
1088c2ecf20Sopenharmony_ci            opp-microvolt-speed1 = <880000>;
1098c2ecf20Sopenharmony_ci            opp-microvolt-speed2 = <840000>;
1108c2ecf20Sopenharmony_ci        };
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ci        opp-1320000000 {
1138c2ecf20Sopenharmony_ci            clock-latency-ns = <244144>; /* 8 32k periods */
1148c2ecf20Sopenharmony_ci            opp-hz = /bits/ 64 <1320000000>;
1158c2ecf20Sopenharmony_ci
1168c2ecf20Sopenharmony_ci            opp-microvolt-speed0 = <1160000>;
1178c2ecf20Sopenharmony_ci            opp-microvolt-speed1 = <940000>;
1188c2ecf20Sopenharmony_ci            opp-microvolt-speed2 = <900000>;
1198c2ecf20Sopenharmony_ci        };
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci        opp-1488000000 {
1228c2ecf20Sopenharmony_ci            clock-latency-ns = <244144>; /* 8 32k periods */
1238c2ecf20Sopenharmony_ci            opp-hz = /bits/ 64 <1488000000>;
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ci            opp-microvolt-speed0 = <1160000>;
1268c2ecf20Sopenharmony_ci            opp-microvolt-speed1 = <1000000>;
1278c2ecf20Sopenharmony_ci            opp-microvolt-speed2 = <960000>;
1288c2ecf20Sopenharmony_ci        };
1298c2ecf20Sopenharmony_ci    };
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ci...
132