162306a36Sopenharmony_ciBinding for ST's CPUFreq driver 262306a36Sopenharmony_ci=============================== 362306a36Sopenharmony_ci 462306a36Sopenharmony_ciST's CPUFreq driver attempts to read 'process' and 'version' attributes 562306a36Sopenharmony_cifrom the SoC, then supplies the OPP framework with 'prop' and 'supported 662306a36Sopenharmony_cihardware' information respectively. The framework is then able to read 762306a36Sopenharmony_cithe DT and operate in the usual way. 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciFrequency Scaling only 1062306a36Sopenharmony_ci---------------------- 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciNo vendor specific driver required for this. 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciLocated in CPU's node: 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci- operating-points : [See: ../power/opp-v1.yaml] 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciExample [safe] 1962306a36Sopenharmony_ci-------------- 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_cicpus { 2262306a36Sopenharmony_ci cpu@0 { 2362306a36Sopenharmony_ci /* kHz uV */ 2462306a36Sopenharmony_ci operating-points = <1500000 0 2562306a36Sopenharmony_ci 1200000 0 2662306a36Sopenharmony_ci 800000 0 2762306a36Sopenharmony_ci 500000 0>; 2862306a36Sopenharmony_ci }; 2962306a36Sopenharmony_ci}; 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ciDynamic Voltage and Frequency Scaling (DVFS) 3262306a36Sopenharmony_ci-------------------------------------------- 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ciThis requires the ST CPUFreq driver to supply 'process' and 'version' info. 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ciLocated in CPU's node: 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci- operating-points-v2 : [See ../power/opp-v2.yaml] 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ciExample [unsafe] 4162306a36Sopenharmony_ci---------------- 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_cicpus { 4462306a36Sopenharmony_ci cpu@0 { 4562306a36Sopenharmony_ci operating-points-v2 = <&cpu0_opp_table>; 4662306a36Sopenharmony_ci }; 4762306a36Sopenharmony_ci}; 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_cicpu0_opp_table: opp_table { 5062306a36Sopenharmony_ci compatible = "operating-points-v2"; 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci /* ############################################################### */ 5362306a36Sopenharmony_ci /* # WARNING: Do not attempt to copy/replicate these nodes, # */ 5462306a36Sopenharmony_ci /* # they are only to be supplied by the bootloader !!! # */ 5562306a36Sopenharmony_ci /* ############################################################### */ 5662306a36Sopenharmony_ci opp0 { 5762306a36Sopenharmony_ci /* Major Minor Substrate */ 5862306a36Sopenharmony_ci /* 2 all all */ 5962306a36Sopenharmony_ci opp-supported-hw = <0x00000004 0xffffffff 0xffffffff>; 6062306a36Sopenharmony_ci opp-hz = /bits/ 64 <1500000000>; 6162306a36Sopenharmony_ci clock-latency-ns = <10000000>; 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci opp-microvolt-pcode0 = <1200000>; 6462306a36Sopenharmony_ci opp-microvolt-pcode1 = <1200000>; 6562306a36Sopenharmony_ci opp-microvolt-pcode2 = <1200000>; 6662306a36Sopenharmony_ci opp-microvolt-pcode3 = <1200000>; 6762306a36Sopenharmony_ci opp-microvolt-pcode4 = <1170000>; 6862306a36Sopenharmony_ci opp-microvolt-pcode5 = <1140000>; 6962306a36Sopenharmony_ci opp-microvolt-pcode6 = <1100000>; 7062306a36Sopenharmony_ci opp-microvolt-pcode7 = <1070000>; 7162306a36Sopenharmony_ci }; 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci opp1 { 7462306a36Sopenharmony_ci /* Major Minor Substrate */ 7562306a36Sopenharmony_ci /* all all all */ 7662306a36Sopenharmony_ci opp-supported-hw = <0xffffffff 0xffffffff 0xffffffff>; 7762306a36Sopenharmony_ci opp-hz = /bits/ 64 <1200000000>; 7862306a36Sopenharmony_ci clock-latency-ns = <10000000>; 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci opp-microvolt-pcode0 = <1110000>; 8162306a36Sopenharmony_ci opp-microvolt-pcode1 = <1150000>; 8262306a36Sopenharmony_ci opp-microvolt-pcode2 = <1100000>; 8362306a36Sopenharmony_ci opp-microvolt-pcode3 = <1080000>; 8462306a36Sopenharmony_ci opp-microvolt-pcode4 = <1040000>; 8562306a36Sopenharmony_ci opp-microvolt-pcode5 = <1020000>; 8662306a36Sopenharmony_ci opp-microvolt-pcode6 = <980000>; 8762306a36Sopenharmony_ci opp-microvolt-pcode7 = <930000>; 8862306a36Sopenharmony_ci }; 8962306a36Sopenharmony_ci}; 90