Back to home page

OSCL-LXR

 
 

    


0001 Binding for ST's CPUFreq driver
0002 ===============================
0003 
0004 ST's CPUFreq driver attempts to read 'process' and 'version' attributes
0005 from the SoC, then supplies the OPP framework with 'prop' and 'supported
0006 hardware' information respectively.  The framework is then able to read
0007 the DT and operate in the usual way.
0008 
0009 Frequency Scaling only
0010 ----------------------
0011 
0012 No vendor specific driver required for this.
0013 
0014 Located in CPU's node:
0015 
0016 - operating-points              : [See: ../power/opp-v1.yaml]
0017 
0018 Example [safe]
0019 --------------
0020 
0021 cpus {
0022         cpu@0 {
0023                                  /* kHz     uV   */
0024                 operating-points = <1500000 0
0025                                     1200000 0
0026                                     800000  0
0027                                     500000  0>;
0028         };
0029 };
0030 
0031 Dynamic Voltage and Frequency Scaling (DVFS)
0032 --------------------------------------------
0033 
0034 This requires the ST CPUFreq driver to supply 'process' and 'version' info.
0035 
0036 Located in CPU's node:
0037 
0038 - operating-points-v2           : [See ../power/opp-v2.yaml]
0039 
0040 Example [unsafe]
0041 ----------------
0042 
0043 cpus {
0044         cpu@0 {
0045                 operating-points-v2     = <&cpu0_opp_table>;
0046         };
0047 };
0048 
0049 cpu0_opp_table: opp_table {
0050         compatible = "operating-points-v2";
0051 
0052         /* ############################################################### */
0053         /* # WARNING: Do not attempt to copy/replicate these nodes,      # */
0054         /* #          they are only to be supplied by the bootloader !!! # */
0055         /* ############################################################### */
0056         opp0 {
0057                 /*                         Major       Minor       Substrate */
0058                 /*                         2           all         all       */
0059                 opp-supported-hw        = <0x00000004  0xffffffff  0xffffffff>;
0060                 opp-hz                  = /bits/ 64 <1500000000>;
0061                 clock-latency-ns        = <10000000>;
0062 
0063                 opp-microvolt-pcode0    = <1200000>;
0064                 opp-microvolt-pcode1    = <1200000>;
0065                 opp-microvolt-pcode2    = <1200000>;
0066                 opp-microvolt-pcode3    = <1200000>;
0067                 opp-microvolt-pcode4    = <1170000>;
0068                 opp-microvolt-pcode5    = <1140000>;
0069                 opp-microvolt-pcode6    = <1100000>;
0070                 opp-microvolt-pcode7    = <1070000>;
0071         };
0072 
0073         opp1 {
0074                 /*                         Major       Minor       Substrate */
0075                 /*                         all         all         all       */
0076                 opp-supported-hw        = <0xffffffff  0xffffffff  0xffffffff>;
0077                 opp-hz                  = /bits/ 64 <1200000000>;
0078                 clock-latency-ns        = <10000000>;
0079 
0080                 opp-microvolt-pcode0    = <1110000>;
0081                 opp-microvolt-pcode1    = <1150000>;
0082                 opp-microvolt-pcode2    = <1100000>;
0083                 opp-microvolt-pcode3    = <1080000>;
0084                 opp-microvolt-pcode4    = <1040000>;
0085                 opp-microvolt-pcode5    = <1020000>;
0086                 opp-microvolt-pcode6    = <980000>;
0087                 opp-microvolt-pcode7    = <930000>;
0088         };
0089 };