162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/opp/allwinner,sun50i-h6-operating-points.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Allwinner H6 CPU OPP 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Chen-Yu Tsai <wens@csie.org> 1162306a36Sopenharmony_ci - Maxime Ripard <mripard@kernel.org> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cidescription: | 1462306a36Sopenharmony_ci For some SoCs, the CPU frequency subset and voltage value of each 1562306a36Sopenharmony_ci OPP varies based on the silicon variant in use. Allwinner Process 1662306a36Sopenharmony_ci Voltage Scaling Tables defines the voltage and frequency value based 1762306a36Sopenharmony_ci on the speedbin blown in the efuse combination. The 1862306a36Sopenharmony_ci sun50i-cpufreq-nvmem driver reads the efuse value from the SoC to 1962306a36Sopenharmony_ci provide the OPP framework with required information. 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciallOf: 2262306a36Sopenharmony_ci - $ref: opp-v2-base.yaml# 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciproperties: 2562306a36Sopenharmony_ci compatible: 2662306a36Sopenharmony_ci const: allwinner,sun50i-h6-operating-points 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci nvmem-cells: 2962306a36Sopenharmony_ci description: | 3062306a36Sopenharmony_ci A phandle pointing to a nvmem-cells node representing the efuse 3162306a36Sopenharmony_ci registers that has information about the speedbin that is used 3262306a36Sopenharmony_ci to select the right frequency/voltage value pair. Please refer 3362306a36Sopenharmony_ci the for nvmem-cells bindings 3462306a36Sopenharmony_ci Documentation/devicetree/bindings/nvmem/nvmem.txt and also 3562306a36Sopenharmony_ci examples below. 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci opp-shared: true 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_cirequired: 4062306a36Sopenharmony_ci - compatible 4162306a36Sopenharmony_ci - nvmem-cells 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_cipatternProperties: 4462306a36Sopenharmony_ci "^opp-[0-9]+$": 4562306a36Sopenharmony_ci type: object 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci properties: 4862306a36Sopenharmony_ci opp-hz: true 4962306a36Sopenharmony_ci clock-latency-ns: true 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci patternProperties: 5262306a36Sopenharmony_ci "^opp-microvolt-speed[0-9]$": true 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci required: 5562306a36Sopenharmony_ci - opp-hz 5662306a36Sopenharmony_ci - opp-microvolt-speed0 5762306a36Sopenharmony_ci - opp-microvolt-speed1 5862306a36Sopenharmony_ci - opp-microvolt-speed2 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci unevaluatedProperties: false 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ciadditionalProperties: false 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ciexamples: 6562306a36Sopenharmony_ci - | 6662306a36Sopenharmony_ci cpu_opp_table: opp-table { 6762306a36Sopenharmony_ci compatible = "allwinner,sun50i-h6-operating-points"; 6862306a36Sopenharmony_ci nvmem-cells = <&speedbin_efuse>; 6962306a36Sopenharmony_ci opp-shared; 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci opp-480000000 { 7262306a36Sopenharmony_ci clock-latency-ns = <244144>; /* 8 32k periods */ 7362306a36Sopenharmony_ci opp-hz = /bits/ 64 <480000000>; 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci opp-microvolt-speed0 = <880000>; 7662306a36Sopenharmony_ci opp-microvolt-speed1 = <820000>; 7762306a36Sopenharmony_ci opp-microvolt-speed2 = <800000>; 7862306a36Sopenharmony_ci }; 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci opp-720000000 { 8162306a36Sopenharmony_ci clock-latency-ns = <244144>; /* 8 32k periods */ 8262306a36Sopenharmony_ci opp-hz = /bits/ 64 <720000000>; 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci opp-microvolt-speed0 = <880000>; 8562306a36Sopenharmony_ci opp-microvolt-speed1 = <820000>; 8662306a36Sopenharmony_ci opp-microvolt-speed2 = <800000>; 8762306a36Sopenharmony_ci }; 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci opp-816000000 { 9062306a36Sopenharmony_ci clock-latency-ns = <244144>; /* 8 32k periods */ 9162306a36Sopenharmony_ci opp-hz = /bits/ 64 <816000000>; 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci opp-microvolt-speed0 = <880000>; 9462306a36Sopenharmony_ci opp-microvolt-speed1 = <820000>; 9562306a36Sopenharmony_ci opp-microvolt-speed2 = <800000>; 9662306a36Sopenharmony_ci }; 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ci opp-888000000 { 9962306a36Sopenharmony_ci clock-latency-ns = <244144>; /* 8 32k periods */ 10062306a36Sopenharmony_ci opp-hz = /bits/ 64 <888000000>; 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci opp-microvolt-speed0 = <940000>; 10362306a36Sopenharmony_ci opp-microvolt-speed1 = <820000>; 10462306a36Sopenharmony_ci opp-microvolt-speed2 = <800000>; 10562306a36Sopenharmony_ci }; 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ci opp-1080000000 { 10862306a36Sopenharmony_ci clock-latency-ns = <244144>; /* 8 32k periods */ 10962306a36Sopenharmony_ci opp-hz = /bits/ 64 <1080000000>; 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci opp-microvolt-speed0 = <1060000>; 11262306a36Sopenharmony_ci opp-microvolt-speed1 = <880000>; 11362306a36Sopenharmony_ci opp-microvolt-speed2 = <840000>; 11462306a36Sopenharmony_ci }; 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_ci opp-1320000000 { 11762306a36Sopenharmony_ci clock-latency-ns = <244144>; /* 8 32k periods */ 11862306a36Sopenharmony_ci opp-hz = /bits/ 64 <1320000000>; 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci opp-microvolt-speed0 = <1160000>; 12162306a36Sopenharmony_ci opp-microvolt-speed1 = <940000>; 12262306a36Sopenharmony_ci opp-microvolt-speed2 = <900000>; 12362306a36Sopenharmony_ci }; 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci opp-1488000000 { 12662306a36Sopenharmony_ci clock-latency-ns = <244144>; /* 8 32k periods */ 12762306a36Sopenharmony_ci opp-hz = /bits/ 64 <1488000000>; 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci opp-microvolt-speed0 = <1160000>; 13062306a36Sopenharmony_ci opp-microvolt-speed1 = <1000000>; 13162306a36Sopenharmony_ci opp-microvolt-speed2 = <960000>; 13262306a36Sopenharmony_ci }; 13362306a36Sopenharmony_ci }; 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci... 136