Merge branches 'pm-cpufreq', 'pm-sleep' and 'pm-em'
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / qcom / sdm660.dtsi
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (c) 2018, Craig Tatlor.
4  * Copyright (c) 2020, Alexey Minnekhanov <alexey.min@gmail.com>
5  * Copyright (c) 2020, AngeloGioacchino Del Regno <kholk11@gmail.com>
6  * Copyright (c) 2020, Konrad Dybcio <konradybcio@gmail.com>
7  * Copyright (c) 2020, Martin Botka <martin.botka1@gmail.com>
8  */
9
10 #include "sdm630.dtsi"
11
12 &adreno_gpu {
13         compatible = "qcom,adreno-512.0", "qcom,adreno";
14         operating-points-v2 = <&gpu_sdm660_opp_table>;
15
16         gpu_sdm660_opp_table: opp-table {
17                 compatible  = "operating-points-v2";
18
19                 /*
20                  * 775MHz is only available on the highest speed bin
21                  * Though it cannot be used for now due to interconnect
22                  * framework not supporting multiple frequencies
23                  * at the same opp-level
24
25                 opp-750000000 {
26                         opp-hz = /bits/ 64 <750000000>;
27                         opp-level = <RPM_SMD_LEVEL_TURBO>;
28                         opp-peak-kBps = <5412000>;
29                         opp-supported-hw = <0xCHECKME>;
30                 };
31
32                 * These OPPs are correct, but we are lacking support for the
33                 * GPU regulator. Hence, disable them for now to prevent the
34                 * platform from hanging on high graphics loads.
35
36                 opp-700000000 {
37                         opp-hz = /bits/ 64 <700000000>;
38                         opp-level = <RPM_SMD_LEVEL_TURBO>;
39                         opp-peak-kBps = <5184000>;
40                         opp-supported-hw = <0xFF>;
41                 };
42
43                 opp-647000000 {
44                         opp-hz = /bits/ 64 <647000000>;
45                         opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
46                         opp-peak-kBps = <4068000>;
47                         opp-supported-hw = <0xFF>;
48                 };
49
50                 opp-588000000 {
51                         opp-hz = /bits/ 64 <588000000>;
52                         opp-level = <RPM_SMD_LEVEL_NOM>;
53                         opp-peak-kBps = <3072000>;
54                         opp-supported-hw = <0xFF>;
55                 };
56
57                 opp-465000000 {
58                         opp-hz = /bits/ 64 <465000000>;
59                         opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
60                         opp-peak-kBps = <2724000>;
61                         opp-supported-hw = <0xFF>;
62                 };
63
64                 opp-370000000 {
65                         opp-hz = /bits/ 64 <370000000>;
66                         opp-level = <RPM_SMD_LEVEL_SVS>;
67                         opp-peak-kBps = <2188000>;
68                         opp-supported-hw = <0xFF>;
69                 };
70                 */
71
72                 opp-266000000 {
73                         opp-hz = /bits/ 64 <266000000>;
74                         opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
75                         opp-peak-kBps = <1648000>;
76                         opp-supported-hw = <0xFF>;
77                 };
78
79                 opp-160000000 {
80                         opp-hz = /bits/ 64 <160000000>;
81                         opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
82                         opp-peak-kBps = <1200000>;
83                         opp-supported-hw = <0xFF>;
84                 };
85         };
86 };
87
88 &CPU0 {
89         compatible = "qcom,kryo260";
90         capacity-dmips-mhz = <1024>;
91         /delete-property/ operating-points-v2;
92 };
93
94 &CPU1 {
95         compatible = "qcom,kryo260";
96         capacity-dmips-mhz = <1024>;
97         /delete-property/ operating-points-v2;
98 };
99
100 &CPU2 {
101         compatible = "qcom,kryo260";
102         capacity-dmips-mhz = <1024>;
103         /delete-property/ operating-points-v2;
104 };
105
106 &CPU3 {
107         compatible = "qcom,kryo260";
108         capacity-dmips-mhz = <1024>;
109         /delete-property/ operating-points-v2;
110 };
111
112 &CPU4 {
113         compatible = "qcom,kryo260";
114         capacity-dmips-mhz = <640>;
115         /delete-property/ operating-points-v2;
116 };
117
118 &CPU5 {
119         compatible = "qcom,kryo260";
120         capacity-dmips-mhz = <640>;
121         /delete-property/ operating-points-v2;
122 };
123
124 &CPU6 {
125         compatible = "qcom,kryo260";
126         capacity-dmips-mhz = <640>;
127         /delete-property/ operating-points-v2;
128 };
129
130 &CPU7 {
131         compatible = "qcom,kryo260";
132         capacity-dmips-mhz = <640>;
133         /delete-property/ operating-points-v2;
134 };
135
136 &gcc {
137         compatible = "qcom,gcc-sdm660";
138 };
139
140 &gpucc {
141         compatible = "qcom,gpucc-sdm660";
142 };
143
144 &mdp {
145         ports {
146                 port@1 {
147                         reg = <1>;
148                         mdp5_intf2_out: endpoint {
149                                 remote-endpoint = <&dsi1_in>;
150                         };
151                 };
152         };
153 };
154
155 &mdss {
156         dsi1: dsi@c996000 {
157                 compatible = "qcom,mdss-dsi-ctrl";
158                 reg = <0x0c996000 0x400>;
159                 reg-names = "dsi_ctrl";
160
161                 /* DSI1 shares the OPP table with DSI0 */
162                 operating-points-v2 = <&dsi_opp_table>;
163                 power-domains = <&rpmpd SDM660_VDDCX>;
164
165                 interrupt-parent = <&mdss>;
166                 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
167
168                 assigned-clocks = <&mmcc BYTE1_CLK_SRC>,
169                                         <&mmcc PCLK1_CLK_SRC>;
170                 assigned-clock-parents = <&dsi1_phy 0>,
171                                                 <&dsi1_phy 1>;
172
173                 clocks = <&mmcc MDSS_MDP_CLK>,
174                                 <&mmcc MDSS_BYTE1_CLK>,
175                                 <&mmcc MDSS_BYTE1_INTF_CLK>,
176                                 <&mmcc MNOC_AHB_CLK>,
177                                 <&mmcc MDSS_AHB_CLK>,
178                                 <&mmcc MDSS_AXI_CLK>,
179                                 <&mmcc MISC_AHB_CLK>,
180                                 <&mmcc MDSS_PCLK1_CLK>,
181                                 <&mmcc MDSS_ESC1_CLK>;
182                 clock-names = "mdp_core",
183                                         "byte",
184                                         "byte_intf",
185                                         "mnoc",
186                                         "iface",
187                                         "bus",
188                                         "core_mmss",
189                                         "pixel",
190                                         "core";
191
192                 phys = <&dsi1_phy>;
193                 phy-names = "dsi";
194
195                 ports {
196                         #address-cells = <1>;
197                         #size-cells = <0>;
198
199                         port@0 {
200                                 reg = <0>;
201                                 dsi1_in: endpoint {
202                                         remote-endpoint = <&mdp5_intf2_out>;
203                                 };
204                         };
205
206                         port@1 {
207                                 reg = <1>;
208                                 dsi1_out: endpoint {
209                                 };
210                         };
211                 };
212         };
213
214         dsi1_phy: dsi-phy@c996400 {
215                 compatible = "qcom,dsi-phy-14nm-660";
216                 reg = <0x0c996400 0x100>,
217                                 <0x0c996500 0x300>,
218                                 <0x0c996800 0x188>;
219                 reg-names = "dsi_phy",
220                                 "dsi_phy_lane",
221                                 "dsi_pll";
222
223                 #clock-cells = <1>;
224                 #phy-cells = <0>;
225
226                 clocks = <&mmcc MDSS_AHB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
227                 clock-names = "iface", "ref";
228         };
229 };
230
231 &mmcc {
232         compatible = "qcom,mmcc-sdm660";
233         clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
234                         <&sleep_clk>,
235                         <&gcc GCC_MMSS_GPLL0_CLK>,
236                         <&gcc GCC_MMSS_GPLL0_DIV_CLK>,
237                         <&dsi0_phy 1>,
238                         <&dsi0_phy 0>,
239                         <&dsi1_phy 1>,
240                         <&dsi1_phy 0>,
241                         <0>,
242                         <0>;
243 };
244
245 &tlmm {
246         compatible = "qcom,sdm660-pinctrl";
247 };
248
249 &tsens {
250         #qcom,sensors = <14>;
251 };