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