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