18c2ecf20Sopenharmony_ciBinding for ST's CPUFreq driver 28c2ecf20Sopenharmony_ci=============================== 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ciST's CPUFreq driver attempts to read 'process' and 'version' attributes 58c2ecf20Sopenharmony_cifrom the SoC, then supplies the OPP framework with 'prop' and 'supported 68c2ecf20Sopenharmony_cihardware' information respectively. The framework is then able to read 78c2ecf20Sopenharmony_cithe DT and operate in the usual way. 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ciFor more information about the expected DT format [See: ../opp/opp.txt]. 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ciFrequency Scaling only 128c2ecf20Sopenharmony_ci---------------------- 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciNo vendor specific driver required for this. 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ciLocated in CPU's node: 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci- operating-points : [See: ../power/opp.txt] 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ciExample [safe] 218c2ecf20Sopenharmony_ci-------------- 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_cicpus { 248c2ecf20Sopenharmony_ci cpu@0 { 258c2ecf20Sopenharmony_ci /* kHz uV */ 268c2ecf20Sopenharmony_ci operating-points = <1500000 0 278c2ecf20Sopenharmony_ci 1200000 0 288c2ecf20Sopenharmony_ci 800000 0 298c2ecf20Sopenharmony_ci 500000 0>; 308c2ecf20Sopenharmony_ci }; 318c2ecf20Sopenharmony_ci}; 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ciDynamic Voltage and Frequency Scaling (DVFS) 348c2ecf20Sopenharmony_ci-------------------------------------------- 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ciThis requires the ST CPUFreq driver to supply 'process' and 'version' info. 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ciLocated in CPU's node: 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci- operating-points-v2 : [See ../power/opp.txt] 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ciExample [unsafe] 438c2ecf20Sopenharmony_ci---------------- 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_cicpus { 468c2ecf20Sopenharmony_ci cpu@0 { 478c2ecf20Sopenharmony_ci operating-points-v2 = <&cpu0_opp_table>; 488c2ecf20Sopenharmony_ci }; 498c2ecf20Sopenharmony_ci}; 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_cicpu0_opp_table: opp_table { 528c2ecf20Sopenharmony_ci compatible = "operating-points-v2"; 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci /* ############################################################### */ 558c2ecf20Sopenharmony_ci /* # WARNING: Do not attempt to copy/replicate these nodes, # */ 568c2ecf20Sopenharmony_ci /* # they are only to be supplied by the bootloader !!! # */ 578c2ecf20Sopenharmony_ci /* ############################################################### */ 588c2ecf20Sopenharmony_ci opp0 { 598c2ecf20Sopenharmony_ci /* Major Minor Substrate */ 608c2ecf20Sopenharmony_ci /* 2 all all */ 618c2ecf20Sopenharmony_ci opp-supported-hw = <0x00000004 0xffffffff 0xffffffff>; 628c2ecf20Sopenharmony_ci opp-hz = /bits/ 64 <1500000000>; 638c2ecf20Sopenharmony_ci clock-latency-ns = <10000000>; 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci opp-microvolt-pcode0 = <1200000>; 668c2ecf20Sopenharmony_ci opp-microvolt-pcode1 = <1200000>; 678c2ecf20Sopenharmony_ci opp-microvolt-pcode2 = <1200000>; 688c2ecf20Sopenharmony_ci opp-microvolt-pcode3 = <1200000>; 698c2ecf20Sopenharmony_ci opp-microvolt-pcode4 = <1170000>; 708c2ecf20Sopenharmony_ci opp-microvolt-pcode5 = <1140000>; 718c2ecf20Sopenharmony_ci opp-microvolt-pcode6 = <1100000>; 728c2ecf20Sopenharmony_ci opp-microvolt-pcode7 = <1070000>; 738c2ecf20Sopenharmony_ci }; 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci opp1 { 768c2ecf20Sopenharmony_ci /* Major Minor Substrate */ 778c2ecf20Sopenharmony_ci /* all all all */ 788c2ecf20Sopenharmony_ci opp-supported-hw = <0xffffffff 0xffffffff 0xffffffff>; 798c2ecf20Sopenharmony_ci opp-hz = /bits/ 64 <1200000000>; 808c2ecf20Sopenharmony_ci clock-latency-ns = <10000000>; 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ci opp-microvolt-pcode0 = <1110000>; 838c2ecf20Sopenharmony_ci opp-microvolt-pcode1 = <1150000>; 848c2ecf20Sopenharmony_ci opp-microvolt-pcode2 = <1100000>; 858c2ecf20Sopenharmony_ci opp-microvolt-pcode3 = <1080000>; 868c2ecf20Sopenharmony_ci opp-microvolt-pcode4 = <1040000>; 878c2ecf20Sopenharmony_ci opp-microvolt-pcode5 = <1020000>; 888c2ecf20Sopenharmony_ci opp-microvolt-pcode6 = <980000>; 898c2ecf20Sopenharmony_ci opp-microvolt-pcode7 = <930000>; 908c2ecf20Sopenharmony_ci }; 918c2ecf20Sopenharmony_ci}; 92