1b122bcd9SLee JonesBinding for ST's CPUFreq driver 2b122bcd9SLee Jones=============================== 3b122bcd9SLee Jones 4b122bcd9SLee JonesST's CPUFreq driver attempts to read 'process' and 'version' attributes 5b122bcd9SLee Jonesfrom the SoC, then supplies the OPP framework with 'prop' and 'supported 6b122bcd9SLee Joneshardware' information respectively. The framework is then able to read 7b122bcd9SLee Jonesthe DT and operate in the usual way. 8b122bcd9SLee Jones 9b122bcd9SLee JonesFrequency Scaling only 10b122bcd9SLee Jones---------------------- 11b122bcd9SLee Jones 12b122bcd9SLee JonesNo vendor specific driver required for this. 13b122bcd9SLee Jones 14b122bcd9SLee JonesLocated in CPU's node: 15b122bcd9SLee Jones 16*94274f20SRob Herring- operating-points : [See: ../power/opp-v1.yaml] 17b122bcd9SLee Jones 18b122bcd9SLee JonesExample [safe] 19b122bcd9SLee Jones-------------- 20b122bcd9SLee Jones 21b122bcd9SLee Jonescpus { 22b122bcd9SLee Jones cpu@0 { 23b122bcd9SLee Jones /* kHz uV */ 24b122bcd9SLee Jones operating-points = <1500000 0 25b122bcd9SLee Jones 1200000 0 26b122bcd9SLee Jones 800000 0 27b122bcd9SLee Jones 500000 0>; 28b122bcd9SLee Jones }; 29b122bcd9SLee Jones}; 30b122bcd9SLee Jones 31b122bcd9SLee JonesDynamic Voltage and Frequency Scaling (DVFS) 32b122bcd9SLee Jones-------------------------------------------- 33b122bcd9SLee Jones 34b122bcd9SLee JonesThis requires the ST CPUFreq driver to supply 'process' and 'version' info. 35b122bcd9SLee Jones 36b122bcd9SLee JonesLocated in CPU's node: 37b122bcd9SLee Jones 38*94274f20SRob Herring- operating-points-v2 : [See ../power/opp-v2.yaml] 39b122bcd9SLee Jones 40b122bcd9SLee JonesExample [unsafe] 41b122bcd9SLee Jones---------------- 42b122bcd9SLee Jones 43b122bcd9SLee Jonescpus { 44b122bcd9SLee Jones cpu@0 { 45b122bcd9SLee Jones operating-points-v2 = <&cpu0_opp_table>; 46b122bcd9SLee Jones }; 47b122bcd9SLee Jones}; 48b122bcd9SLee Jones 49b122bcd9SLee Jonescpu0_opp_table: opp_table { 50b122bcd9SLee Jones compatible = "operating-points-v2"; 51b122bcd9SLee Jones 52b122bcd9SLee Jones /* ############################################################### */ 53b122bcd9SLee Jones /* # WARNING: Do not attempt to copy/replicate these nodes, # */ 54b122bcd9SLee Jones /* # they are only to be supplied by the bootloader !!! # */ 55b122bcd9SLee Jones /* ############################################################### */ 56b122bcd9SLee Jones opp0 { 57b122bcd9SLee Jones /* Major Minor Substrate */ 58b122bcd9SLee Jones /* 2 all all */ 59b122bcd9SLee Jones opp-supported-hw = <0x00000004 0xffffffff 0xffffffff>; 60b122bcd9SLee Jones opp-hz = /bits/ 64 <1500000000>; 61b122bcd9SLee Jones clock-latency-ns = <10000000>; 62b122bcd9SLee Jones 63b122bcd9SLee Jones opp-microvolt-pcode0 = <1200000>; 64b122bcd9SLee Jones opp-microvolt-pcode1 = <1200000>; 65b122bcd9SLee Jones opp-microvolt-pcode2 = <1200000>; 66b122bcd9SLee Jones opp-microvolt-pcode3 = <1200000>; 67b122bcd9SLee Jones opp-microvolt-pcode4 = <1170000>; 68b122bcd9SLee Jones opp-microvolt-pcode5 = <1140000>; 69b122bcd9SLee Jones opp-microvolt-pcode6 = <1100000>; 70b122bcd9SLee Jones opp-microvolt-pcode7 = <1070000>; 71b122bcd9SLee Jones }; 72b122bcd9SLee Jones 73b122bcd9SLee Jones opp1 { 74b122bcd9SLee Jones /* Major Minor Substrate */ 75b122bcd9SLee Jones /* all all all */ 76b122bcd9SLee Jones opp-supported-hw = <0xffffffff 0xffffffff 0xffffffff>; 77b122bcd9SLee Jones opp-hz = /bits/ 64 <1200000000>; 78b122bcd9SLee Jones clock-latency-ns = <10000000>; 79b122bcd9SLee Jones 80b122bcd9SLee Jones opp-microvolt-pcode0 = <1110000>; 81b122bcd9SLee Jones opp-microvolt-pcode1 = <1150000>; 82b122bcd9SLee Jones opp-microvolt-pcode2 = <1100000>; 83b122bcd9SLee Jones opp-microvolt-pcode3 = <1080000>; 84b122bcd9SLee Jones opp-microvolt-pcode4 = <1040000>; 85b122bcd9SLee Jones opp-microvolt-pcode5 = <1020000>; 86b122bcd9SLee Jones opp-microvolt-pcode6 = <980000>; 87b122bcd9SLee Jones opp-microvolt-pcode7 = <930000>; 88b122bcd9SLee Jones }; 89b122bcd9SLee Jones}; 90