1724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2724ba675SRob Herring/* 3724ba675SRob Herring * Google Veyron Mickey Rev 0 board device tree source 4724ba675SRob Herring * 5724ba675SRob Herring * Copyright 2015 Google, Inc 6724ba675SRob Herring */ 7724ba675SRob Herring 8724ba675SRob Herring/dts-v1/; 9724ba675SRob Herring#include "rk3288-veyron.dtsi" 10724ba675SRob Herring#include "rk3288-veyron-broadcom-bluetooth.dtsi" 11724ba675SRob Herring 12724ba675SRob Herring/ { 13724ba675SRob Herring model = "Google Mickey"; 14724ba675SRob Herring compatible = "google,veyron-mickey-rev8", "google,veyron-mickey-rev7", 15724ba675SRob Herring "google,veyron-mickey-rev6", "google,veyron-mickey-rev5", 16724ba675SRob Herring "google,veyron-mickey-rev4", "google,veyron-mickey-rev3", 17724ba675SRob Herring "google,veyron-mickey-rev2", "google,veyron-mickey-rev1", 18724ba675SRob Herring "google,veyron-mickey-rev0", "google,veyron-mickey", 19724ba675SRob Herring "google,veyron", "rockchip,rk3288"; 20724ba675SRob Herring 21*2c3944d9SJohan Jonker vcc_5v: regulator-vcc-5v { 22724ba675SRob Herring vin-supply = <&vcc33_sys>; 23724ba675SRob Herring }; 24724ba675SRob Herring 25*2c3944d9SJohan Jonker vcc33_io: regulator-vcc33-io { 26724ba675SRob Herring compatible = "regulator-fixed"; 27724ba675SRob Herring regulator-name = "vcc33_io"; 28724ba675SRob Herring regulator-always-on; 29724ba675SRob Herring regulator-boot-on; 30724ba675SRob Herring vin-supply = <&vcc33_sys>; 31724ba675SRob Herring }; 32724ba675SRob Herring 33724ba675SRob Herring sound { 34724ba675SRob Herring compatible = "rockchip,rockchip-audio-max98090"; 35724ba675SRob Herring rockchip,model = "VEYRON-HDMI"; 36724ba675SRob Herring rockchip,hdmi-codec = <&hdmi>; 37724ba675SRob Herring rockchip,i2s-controller = <&i2s>; 38724ba675SRob Herring }; 39724ba675SRob Herring}; 40724ba675SRob Herring 41724ba675SRob Herring&cpu_thermal { 42724ba675SRob Herring /delete-node/ trips; 43724ba675SRob Herring /delete-node/ cooling-maps; 44724ba675SRob Herring 45724ba675SRob Herring trips { 46724ba675SRob Herring cpu_alert_almost_warm: cpu_alert_almost_warm { 47724ba675SRob Herring temperature = <63000>; /* millicelsius */ 48724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 49724ba675SRob Herring type = "passive"; 50724ba675SRob Herring }; 51724ba675SRob Herring cpu_alert_warm: cpu_alert_warm { 52724ba675SRob Herring temperature = <65000>; /* millicelsius */ 53724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 54724ba675SRob Herring type = "passive"; 55724ba675SRob Herring }; 56724ba675SRob Herring cpu_alert_almost_hot: cpu_alert_almost_hot { 57724ba675SRob Herring temperature = <80000>; /* millicelsius */ 58724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 59724ba675SRob Herring type = "passive"; 60724ba675SRob Herring }; 61724ba675SRob Herring cpu_alert_hot: cpu_alert_hot { 62724ba675SRob Herring temperature = <82000>; /* millicelsius */ 63724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 64724ba675SRob Herring type = "passive"; 65724ba675SRob Herring }; 66724ba675SRob Herring cpu_alert_hotter: cpu_alert_hotter { 67724ba675SRob Herring temperature = <84000>; /* millicelsius */ 68724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 69724ba675SRob Herring type = "passive"; 70724ba675SRob Herring }; 71724ba675SRob Herring cpu_alert_very_hot: cpu_alert_very_hot { 72724ba675SRob Herring temperature = <85000>; /* millicelsius */ 73724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 74724ba675SRob Herring type = "passive"; 75724ba675SRob Herring }; 76724ba675SRob Herring cpu_crit: cpu_crit { 77724ba675SRob Herring temperature = <90000>; /* millicelsius */ 78724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 79724ba675SRob Herring type = "critical"; 80724ba675SRob Herring }; 81724ba675SRob Herring }; 82724ba675SRob Herring 83724ba675SRob Herring cooling-maps { 84724ba675SRob Herring /* 85724ba675SRob Herring * After 1st level, throttle the CPU down to as low as 1.4 GHz 86724ba675SRob Herring * and don't let the GPU go faster than 400 MHz. 87724ba675SRob Herring */ 88724ba675SRob Herring cpu_warm_limit_cpu { 89724ba675SRob Herring trip = <&cpu_alert_warm>; 90724ba675SRob Herring cooling-device = <&cpu0 THERMAL_NO_LIMIT 4>, 91724ba675SRob Herring <&cpu1 THERMAL_NO_LIMIT 4>, 92724ba675SRob Herring <&cpu2 THERMAL_NO_LIMIT 4>, 93724ba675SRob Herring <&cpu3 THERMAL_NO_LIMIT 4>; 94724ba675SRob Herring }; 95724ba675SRob Herring cpu_warm_limit_gpu { 96724ba675SRob Herring trip = <&cpu_alert_warm>; 97724ba675SRob Herring cooling-device = <&gpu 1 1>; 98724ba675SRob Herring }; 99724ba675SRob Herring 100724ba675SRob Herring /* 101724ba675SRob Herring * Add some discrete steps to help throttling system deal 102724ba675SRob Herring * with the fact that there are two passive cooling devices: 103724ba675SRob Herring * the CPU and the GPU. 104724ba675SRob Herring * 105724ba675SRob Herring * - 1.2 GHz - 1.0 GHz (almost hot) 106724ba675SRob Herring * - 800 MHz (hot) 107724ba675SRob Herring * - 800 MHz - 696 MHz (hotter) 108724ba675SRob Herring * - 696 MHz - min (very hot) 109724ba675SRob Herring * 110724ba675SRob Herring * Note: 111724ba675SRob Herring * - 800 MHz appears to be a "sweet spot" for me. I can run 112724ba675SRob Herring * some pretty serious workload here and be happy. 113724ba675SRob Herring * - After 696 MHz we stop lowering voltage, so throttling 114724ba675SRob Herring * past there is less effective. 115724ba675SRob Herring */ 116724ba675SRob Herring cpu_almost_hot_limit_cpu { 117724ba675SRob Herring trip = <&cpu_alert_almost_hot>; 118724ba675SRob Herring cooling-device = <&cpu0 5 6>, <&cpu1 5 6>, <&cpu2 5 6>, 119724ba675SRob Herring <&cpu3 5 6>; 120724ba675SRob Herring }; 121724ba675SRob Herring cpu_hot_limit_cpu { 122724ba675SRob Herring trip = <&cpu_alert_hot>; 123724ba675SRob Herring cooling-device = <&cpu0 7 7>, <&cpu1 7 7>, <&cpu2 7 7>, 124724ba675SRob Herring <&cpu3 7 7>; 125724ba675SRob Herring }; 126724ba675SRob Herring cpu_hotter_limit_cpu { 127724ba675SRob Herring trip = <&cpu_alert_hotter>; 128724ba675SRob Herring cooling-device = <&cpu0 7 8>, <&cpu1 7 8>, <&cpu2 7 8>, 129724ba675SRob Herring <&cpu3 7 8>; 130724ba675SRob Herring }; 131724ba675SRob Herring cpu_very_hot_limit_cpu { 132724ba675SRob Herring trip = <&cpu_alert_very_hot>; 133724ba675SRob Herring cooling-device = <&cpu0 8 THERMAL_NO_LIMIT>, 134724ba675SRob Herring <&cpu1 8 THERMAL_NO_LIMIT>, 135724ba675SRob Herring <&cpu2 8 THERMAL_NO_LIMIT>, 136724ba675SRob Herring <&cpu3 8 THERMAL_NO_LIMIT>; 137724ba675SRob Herring }; 138724ba675SRob Herring 139724ba675SRob Herring /* At very hot, don't let GPU go over 300 MHz */ 140724ba675SRob Herring cpu_very_hot_limit_gpu { 141724ba675SRob Herring trip = <&cpu_alert_very_hot>; 142724ba675SRob Herring cooling-device = <&gpu 2 2>; 143724ba675SRob Herring }; 144724ba675SRob Herring }; 145724ba675SRob Herring}; 146724ba675SRob Herring 147724ba675SRob Herring&gpu_thermal { 148724ba675SRob Herring /delete-node/ trips; 149724ba675SRob Herring /delete-node/ cooling-maps; 150724ba675SRob Herring 151724ba675SRob Herring trips { 152724ba675SRob Herring gpu_alert_warmish: gpu_alert_warmish { 153724ba675SRob Herring temperature = <60000>; /* millicelsius */ 154724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 155724ba675SRob Herring type = "passive"; 156724ba675SRob Herring }; 157724ba675SRob Herring gpu_alert_warm: gpu_alert_warm { 158724ba675SRob Herring temperature = <65000>; /* millicelsius */ 159724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 160724ba675SRob Herring type = "passive"; 161724ba675SRob Herring }; 162724ba675SRob Herring gpu_alert_hotter: gpu_alert_hotter { 163724ba675SRob Herring temperature = <84000>; /* millicelsius */ 164724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 165724ba675SRob Herring type = "passive"; 166724ba675SRob Herring }; 167724ba675SRob Herring gpu_alert_very_very_hot: gpu_alert_very_very_hot { 168724ba675SRob Herring temperature = <86000>; /* millicelsius */ 169724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 170724ba675SRob Herring type = "passive"; 171724ba675SRob Herring }; 172724ba675SRob Herring gpu_crit: gpu_crit { 173724ba675SRob Herring temperature = <90000>; /* millicelsius */ 174724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 175724ba675SRob Herring type = "critical"; 176724ba675SRob Herring }; 177724ba675SRob Herring }; 178724ba675SRob Herring 179724ba675SRob Herring cooling-maps { 180724ba675SRob Herring /* After 1st level throttle the GPU down to as low as 400 MHz */ 181724ba675SRob Herring gpu_warmish_limit_gpu { 182724ba675SRob Herring trip = <&gpu_alert_warmish>; 183724ba675SRob Herring cooling-device = <&gpu THERMAL_NO_LIMIT 1>; 184724ba675SRob Herring }; 185724ba675SRob Herring 186724ba675SRob Herring /* 187724ba675SRob Herring * Slightly after we throttle the GPU, we'll also make sure that 188724ba675SRob Herring * the CPU can't go faster than 1.4 GHz. Note that we won't 189724ba675SRob Herring * throttle the CPU lower than 1.4 GHz due to GPU heat--we'll 190724ba675SRob Herring * let the CPU do the rest itself. 191724ba675SRob Herring */ 192724ba675SRob Herring gpu_warm_limit_cpu { 193724ba675SRob Herring trip = <&gpu_alert_warm>; 194724ba675SRob Herring cooling-device = <&cpu0 4 4>, 195724ba675SRob Herring <&cpu1 4 4>, 196724ba675SRob Herring <&cpu2 4 4>, 197724ba675SRob Herring <&cpu3 4 4>; 198724ba675SRob Herring }; 199724ba675SRob Herring 200724ba675SRob Herring /* When hot, GPU goes down to 300 MHz */ 201724ba675SRob Herring gpu_hotter_limit_gpu { 202724ba675SRob Herring trip = <&gpu_alert_hotter>; 203724ba675SRob Herring cooling-device = <&gpu 2 2>; 204724ba675SRob Herring }; 205724ba675SRob Herring 206724ba675SRob Herring /* When really hot, don't let GPU go _above_ 300 MHz */ 207724ba675SRob Herring gpu_very_very_hot_limit_gpu { 208724ba675SRob Herring trip = <&gpu_alert_very_very_hot>; 209724ba675SRob Herring cooling-device = <&gpu 2 THERMAL_NO_LIMIT>; 210724ba675SRob Herring }; 211724ba675SRob Herring }; 212724ba675SRob Herring}; 213724ba675SRob Herring 214724ba675SRob Herring&i2c2 { 215724ba675SRob Herring status = "disabled"; 216724ba675SRob Herring}; 217724ba675SRob Herring 218724ba675SRob Herring&i2c4 { 219724ba675SRob Herring status = "disabled"; 220724ba675SRob Herring}; 221724ba675SRob Herring 222724ba675SRob Herring&i2s { 223724ba675SRob Herring status = "okay"; 224724ba675SRob Herring}; 225724ba675SRob Herring 226724ba675SRob Herring&rk808 { 227724ba675SRob Herring pinctrl-names = "default"; 228724ba675SRob Herring pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>; 229724ba675SRob Herring dvs-gpios = <&gpio7 RK_PB4 GPIO_ACTIVE_HIGH>, 230724ba675SRob Herring <&gpio7 RK_PB7 GPIO_ACTIVE_HIGH>; 231724ba675SRob Herring 232724ba675SRob Herring /delete-property/ vcc6-supply; 233724ba675SRob Herring /delete-property/ vcc12-supply; 234724ba675SRob Herring 235724ba675SRob Herring vcc11-supply = <&vcc33_sys>; 236724ba675SRob Herring 237724ba675SRob Herring regulators { 238724ba675SRob Herring /* vcc33_io is sourced directly from vcc33_sys */ 239724ba675SRob Herring /delete-node/ LDO_REG1; 240724ba675SRob Herring /delete-node/ LDO_REG7; 241724ba675SRob Herring 242724ba675SRob Herring /* This is not a pwren anymore, but the real power supply */ 243724ba675SRob Herring vdd10_lcd: LDO_REG7 { 244724ba675SRob Herring regulator-always-on; 245724ba675SRob Herring regulator-boot-on; 246724ba675SRob Herring regulator-min-microvolt = <1000000>; 247724ba675SRob Herring regulator-max-microvolt = <1000000>; 248724ba675SRob Herring regulator-name = "vdd10_lcd"; 249724ba675SRob Herring regulator-suspend-mem-disabled; 250724ba675SRob Herring }; 251724ba675SRob Herring 252724ba675SRob Herring vcc18_lcd: LDO_REG8 { 253724ba675SRob Herring regulator-always-on; 254724ba675SRob Herring regulator-boot-on; 255724ba675SRob Herring regulator-min-microvolt = <1800000>; 256724ba675SRob Herring regulator-max-microvolt = <1800000>; 257724ba675SRob Herring regulator-name = "vcc18_lcd"; 258724ba675SRob Herring regulator-suspend-mem-disabled; 259724ba675SRob Herring }; 260724ba675SRob Herring }; 261724ba675SRob Herring}; 262724ba675SRob Herring 263724ba675SRob Herring&gpio0 { 264724ba675SRob Herring gpio-line-names = "PMIC_SLEEP_AP", 265724ba675SRob Herring "", 266724ba675SRob Herring "", 267724ba675SRob Herring "", 268724ba675SRob Herring "PMIC_INT_L", 269724ba675SRob Herring "POWER_BUTTON_L", 270724ba675SRob Herring "", 271724ba675SRob Herring "", 272724ba675SRob Herring 273724ba675SRob Herring "", 274724ba675SRob Herring /* 275724ba675SRob Herring * RECOVERY_SW_L is Chrome OS ABI. Schematics call 276724ba675SRob Herring * it REC_MODE_L. 277724ba675SRob Herring */ 278724ba675SRob Herring "RECOVERY_SW_L", 279724ba675SRob Herring "OT_RESET", 280724ba675SRob Herring "", 281724ba675SRob Herring "", 282724ba675SRob Herring "AP_WARM_RESET_H", 283724ba675SRob Herring "", 284724ba675SRob Herring "I2C0_SDA_PMIC", 285724ba675SRob Herring 286724ba675SRob Herring "I2C0_SCL_PMIC", 287724ba675SRob Herring "", 288724ba675SRob Herring "nFALUT"; 289724ba675SRob Herring}; 290724ba675SRob Herring 291724ba675SRob Herring&gpio2 { 292724ba675SRob Herring gpio-line-names = "CONFIG0", 293724ba675SRob Herring "CONFIG1", 294724ba675SRob Herring "CONFIG2", 295724ba675SRob Herring "", 296724ba675SRob Herring "", 297724ba675SRob Herring "", 298724ba675SRob Herring "", 299724ba675SRob Herring "CONFIG3", 300724ba675SRob Herring 301724ba675SRob Herring "", 302724ba675SRob Herring "EMMC_RST_L"; 303724ba675SRob Herring}; 304724ba675SRob Herring 305724ba675SRob Herring&gpio3 { 306724ba675SRob Herring gpio-line-names = "FLASH0_D0", 307724ba675SRob Herring "FLASH0_D1", 308724ba675SRob Herring "FLASH0_D2", 309724ba675SRob Herring "FLASH0_D3", 310724ba675SRob Herring "FLASH0_D4", 311724ba675SRob Herring "FLASH0_D5", 312724ba675SRob Herring "FLASH0_D6", 313724ba675SRob Herring "FLASH0_D7", 314724ba675SRob Herring 315724ba675SRob Herring "", 316724ba675SRob Herring "", 317724ba675SRob Herring "", 318724ba675SRob Herring "", 319724ba675SRob Herring "", 320724ba675SRob Herring "", 321724ba675SRob Herring "", 322724ba675SRob Herring "", 323724ba675SRob Herring 324724ba675SRob Herring "FLASH0_CS2/EMMC_CMD", 325724ba675SRob Herring "", 326724ba675SRob Herring "FLASH0_DQS/EMMC_CLKO"; 327724ba675SRob Herring}; 328724ba675SRob Herring 329724ba675SRob Herring&gpio4 { 330724ba675SRob Herring gpio-line-names = "", 331724ba675SRob Herring "", 332724ba675SRob Herring "", 333724ba675SRob Herring "", 334724ba675SRob Herring "", 335724ba675SRob Herring "", 336724ba675SRob Herring "", 337724ba675SRob Herring "", 338724ba675SRob Herring 339724ba675SRob Herring "", 340724ba675SRob Herring "", 341724ba675SRob Herring "", 342724ba675SRob Herring "", 343724ba675SRob Herring "", 344724ba675SRob Herring "", 345724ba675SRob Herring "", 346724ba675SRob Herring "", 347724ba675SRob Herring 348724ba675SRob Herring "UART0_RXD", 349724ba675SRob Herring "UART0_TXD", 350724ba675SRob Herring "UART0_CTS_L", 351724ba675SRob Herring "UART0_RTS_L", 352724ba675SRob Herring "SDIO0_D0", 353724ba675SRob Herring "SDIO0_D1", 354724ba675SRob Herring "SDIO0_D2", 355724ba675SRob Herring "SDIO0_D3", 356724ba675SRob Herring 357724ba675SRob Herring "SDIO0_CMD", 358724ba675SRob Herring "SDIO0_CLK", 359724ba675SRob Herring "BT_DEV_WAKE", 360724ba675SRob Herring "", 361724ba675SRob Herring "WIFI_ENABLE_H", 362724ba675SRob Herring "BT_ENABLE_L", 363724ba675SRob Herring "WIFI_HOST_WAKE", 364724ba675SRob Herring "BT_HOST_WAKE"; 365724ba675SRob Herring}; 366724ba675SRob Herring 367724ba675SRob Herring&gpio7 { 368724ba675SRob Herring gpio-line-names = "", 369724ba675SRob Herring "PWM_LOG", 370724ba675SRob Herring "", 371724ba675SRob Herring "", 372724ba675SRob Herring "TPM_INT_H", 373724ba675SRob Herring "SDMMC_DET_L", 374724ba675SRob Herring /* 375724ba675SRob Herring * AP_FLASH_WP_L is Chrome OS ABI. Schematics call 376724ba675SRob Herring * it FW_WP_AP. 377724ba675SRob Herring */ 378724ba675SRob Herring "AP_FLASH_WP_L", 379724ba675SRob Herring "", 380724ba675SRob Herring 381724ba675SRob Herring "CPU_NMI", 382724ba675SRob Herring "DVSOK", 383724ba675SRob Herring "HDMI_WAKE", 384724ba675SRob Herring "POWER_HDMI_ON", 385724ba675SRob Herring "DVS1", 386724ba675SRob Herring "", 387724ba675SRob Herring "", 388724ba675SRob Herring "DVS2", 389724ba675SRob Herring 390724ba675SRob Herring "HDMI_CEC", 391724ba675SRob Herring "", 392724ba675SRob Herring "", 393724ba675SRob Herring "I2C5_SDA_HDMI", 394724ba675SRob Herring "I2C5_SCL_HDMI", 395724ba675SRob Herring "", 396724ba675SRob Herring "UART2_RXD", 397724ba675SRob Herring "UART2_TXD"; 398724ba675SRob Herring}; 399724ba675SRob Herring 400724ba675SRob Herring&gpio8 { 401724ba675SRob Herring gpio-line-names = "RAM_ID0", 402724ba675SRob Herring "RAM_ID1", 403724ba675SRob Herring "RAM_ID2", 404724ba675SRob Herring "RAM_ID3", 405724ba675SRob Herring "I2C1_SDA_TPM", 406724ba675SRob Herring "I2C1_SCL_TPM", 407724ba675SRob Herring "SPI2_CLK", 408724ba675SRob Herring "SPI2_CS0", 409724ba675SRob Herring 410724ba675SRob Herring "SPI2_RXD", 411724ba675SRob Herring "SPI2_TXD"; 412724ba675SRob Herring}; 413724ba675SRob Herring 414724ba675SRob Herring&pinctrl { 415724ba675SRob Herring pinctrl-names = "default"; 416724ba675SRob Herring pinctrl-0 = < 417724ba675SRob Herring /* Common for sleep and wake, but no owners */ 418724ba675SRob Herring &ddr0_retention 419724ba675SRob Herring &ddrio_pwroff 420724ba675SRob Herring &global_pwroff 421724ba675SRob Herring >; 422724ba675SRob Herring 423724ba675SRob Herring hdmi { 424724ba675SRob Herring power_hdmi_on: power-hdmi-on { 425724ba675SRob Herring rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 426724ba675SRob Herring }; 427724ba675SRob Herring }; 428724ba675SRob Herring 429724ba675SRob Herring pmic { 430724ba675SRob Herring dvs_1: dvs-1 { 431724ba675SRob Herring rockchip,pins = <7 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>; 432724ba675SRob Herring }; 433724ba675SRob Herring 434724ba675SRob Herring dvs_2: dvs-2 { 435724ba675SRob Herring rockchip,pins = <7 RK_PB7 RK_FUNC_GPIO &pcfg_pull_down>; 436724ba675SRob Herring }; 437724ba675SRob Herring }; 438724ba675SRob Herring}; 439724ba675SRob Herring 440724ba675SRob Herring&usb_host0_ehci { 441724ba675SRob Herring status = "disabled"; 442724ba675SRob Herring}; 443724ba675SRob Herring 444724ba675SRob Herring&usb_host1 { 445724ba675SRob Herring status = "disabled"; 446724ba675SRob Herring}; 447724ba675SRob Herring 448724ba675SRob Herring&vcc50_hdmi { 449724ba675SRob Herring enable-active-high; 450724ba675SRob Herring gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_HIGH>; 451724ba675SRob Herring pinctrl-names = "default"; 452724ba675SRob Herring pinctrl-0 = <&power_hdmi_on>; 453724ba675SRob Herring}; 454