0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 /*
0003 * Google Veyron Mickey Rev 0 board device tree source
0004 *
0005 * Copyright 2015 Google, Inc
0006 */
0007
0008 /dts-v1/;
0009 #include "rk3288-veyron.dtsi"
0010 #include "rk3288-veyron-broadcom-bluetooth.dtsi"
0011
0012 / {
0013 model = "Google Mickey";
0014 compatible = "google,veyron-mickey-rev8", "google,veyron-mickey-rev7",
0015 "google,veyron-mickey-rev6", "google,veyron-mickey-rev5",
0016 "google,veyron-mickey-rev4", "google,veyron-mickey-rev3",
0017 "google,veyron-mickey-rev2", "google,veyron-mickey-rev1",
0018 "google,veyron-mickey-rev0", "google,veyron-mickey",
0019 "google,veyron", "rockchip,rk3288";
0020
0021 vcc_5v: vcc-5v {
0022 vin-supply = <&vcc33_sys>;
0023 };
0024
0025 vcc33_io: vcc33_io {
0026 compatible = "regulator-fixed";
0027 regulator-name = "vcc33_io";
0028 regulator-always-on;
0029 regulator-boot-on;
0030 vin-supply = <&vcc33_sys>;
0031 };
0032
0033 sound {
0034 compatible = "rockchip,rockchip-audio-max98090";
0035 rockchip,model = "VEYRON-HDMI";
0036 rockchip,hdmi-codec = <&hdmi>;
0037 rockchip,i2s-controller = <&i2s>;
0038 };
0039 };
0040
0041 &cpu_thermal {
0042 /delete-node/ trips;
0043 /delete-node/ cooling-maps;
0044
0045 trips {
0046 cpu_alert_almost_warm: cpu_alert_almost_warm {
0047 temperature = <63000>; /* millicelsius */
0048 hysteresis = <2000>; /* millicelsius */
0049 type = "passive";
0050 };
0051 cpu_alert_warm: cpu_alert_warm {
0052 temperature = <65000>; /* millicelsius */
0053 hysteresis = <2000>; /* millicelsius */
0054 type = "passive";
0055 };
0056 cpu_alert_almost_hot: cpu_alert_almost_hot {
0057 temperature = <80000>; /* millicelsius */
0058 hysteresis = <2000>; /* millicelsius */
0059 type = "passive";
0060 };
0061 cpu_alert_hot: cpu_alert_hot {
0062 temperature = <82000>; /* millicelsius */
0063 hysteresis = <2000>; /* millicelsius */
0064 type = "passive";
0065 };
0066 cpu_alert_hotter: cpu_alert_hotter {
0067 temperature = <84000>; /* millicelsius */
0068 hysteresis = <2000>; /* millicelsius */
0069 type = "passive";
0070 };
0071 cpu_alert_very_hot: cpu_alert_very_hot {
0072 temperature = <85000>; /* millicelsius */
0073 hysteresis = <2000>; /* millicelsius */
0074 type = "passive";
0075 };
0076 cpu_crit: cpu_crit {
0077 temperature = <90000>; /* millicelsius */
0078 hysteresis = <2000>; /* millicelsius */
0079 type = "critical";
0080 };
0081 };
0082
0083 cooling-maps {
0084 /*
0085 * After 1st level, throttle the CPU down to as low as 1.4 GHz
0086 * and don't let the GPU go faster than 400 MHz.
0087 */
0088 cpu_warm_limit_cpu {
0089 trip = <&cpu_alert_warm>;
0090 cooling-device = <&cpu0 THERMAL_NO_LIMIT 4>,
0091 <&cpu1 THERMAL_NO_LIMIT 4>,
0092 <&cpu2 THERMAL_NO_LIMIT 4>,
0093 <&cpu3 THERMAL_NO_LIMIT 4>;
0094 };
0095 cpu_warm_limit_gpu {
0096 trip = <&cpu_alert_warm>;
0097 cooling-device = <&gpu 1 1>;
0098 };
0099
0100 /*
0101 * Add some discrete steps to help throttling system deal
0102 * with the fact that there are two passive cooling devices:
0103 * the CPU and the GPU.
0104 *
0105 * - 1.2 GHz - 1.0 GHz (almost hot)
0106 * - 800 MHz (hot)
0107 * - 800 MHz - 696 MHz (hotter)
0108 * - 696 MHz - min (very hot)
0109 *
0110 * Note:
0111 * - 800 MHz appears to be a "sweet spot" for me. I can run
0112 * some pretty serious workload here and be happy.
0113 * - After 696 MHz we stop lowering voltage, so throttling
0114 * past there is less effective.
0115 */
0116 cpu_almost_hot_limit_cpu {
0117 trip = <&cpu_alert_almost_hot>;
0118 cooling-device = <&cpu0 5 6>, <&cpu1 5 6>, <&cpu2 5 6>,
0119 <&cpu3 5 6>;
0120 };
0121 cpu_hot_limit_cpu {
0122 trip = <&cpu_alert_hot>;
0123 cooling-device = <&cpu0 7 7>, <&cpu1 7 7>, <&cpu2 7 7>,
0124 <&cpu3 7 7>;
0125 };
0126 cpu_hotter_limit_cpu {
0127 trip = <&cpu_alert_hotter>;
0128 cooling-device = <&cpu0 7 8>, <&cpu1 7 8>, <&cpu2 7 8>,
0129 <&cpu3 7 8>;
0130 };
0131 cpu_very_hot_limit_cpu {
0132 trip = <&cpu_alert_very_hot>;
0133 cooling-device = <&cpu0 8 THERMAL_NO_LIMIT>,
0134 <&cpu1 8 THERMAL_NO_LIMIT>,
0135 <&cpu2 8 THERMAL_NO_LIMIT>,
0136 <&cpu3 8 THERMAL_NO_LIMIT>;
0137 };
0138
0139 /* At very hot, don't let GPU go over 300 MHz */
0140 cpu_very_hot_limit_gpu {
0141 trip = <&cpu_alert_very_hot>;
0142 cooling-device = <&gpu 2 2>;
0143 };
0144 };
0145 };
0146
0147 &gpu_thermal {
0148 /delete-node/ trips;
0149 /delete-node/ cooling-maps;
0150
0151 trips {
0152 gpu_alert_warmish: gpu_alert_warmish {
0153 temperature = <60000>; /* millicelsius */
0154 hysteresis = <2000>; /* millicelsius */
0155 type = "passive";
0156 };
0157 gpu_alert_warm: gpu_alert_warm {
0158 temperature = <65000>; /* millicelsius */
0159 hysteresis = <2000>; /* millicelsius */
0160 type = "passive";
0161 };
0162 gpu_alert_hotter: gpu_alert_hotter {
0163 temperature = <84000>; /* millicelsius */
0164 hysteresis = <2000>; /* millicelsius */
0165 type = "passive";
0166 };
0167 gpu_alert_very_very_hot: gpu_alert_very_very_hot {
0168 temperature = <86000>; /* millicelsius */
0169 hysteresis = <2000>; /* millicelsius */
0170 type = "passive";
0171 };
0172 gpu_crit: gpu_crit {
0173 temperature = <90000>; /* millicelsius */
0174 hysteresis = <2000>; /* millicelsius */
0175 type = "critical";
0176 };
0177 };
0178
0179 cooling-maps {
0180 /* After 1st level throttle the GPU down to as low as 400 MHz */
0181 gpu_warmish_limit_gpu {
0182 trip = <&gpu_alert_warmish>;
0183 cooling-device = <&gpu THERMAL_NO_LIMIT 1>;
0184 };
0185
0186 /*
0187 * Slightly after we throttle the GPU, we'll also make sure that
0188 * the CPU can't go faster than 1.4 GHz. Note that we won't
0189 * throttle the CPU lower than 1.4 GHz due to GPU heat--we'll
0190 * let the CPU do the rest itself.
0191 */
0192 gpu_warm_limit_cpu {
0193 trip = <&gpu_alert_warm>;
0194 cooling-device = <&cpu0 4 4>,
0195 <&cpu1 4 4>,
0196 <&cpu2 4 4>,
0197 <&cpu3 4 4>;
0198 };
0199
0200 /* When hot, GPU goes down to 300 MHz */
0201 gpu_hotter_limit_gpu {
0202 trip = <&gpu_alert_hotter>;
0203 cooling-device = <&gpu 2 2>;
0204 };
0205
0206 /* When really hot, don't let GPU go _above_ 300 MHz */
0207 gpu_very_very_hot_limit_gpu {
0208 trip = <&gpu_alert_very_very_hot>;
0209 cooling-device = <&gpu 2 THERMAL_NO_LIMIT>;
0210 };
0211 };
0212 };
0213
0214 &i2c2 {
0215 status = "disabled";
0216 };
0217
0218 &i2c4 {
0219 status = "disabled";
0220 };
0221
0222 &i2s {
0223 status = "okay";
0224 };
0225
0226 &rk808 {
0227 pinctrl-names = "default";
0228 pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>;
0229 dvs-gpios = <&gpio7 RK_PB4 GPIO_ACTIVE_HIGH>,
0230 <&gpio7 RK_PB7 GPIO_ACTIVE_HIGH>;
0231
0232 /delete-property/ vcc6-supply;
0233 /delete-property/ vcc12-supply;
0234
0235 vcc11-supply = <&vcc33_sys>;
0236
0237 regulators {
0238 /* vcc33_io is sourced directly from vcc33_sys */
0239 /delete-node/ LDO_REG1;
0240 /delete-node/ LDO_REG7;
0241
0242 /* This is not a pwren anymore, but the real power supply */
0243 vdd10_lcd: LDO_REG7 {
0244 regulator-always-on;
0245 regulator-boot-on;
0246 regulator-min-microvolt = <1000000>;
0247 regulator-max-microvolt = <1000000>;
0248 regulator-name = "vdd10_lcd";
0249 regulator-suspend-mem-disabled;
0250 };
0251
0252 vcc18_lcd: LDO_REG8 {
0253 regulator-always-on;
0254 regulator-boot-on;
0255 regulator-min-microvolt = <1800000>;
0256 regulator-max-microvolt = <1800000>;
0257 regulator-name = "vcc18_lcd";
0258 regulator-suspend-mem-disabled;
0259 };
0260 };
0261 };
0262
0263 &gpio0 {
0264 gpio-line-names = "PMIC_SLEEP_AP",
0265 "",
0266 "",
0267 "",
0268 "PMIC_INT_L",
0269 "POWER_BUTTON_L",
0270 "",
0271 "",
0272
0273 "",
0274 /*
0275 * RECOVERY_SW_L is Chrome OS ABI. Schematics call
0276 * it REC_MODE_L.
0277 */
0278 "RECOVERY_SW_L",
0279 "OT_RESET",
0280 "",
0281 "",
0282 "AP_WARM_RESET_H",
0283 "",
0284 "I2C0_SDA_PMIC",
0285
0286 "I2C0_SCL_PMIC",
0287 "",
0288 "nFALUT";
0289 };
0290
0291 &gpio2 {
0292 gpio-line-names = "CONFIG0",
0293 "CONFIG1",
0294 "CONFIG2",
0295 "",
0296 "",
0297 "",
0298 "",
0299 "CONFIG3",
0300
0301 "",
0302 "EMMC_RST_L";
0303 };
0304
0305 &gpio3 {
0306 gpio-line-names = "FLASH0_D0",
0307 "FLASH0_D1",
0308 "FLASH0_D2",
0309 "FLASH0_D3",
0310 "FLASH0_D4",
0311 "FLASH0_D5",
0312 "FLASH0_D6",
0313 "FLASH0_D7",
0314
0315 "",
0316 "",
0317 "",
0318 "",
0319 "",
0320 "",
0321 "",
0322 "",
0323
0324 "FLASH0_CS2/EMMC_CMD",
0325 "",
0326 "FLASH0_DQS/EMMC_CLKO";
0327 };
0328
0329 &gpio4 {
0330 gpio-line-names = "",
0331 "",
0332 "",
0333 "",
0334 "",
0335 "",
0336 "",
0337 "",
0338
0339 "",
0340 "",
0341 "",
0342 "",
0343 "",
0344 "",
0345 "",
0346 "",
0347
0348 "UART0_RXD",
0349 "UART0_TXD",
0350 "UART0_CTS_L",
0351 "UART0_RTS_L",
0352 "SDIO0_D0",
0353 "SDIO0_D1",
0354 "SDIO0_D2",
0355 "SDIO0_D3",
0356
0357 "SDIO0_CMD",
0358 "SDIO0_CLK",
0359 "BT_DEV_WAKE",
0360 "",
0361 "WIFI_ENABLE_H",
0362 "BT_ENABLE_L",
0363 "WIFI_HOST_WAKE",
0364 "BT_HOST_WAKE";
0365 };
0366
0367 &gpio7 {
0368 gpio-line-names = "",
0369 "PWM_LOG",
0370 "",
0371 "",
0372 "TPM_INT_H",
0373 "SDMMC_DET_L",
0374 /*
0375 * AP_FLASH_WP_L is Chrome OS ABI. Schematics call
0376 * it FW_WP_AP.
0377 */
0378 "AP_FLASH_WP_L",
0379 "",
0380
0381 "CPU_NMI",
0382 "DVSOK",
0383 "HDMI_WAKE",
0384 "POWER_HDMI_ON",
0385 "DVS1",
0386 "",
0387 "",
0388 "DVS2",
0389
0390 "HDMI_CEC",
0391 "",
0392 "",
0393 "I2C5_SDA_HDMI",
0394 "I2C5_SCL_HDMI",
0395 "",
0396 "UART2_RXD",
0397 "UART2_TXD";
0398 };
0399
0400 &gpio8 {
0401 gpio-line-names = "RAM_ID0",
0402 "RAM_ID1",
0403 "RAM_ID2",
0404 "RAM_ID3",
0405 "I2C1_SDA_TPM",
0406 "I2C1_SCL_TPM",
0407 "SPI2_CLK",
0408 "SPI2_CS0",
0409
0410 "SPI2_RXD",
0411 "SPI2_TXD";
0412 };
0413
0414 &pinctrl {
0415 pinctrl-names = "default";
0416 pinctrl-0 = <
0417 /* Common for sleep and wake, but no owners */
0418 &ddr0_retention
0419 &ddrio_pwroff
0420 &global_pwroff
0421 >;
0422
0423 hdmi {
0424 power_hdmi_on: power-hdmi-on {
0425 rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
0426 };
0427 };
0428
0429 pmic {
0430 dvs_1: dvs-1 {
0431 rockchip,pins = <7 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
0432 };
0433
0434 dvs_2: dvs-2 {
0435 rockchip,pins = <7 RK_PB7 RK_FUNC_GPIO &pcfg_pull_down>;
0436 };
0437 };
0438 };
0439
0440 &usb_host0_ehci {
0441 status = "disabled";
0442 };
0443
0444 &usb_host1 {
0445 status = "disabled";
0446 };
0447
0448 &vcc50_hdmi {
0449 enable-active-high;
0450 gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_HIGH>;
0451 pinctrl-names = "default";
0452 pinctrl-0 = <&power_hdmi_on>;
0453 };