Linux 5.6.13
[linux/fpc-iii.git] / arch / arm / boot / dts / rk3288-veyron-mickey.dts
blobffd1121d19bed7d5d1e3c26d3f3db3af36f778ee
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Google Veyron Mickey Rev 0 board device tree source
4  *
5  * Copyright 2015 Google, Inc
6  */
8 /dts-v1/;
9 #include "rk3288-veyron.dtsi"
10 #include "rk3288-veyron-broadcom-bluetooth.dtsi"
12 / {
13         model = "Google Mickey";
14         compatible = "google,veyron-mickey-rev8", "google,veyron-mickey-rev7",
15                      "google,veyron-mickey-rev6", "google,veyron-mickey-rev5",
16                      "google,veyron-mickey-rev4", "google,veyron-mickey-rev3",
17                      "google,veyron-mickey-rev2", "google,veyron-mickey-rev1",
18                      "google,veyron-mickey-rev0", "google,veyron-mickey",
19                      "google,veyron", "rockchip,rk3288";
21         vcc_5v: vcc-5v {
22                 vin-supply = <&vcc33_sys>;
23         };
25         vcc33_io: vcc33_io {
26                 compatible = "regulator-fixed";
27                 regulator-name = "vcc33_io";
28                 regulator-always-on;
29                 regulator-boot-on;
30                 vin-supply = <&vcc33_sys>;
31         };
33         sound {
34                 compatible = "rockchip,rockchip-audio-max98090";
35                 rockchip,model = "VEYRON-HDMI";
36                 rockchip,hdmi-codec = <&hdmi>;
37                 rockchip,i2s-controller = <&i2s>;
38         };
41 &cpu_thermal {
42         /delete-node/ trips;
43         /delete-node/ cooling-maps;
45         trips {
46                 cpu_alert_almost_warm: cpu_alert_almost_warm {
47                         temperature = <63000>; /* millicelsius */
48                         hysteresis = <2000>; /* millicelsius */
49                         type = "passive";
50                 };
51                 cpu_alert_warm: cpu_alert_warm {
52                         temperature = <65000>; /* millicelsius */
53                         hysteresis = <2000>; /* millicelsius */
54                         type = "passive";
55                 };
56                 cpu_alert_almost_hot: cpu_alert_almost_hot {
57                         temperature = <80000>; /* millicelsius */
58                         hysteresis = <2000>; /* millicelsius */
59                         type = "passive";
60                 };
61                 cpu_alert_hot: cpu_alert_hot {
62                         temperature = <82000>; /* millicelsius */
63                         hysteresis = <2000>; /* millicelsius */
64                         type = "passive";
65                 };
66                 cpu_alert_hotter: cpu_alert_hotter {
67                         temperature = <84000>; /* millicelsius */
68                         hysteresis = <2000>; /* millicelsius */
69                         type = "passive";
70                 };
71                 cpu_alert_very_hot: cpu_alert_very_hot {
72                         temperature = <85000>; /* millicelsius */
73                         hysteresis = <2000>; /* millicelsius */
74                         type = "passive";
75                 };
76                 cpu_crit: cpu_crit {
77                         temperature = <90000>; /* millicelsius */
78                         hysteresis = <2000>; /* millicelsius */
79                         type = "critical";
80                 };
81         };
83         cooling-maps {
84                 /*
85                  * After 1st level, throttle the CPU down to as low as 1.4 GHz
86                  * and don't let the GPU go faster than 400 MHz.
87                  */
88                 cpu_warm_limit_cpu {
89                         trip = <&cpu_alert_warm>;
90                         cooling-device = <&cpu0 THERMAL_NO_LIMIT 4>,
91                                          <&cpu1 THERMAL_NO_LIMIT 4>,
92                                          <&cpu2 THERMAL_NO_LIMIT 4>,
93                                          <&cpu3 THERMAL_NO_LIMIT 4>;
94                 };
95                 cpu_warm_limit_gpu {
96                         trip = <&cpu_alert_warm>;
97                         cooling-device = <&gpu 1 1>;
98                 };
100                 /*
101                  * Add some discrete steps to help throttling system deal
102                  * with the fact that there are two passive cooling devices:
103                  * the CPU and the GPU.
104                  *
105                  * - 1.2 GHz - 1.0 GHz (almost hot)
106                  * - 800 MHz           (hot)
107                  * - 800 MHz - 696 MHz (hotter)
108                  * - 696 MHz - min     (very hot)
109                  *
110                  * Note:
111                  * - 800 MHz appears to be a "sweet spot" for me.  I can run
112                  *   some pretty serious workload here and be happy.
113                  * - After 696 MHz we stop lowering voltage, so throttling
114                  *   past there is less effective.
115                  */
116                 cpu_almost_hot_limit_cpu {
117                         trip = <&cpu_alert_almost_hot>;
118                         cooling-device = <&cpu0 5 6>, <&cpu1 5 6>, <&cpu2 5 6>,
119                                          <&cpu3 5 6>;
120                 };
121                 cpu_hot_limit_cpu {
122                         trip = <&cpu_alert_hot>;
123                         cooling-device = <&cpu0 7 7>, <&cpu1 7 7>, <&cpu2 7 7>,
124                                          <&cpu3 7 7>;
125                 };
126                 cpu_hotter_limit_cpu {
127                         trip = <&cpu_alert_hotter>;
128                         cooling-device = <&cpu0 7 8>, <&cpu1 7 8>, <&cpu2 7 8>,
129                                          <&cpu3 7 8>;
130                 };
131                 cpu_very_hot_limit_cpu {
132                         trip = <&cpu_alert_very_hot>;
133                         cooling-device = <&cpu0 8 THERMAL_NO_LIMIT>,
134                                          <&cpu1 8 THERMAL_NO_LIMIT>,
135                                          <&cpu2 8 THERMAL_NO_LIMIT>,
136                                          <&cpu3 8 THERMAL_NO_LIMIT>;
137                 };
139                 /* At very hot, don't let GPU go over 300 MHz */
140                 cpu_very_hot_limit_gpu {
141                         trip = <&cpu_alert_very_hot>;
142                         cooling-device = <&gpu 2 2>;
143                 };
144         };
147 &gpu_thermal {
148         /delete-node/ trips;
149         /delete-node/ cooling-maps;
151         trips {
152                 gpu_alert_warmish: gpu_alert_warmish {
153                         temperature = <60000>; /* millicelsius */
154                         hysteresis = <2000>; /* millicelsius */
155                         type = "passive";
156                 };
157                 gpu_alert_warm: gpu_alert_warm {
158                         temperature = <65000>; /* millicelsius */
159                         hysteresis = <2000>; /* millicelsius */
160                         type = "passive";
161                 };
162                 gpu_alert_hotter: gpu_alert_hotter {
163                         temperature = <84000>; /* millicelsius */
164                         hysteresis = <2000>; /* millicelsius */
165                         type = "passive";
166                 };
167                 gpu_alert_very_very_hot: gpu_alert_very_very_hot {
168                         temperature = <86000>; /* millicelsius */
169                         hysteresis = <2000>; /* millicelsius */
170                         type = "passive";
171                 };
172                 gpu_crit: gpu_crit {
173                         temperature = <90000>; /* millicelsius */
174                         hysteresis = <2000>; /* millicelsius */
175                         type = "critical";
176                 };
177         };
179         cooling-maps {
180                 /* After 1st level throttle the GPU down to as low as 400 MHz */
181                 gpu_warmish_limit_gpu {
182                         trip = <&gpu_alert_warmish>;
183                         cooling-device = <&gpu THERMAL_NO_LIMIT 1>;
184                 };
186                 /*
187                  * Slightly after we throttle the GPU, we'll also make sure that
188                  * the CPU can't go faster than 1.4 GHz.  Note that we won't
189                  * throttle the CPU lower than 1.4 GHz due to GPU heat--we'll
190                  * let the CPU do the rest itself.
191                  */
192                 gpu_warm_limit_cpu {
193                         trip = <&gpu_alert_warm>;
194                         cooling-device = <&cpu0 4 4>,
195                                          <&cpu1 4 4>,
196                                          <&cpu2 4 4>,
197                                          <&cpu3 4 4>;
198                 };
200                 /* When hot, GPU goes down to 300 MHz */
201                 gpu_hotter_limit_gpu {
202                         trip = <&gpu_alert_hotter>;
203                         cooling-device = <&gpu 2 2>;
204                 };
206                 /* When really hot, don't let GPU go _above_ 300 MHz */
207                 gpu_very_very_hot_limit_gpu {
208                         trip = <&gpu_alert_very_very_hot>;
209                         cooling-device = <&gpu 2 THERMAL_NO_LIMIT>;
210                 };
211         };
214 &i2c2 {
215         status = "disabled";
218 &i2c4 {
219         status = "disabled";
222 &i2s {
223         status = "okay";
226 &rk808 {
227         pinctrl-names = "default";
228         pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>;
229         dvs-gpios = <&gpio7 RK_PB4 GPIO_ACTIVE_HIGH>,
230                     <&gpio7 RK_PB7 GPIO_ACTIVE_HIGH>;
232         /delete-property/ vcc6-supply;
233         /delete-property/ vcc12-supply;
235         vcc11-supply = <&vcc33_sys>;
237         regulators {
238                 /* vcc33_io is sourced directly from vcc33_sys */
239                 /delete-node/ LDO_REG1;
240                 /delete-node/ LDO_REG7;
242                 /* This is not a pwren anymore, but the real power supply */
243                 vdd10_lcd: LDO_REG7 {
244                         regulator-always-on;
245                         regulator-boot-on;
246                         regulator-min-microvolt = <1000000>;
247                         regulator-max-microvolt = <1000000>;
248                         regulator-name = "vdd10_lcd";
249                         regulator-suspend-mem-disabled;
250                 };
252                 vcc18_lcd: LDO_REG8 {
253                         regulator-always-on;
254                         regulator-boot-on;
255                         regulator-min-microvolt = <1800000>;
256                         regulator-max-microvolt = <1800000>;
257                         regulator-name = "vcc18_lcd";
258                         regulator-suspend-mem-disabled;
259                 };
260         };
263 &gpio0 {
264         gpio-line-names = "PMIC_SLEEP_AP",
265                           "",
266                           "",
267                           "",
268                           "PMIC_INT_L",
269                           "POWER_BUTTON_L",
270                           "",
271                           "",
273                           "",
274                           /*
275                            * RECOVERY_SW_L is Chrome OS ABI.  Schematics call
276                            * it REC_MODE_L.
277                            */
278                           "RECOVERY_SW_L",
279                           "OT_RESET",
280                           "",
281                           "",
282                           "AP_WARM_RESET_H",
283                           "",
284                           "I2C0_SDA_PMIC",
286                           "I2C0_SCL_PMIC",
287                           "",
288                           "nFALUT";
291 &gpio2 {
292         gpio-line-names = "CONFIG0",
293                           "CONFIG1",
294                           "CONFIG2",
295                           "",
296                           "",
297                           "",
298                           "",
299                           "CONFIG3",
301                           "",
302                           "EMMC_RST_L";
305 &gpio3 {
306         gpio-line-names = "FLASH0_D0",
307                           "FLASH0_D1",
308                           "FLASH0_D2",
309                           "FLASH0_D3",
310                           "FLASH0_D4",
311                           "FLASH0_D5",
312                           "FLASH0_D6",
313                           "FLASH0_D7",
315                           "",
316                           "",
317                           "",
318                           "",
319                           "",
320                           "",
321                           "",
322                           "",
324                           "FLASH0_CS2/EMMC_CMD",
325                           "",
326                           "FLASH0_DQS/EMMC_CLKO";
329 &gpio4 {
330         gpio-line-names = "",
331                           "",
332                           "",
333                           "",
334                           "",
335                           "",
336                           "",
337                           "",
339                           "",
340                           "",
341                           "",
342                           "",
343                           "",
344                           "",
345                           "",
346                           "",
348                           "UART0_RXD",
349                           "UART0_TXD",
350                           "UART0_CTS_L",
351                           "UART0_RTS_L",
352                           "SDIO0_D0",
353                           "SDIO0_D1",
354                           "SDIO0_D2",
355                           "SDIO0_D3",
357                           "SDIO0_CMD",
358                           "SDIO0_CLK",
359                           "BT_DEV_WAKE",
360                           "",
361                           "WIFI_ENABLE_H",
362                           "BT_ENABLE_L",
363                           "WIFI_HOST_WAKE",
364                           "BT_HOST_WAKE";
367 &gpio7 {
368         gpio-line-names = "",
369                           "PWM_LOG",
370                           "",
371                           "",
372                           "TPM_INT_H",
373                           "SDMMC_DET_L",
374                           /*
375                            * AP_FLASH_WP_L is Chrome OS ABI.  Schematics call
376                            * it FW_WP_AP.
377                            */
378                           "AP_FLASH_WP_L",
379                           "",
381                           "CPU_NMI",
382                           "DVSOK",
383                           "HDMI_WAKE",
384                           "POWER_HDMI_ON",
385                           "DVS1",
386                           "",
387                           "",
388                           "DVS2",
390                           "HDMI_CEC",
391                           "",
392                           "",
393                           "I2C5_SDA_HDMI",
394                           "I2C5_SCL_HDMI",
395                           "",
396                           "UART2_RXD",
397                           "UART2_TXD";
400 &gpio8 {
401         gpio-line-names = "RAM_ID0",
402                           "RAM_ID1",
403                           "RAM_ID2",
404                           "RAM_ID3",
405                           "I2C1_SDA_TPM",
406                           "I2C1_SCL_TPM",
407                           "SPI2_CLK",
408                           "SPI2_CS0",
410                           "SPI2_RXD",
411                           "SPI2_TXD";
414 &pinctrl {
415         pinctrl-names = "default";
416         pinctrl-0 = <
417                 /* Common for sleep and wake, but no owners */
418                 &ddr0_retention
419                 &ddrio_pwroff
420                 &global_pwroff
421         >;
423         hdmi {
424                 power_hdmi_on: power-hdmi-on {
425                         rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
426                 };
427         };
429         pmic {
430                 dvs_1: dvs-1 {
431                         rockchip,pins = <7 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
432                 };
434                 dvs_2: dvs-2 {
435                         rockchip,pins = <7 RK_PB7 RK_FUNC_GPIO &pcfg_pull_down>;
436                 };
437         };
440 &usb_host0_ehci {
441         status = "disabled";
444 &usb_host1 {
445         status = "disabled";
448 &vcc50_hdmi {
449         enable-active-high;
450         gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_HIGH>;
451         pinctrl-names = "default";
452         pinctrl-0 = <&power_hdmi_on>;