1*e70408c0SSimon Glass/* 2*e70408c0SSimon Glass * Google Veyron Mickey Rev 0 board device tree source 3*e70408c0SSimon Glass * 4*e70408c0SSimon Glass * Copyright 2015 Google, Inc 5*e70408c0SSimon Glass * 6*e70408c0SSimon Glass * This file is dual-licensed: you can use it either under the terms 7*e70408c0SSimon Glass * of the GPL or the X11 license, at your option. Note that this dual 8*e70408c0SSimon Glass * licensing only applies to this file, and not this project as a 9*e70408c0SSimon Glass * whole. 10*e70408c0SSimon Glass * 11*e70408c0SSimon Glass * a) This file is free software; you can redistribute it and/or 12*e70408c0SSimon Glass * modify it under the terms of the GNU General Public License as 13*e70408c0SSimon Glass * published by the Free Software Foundation; either version 2 of the 14*e70408c0SSimon Glass * License, or (at your option) any later version. 15*e70408c0SSimon Glass * 16*e70408c0SSimon Glass * This file is distributed in the hope that it will be useful, 17*e70408c0SSimon Glass * but WITHOUT ANY WARRANTY; without even the implied warranty of 18*e70408c0SSimon Glass * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19*e70408c0SSimon Glass * GNU General Public License for more details. 20*e70408c0SSimon Glass * 21*e70408c0SSimon Glass * Or, alternatively, 22*e70408c0SSimon Glass * 23*e70408c0SSimon Glass * b) Permission is hereby granted, free of charge, to any person 24*e70408c0SSimon Glass * obtaining a copy of this software and associated documentation 25*e70408c0SSimon Glass * files (the "Software"), to deal in the Software without 26*e70408c0SSimon Glass * restriction, including without limitation the rights to use, 27*e70408c0SSimon Glass * copy, modify, merge, publish, distribute, sublicense, and/or 28*e70408c0SSimon Glass * sell copies of the Software, and to permit persons to whom the 29*e70408c0SSimon Glass * Software is furnished to do so, subject to the following 30*e70408c0SSimon Glass * conditions: 31*e70408c0SSimon Glass * 32*e70408c0SSimon Glass * The above copyright notice and this permission notice shall be 33*e70408c0SSimon Glass * included in all copies or substantial portions of the Software. 34*e70408c0SSimon Glass * 35*e70408c0SSimon Glass * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 36*e70408c0SSimon Glass * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37*e70408c0SSimon Glass * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38*e70408c0SSimon Glass * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39*e70408c0SSimon Glass * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 40*e70408c0SSimon Glass * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41*e70408c0SSimon Glass * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42*e70408c0SSimon Glass * OTHER DEALINGS IN THE SOFTWARE. 43*e70408c0SSimon Glass */ 44*e70408c0SSimon Glass 45*e70408c0SSimon Glass/dts-v1/; 46*e70408c0SSimon Glass#include "rk3288-veyron-chromebook.dtsi" 47*e70408c0SSimon Glass 48*e70408c0SSimon Glass/ { 49*e70408c0SSimon Glass model = "Google Mickey"; 50*e70408c0SSimon Glass compatible = "google,veyron-mickey-rev8", "google,veyron-mickey-rev7", 51*e70408c0SSimon Glass "google,veyron-mickey-rev6", "google,veyron-mickey-rev5", 52*e70408c0SSimon Glass "google,veyron-mickey-rev4", "google,veyron-mickey-rev3", 53*e70408c0SSimon Glass "google,veyron-mickey-rev2", "google,veyron-mickey-rev1", 54*e70408c0SSimon Glass "google,veyron-mickey-rev0", "google,veyron-mickey", 55*e70408c0SSimon Glass "google,veyron", "rockchip,rk3288"; 56*e70408c0SSimon Glass 57*e70408c0SSimon Glass vcc_5v: vcc-5v { 58*e70408c0SSimon Glass vin-supply = <&vcc33_sys>; 59*e70408c0SSimon Glass }; 60*e70408c0SSimon Glass 61*e70408c0SSimon Glass vcc33_io: vcc33_io { 62*e70408c0SSimon Glass compatible = "regulator-fixed"; 63*e70408c0SSimon Glass regulator-name = "vcc33_io"; 64*e70408c0SSimon Glass regulator-always-on; 65*e70408c0SSimon Glass regulator-boot-on; 66*e70408c0SSimon Glass vin-supply = <&vcc33_sys>; 67*e70408c0SSimon Glass }; 68*e70408c0SSimon Glass}; 69*e70408c0SSimon Glass 70*e70408c0SSimon Glass&cpu_thermal { 71*e70408c0SSimon Glass /delete-node/ trips; 72*e70408c0SSimon Glass /delete-node/ cooling-maps; 73*e70408c0SSimon Glass 74*e70408c0SSimon Glass trips { 75*e70408c0SSimon Glass cpu_alert_almost_warm: cpu_alert_almost_warm { 76*e70408c0SSimon Glass temperature = <63000>; /* millicelsius */ 77*e70408c0SSimon Glass hysteresis = <2000>; /* millicelsius */ 78*e70408c0SSimon Glass type = "passive"; 79*e70408c0SSimon Glass }; 80*e70408c0SSimon Glass cpu_alert_warm: cpu_alert_warm { 81*e70408c0SSimon Glass temperature = <65000>; /* millicelsius */ 82*e70408c0SSimon Glass hysteresis = <2000>; /* millicelsius */ 83*e70408c0SSimon Glass type = "passive"; 84*e70408c0SSimon Glass }; 85*e70408c0SSimon Glass cpu_alert_almost_hot: cpu_alert_almost_hot { 86*e70408c0SSimon Glass temperature = <80000>; /* millicelsius */ 87*e70408c0SSimon Glass hysteresis = <2000>; /* millicelsius */ 88*e70408c0SSimon Glass type = "passive"; 89*e70408c0SSimon Glass }; 90*e70408c0SSimon Glass cpu_alert_hot: cpu_alert_hot { 91*e70408c0SSimon Glass temperature = <82000>; /* millicelsius */ 92*e70408c0SSimon Glass hysteresis = <2000>; /* millicelsius */ 93*e70408c0SSimon Glass type = "passive"; 94*e70408c0SSimon Glass }; 95*e70408c0SSimon Glass cpu_alert_hotter: cpu_alert_hotter { 96*e70408c0SSimon Glass temperature = <84000>; /* millicelsius */ 97*e70408c0SSimon Glass hysteresis = <2000>; /* millicelsius */ 98*e70408c0SSimon Glass type = "passive"; 99*e70408c0SSimon Glass }; 100*e70408c0SSimon Glass cpu_alert_very_hot: cpu_alert_very_hot { 101*e70408c0SSimon Glass temperature = <85000>; /* millicelsius */ 102*e70408c0SSimon Glass hysteresis = <2000>; /* millicelsius */ 103*e70408c0SSimon Glass type = "passive"; 104*e70408c0SSimon Glass }; 105*e70408c0SSimon Glass cpu_crit: cpu_crit { 106*e70408c0SSimon Glass temperature = <90000>; /* millicelsius */ 107*e70408c0SSimon Glass hysteresis = <2000>; /* millicelsius */ 108*e70408c0SSimon Glass type = "critical"; 109*e70408c0SSimon Glass }; 110*e70408c0SSimon Glass }; 111*e70408c0SSimon Glass 112*e70408c0SSimon Glass cooling-maps { 113*e70408c0SSimon Glass /* 114*e70408c0SSimon Glass * After 1st level, throttle the CPU down to as low as 1.4 GHz 115*e70408c0SSimon Glass * and don't let the GPU go faster than 400 MHz. Note that we 116*e70408c0SSimon Glass * won't throttle the GPU lower than 400 MHz due to CPU 117*e70408c0SSimon Glass * heat--we'll let the GPU do the rest itself. 118*e70408c0SSimon Glass */ 119*e70408c0SSimon Glass cpu_warm_limit_cpu { 120*e70408c0SSimon Glass trip = <&cpu_alert_warm>; 121*e70408c0SSimon Glass cooling-device = 122*e70408c0SSimon Glass <&cpu0 THERMAL_NO_LIMIT 4>; 123*e70408c0SSimon Glass }; 124*e70408c0SSimon Glass 125*e70408c0SSimon Glass /* 126*e70408c0SSimon Glass * Add some discrete steps to help throttling system deal 127*e70408c0SSimon Glass * with the fact that there are two passive cooling devices: 128*e70408c0SSimon Glass * the CPU and the GPU. 129*e70408c0SSimon Glass * 130*e70408c0SSimon Glass * - 1.2 GHz - 1.0 GHz (almost hot) 131*e70408c0SSimon Glass * - 800 MHz (hot) 132*e70408c0SSimon Glass * - 800 MHz - 696 MHz (hotter) 133*e70408c0SSimon Glass * - 696 MHz - min (very hot) 134*e70408c0SSimon Glass * 135*e70408c0SSimon Glass * Note: 136*e70408c0SSimon Glass * - 800 MHz appears to be a "sweet spot" for me. I can run 137*e70408c0SSimon Glass * some pretty serious workload here and be happy. 138*e70408c0SSimon Glass * - After 696 MHz we stop lowering voltage, so throttling 139*e70408c0SSimon Glass * past there is less effective. 140*e70408c0SSimon Glass */ 141*e70408c0SSimon Glass cpu_almost_hot_limit_cpu { 142*e70408c0SSimon Glass trip = <&cpu_alert_almost_hot>; 143*e70408c0SSimon Glass cooling-device = 144*e70408c0SSimon Glass <&cpu0 5 6>; 145*e70408c0SSimon Glass }; 146*e70408c0SSimon Glass cpu_hot_limit_cpu { 147*e70408c0SSimon Glass trip = <&cpu_alert_hot>; 148*e70408c0SSimon Glass cooling-device = 149*e70408c0SSimon Glass <&cpu0 7 7>; 150*e70408c0SSimon Glass }; 151*e70408c0SSimon Glass cpu_hotter_limit_cpu { 152*e70408c0SSimon Glass trip = <&cpu_alert_hotter>; 153*e70408c0SSimon Glass cooling-device = 154*e70408c0SSimon Glass <&cpu0 7 8>; 155*e70408c0SSimon Glass }; 156*e70408c0SSimon Glass cpu_very_hot_limit_cpu { 157*e70408c0SSimon Glass trip = <&cpu_alert_very_hot>; 158*e70408c0SSimon Glass cooling-device = 159*e70408c0SSimon Glass <&cpu0 8 THERMAL_NO_LIMIT>; 160*e70408c0SSimon Glass }; 161*e70408c0SSimon Glass }; 162*e70408c0SSimon Glass}; 163*e70408c0SSimon Glass 164*e70408c0SSimon Glass&dmc { 165*e70408c0SSimon Glass rockchip,pctl-timing = <0x215 0xc8 0x0 0x35 0x26 0x2 0x70 0x2000d 166*e70408c0SSimon Glass 0x6 0x0 0x8 0x4 0x17 0x24 0xd 0x6 167*e70408c0SSimon Glass 0x4 0x8 0x4 0x76 0x4 0x0 0x30 0x0 168*e70408c0SSimon Glass 0x1 0x2 0x2 0x4 0x0 0x0 0xc0 0x4 169*e70408c0SSimon Glass 0x8 0x1f4>; 170*e70408c0SSimon Glass rockchip,phy-timing = <0x48d7dd93 0x187008d8 0x121076 171*e70408c0SSimon Glass 0x0 0xc3 0x6 0x2>; 172*e70408c0SSimon Glass rockchip,sdram-params = <0x20d266a4 0x5b6 2 533000000 6 9 1>; 173*e70408c0SSimon Glass}; 174*e70408c0SSimon Glass 175*e70408c0SSimon Glass&emmc { 176*e70408c0SSimon Glass /delete-property/mmc-hs200-1_8v; 177*e70408c0SSimon Glass}; 178*e70408c0SSimon Glass 179*e70408c0SSimon Glass&i2c2 { 180*e70408c0SSimon Glass status = "disabled"; 181*e70408c0SSimon Glass}; 182*e70408c0SSimon Glass 183*e70408c0SSimon Glass&i2c4 { 184*e70408c0SSimon Glass status = "disabled"; 185*e70408c0SSimon Glass}; 186*e70408c0SSimon Glass 187*e70408c0SSimon Glass&i2s { 188*e70408c0SSimon Glass status = "okay"; 189*e70408c0SSimon Glass clock-names = "i2s_hclk", "i2s_clk", "i2s_clk_out"; 190*e70408c0SSimon Glass clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>, <&cru SCLK_I2S0_OUT>; 191*e70408c0SSimon Glass}; 192*e70408c0SSimon Glass 193*e70408c0SSimon Glass&rk808 { 194*e70408c0SSimon Glass pinctrl-names = "default"; 195*e70408c0SSimon Glass pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>; 196*e70408c0SSimon Glass dvs-gpios = <&gpio7 12 GPIO_ACTIVE_HIGH>, 197*e70408c0SSimon Glass <&gpio7 15 GPIO_ACTIVE_HIGH>; 198*e70408c0SSimon Glass 199*e70408c0SSimon Glass /delete-property/ vcc6-supply; 200*e70408c0SSimon Glass /delete-property/ vcc12-supply; 201*e70408c0SSimon Glass 202*e70408c0SSimon Glass vcc11-supply = <&vcc33_sys>; 203*e70408c0SSimon Glass 204*e70408c0SSimon Glass regulators { 205*e70408c0SSimon Glass /* vcc33_io is sourced directly from vcc33_sys */ 206*e70408c0SSimon Glass /delete-node/ LDO_REG1; 207*e70408c0SSimon Glass /delete-node/ LDO_REG7; 208*e70408c0SSimon Glass 209*e70408c0SSimon Glass /* This is not a pwren anymore, but the real power supply */ 210*e70408c0SSimon Glass vdd10_lcd: LDO_REG7 { 211*e70408c0SSimon Glass regulator-always-on; 212*e70408c0SSimon Glass regulator-boot-on; 213*e70408c0SSimon Glass regulator-min-microvolt = <1000000>; 214*e70408c0SSimon Glass regulator-max-microvolt = <1000000>; 215*e70408c0SSimon Glass regulator-name = "vdd10_lcd"; 216*e70408c0SSimon Glass regulator-suspend-mem-disabled; 217*e70408c0SSimon Glass }; 218*e70408c0SSimon Glass 219*e70408c0SSimon Glass vcc18_lcd: LDO_REG8 { 220*e70408c0SSimon Glass regulator-always-on; 221*e70408c0SSimon Glass regulator-boot-on; 222*e70408c0SSimon Glass regulator-min-microvolt = <1800000>; 223*e70408c0SSimon Glass regulator-max-microvolt = <1800000>; 224*e70408c0SSimon Glass regulator-name = "vcc18_lcd"; 225*e70408c0SSimon Glass regulator-suspend-mem-disabled; 226*e70408c0SSimon Glass }; 227*e70408c0SSimon Glass }; 228*e70408c0SSimon Glass}; 229*e70408c0SSimon Glass 230*e70408c0SSimon Glass&pinctrl { 231*e70408c0SSimon Glass hdmi { 232*e70408c0SSimon Glass power_hdmi_on: power-hdmi-on { 233*e70408c0SSimon Glass rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>; 234*e70408c0SSimon Glass }; 235*e70408c0SSimon Glass }; 236*e70408c0SSimon Glass 237*e70408c0SSimon Glass pmic { 238*e70408c0SSimon Glass dvs_1: dvs-1 { 239*e70408c0SSimon Glass rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_down>; 240*e70408c0SSimon Glass }; 241*e70408c0SSimon Glass 242*e70408c0SSimon Glass dvs_2: dvs-2 { 243*e70408c0SSimon Glass rockchip,pins = <7 15 RK_FUNC_GPIO &pcfg_pull_down>; 244*e70408c0SSimon Glass }; 245*e70408c0SSimon Glass }; 246*e70408c0SSimon Glass}; 247*e70408c0SSimon Glass 248*e70408c0SSimon Glass&sdmmc { 249*e70408c0SSimon Glass status = "disabled"; 250*e70408c0SSimon Glass}; 251*e70408c0SSimon Glass 252*e70408c0SSimon Glass&sdio0 { 253*e70408c0SSimon Glass status = "disabled"; 254*e70408c0SSimon Glass}; 255*e70408c0SSimon Glass 256*e70408c0SSimon Glass&sdmmc { 257*e70408c0SSimon Glass status = "disabled"; 258*e70408c0SSimon Glass}; 259*e70408c0SSimon Glass 260*e70408c0SSimon Glass&spi0 { 261*e70408c0SSimon Glass status = "disabled"; 262*e70408c0SSimon Glass}; 263*e70408c0SSimon Glass 264*e70408c0SSimon Glass&usb_host0_ehci { 265*e70408c0SSimon Glass status = "disabled"; 266*e70408c0SSimon Glass}; 267*e70408c0SSimon Glass 268*e70408c0SSimon Glass&usb_host1 { 269*e70408c0SSimon Glass status = "disabled"; 270*e70408c0SSimon Glass}; 271*e70408c0SSimon Glass 272*e70408c0SSimon Glass&vcc50_hdmi { 273*e70408c0SSimon Glass enable-active-high; 274*e70408c0SSimon Glass gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>; 275*e70408c0SSimon Glass pinctrl-names = "default"; 276*e70408c0SSimon Glass pinctrl-0 = <&power_hdmi_on>; 277*e70408c0SSimon Glass}; 278