1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) << 2 /* 1 /* 3 * Google Gru-Kevin Rev 6+ board device tree s 2 * Google Gru-Kevin Rev 6+ board device tree source 4 * 3 * 5 * Copyright 2016-2017 Google, Inc 4 * Copyright 2016-2017 Google, Inc >> 5 * >> 6 * This file is dual-licensed: you can use it either under the terms >> 7 * of the GPL or the X11 license, at your option. Note that this dual >> 8 * licensing only applies to this file, and not this project as a >> 9 * whole. >> 10 * >> 11 * a) This file is free software; you can redistribute it and/or >> 12 * modify it under the terms of the GNU General Public License as >> 13 * published by the Free Software Foundation; either version 2 of the >> 14 * License, or (at your option) any later version. >> 15 * >> 16 * This file is distributed in the hope that it will be useful, >> 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of >> 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> 19 * GNU General Public License for more details. >> 20 * >> 21 * Or, alternatively, >> 22 * >> 23 * b) Permission is hereby granted, free of charge, to any person >> 24 * obtaining a copy of this software and associated documentation >> 25 * files (the "Software"), to deal in the Software without >> 26 * restriction, including without limitation the rights to use, >> 27 * copy, modify, merge, publish, distribute, sublicense, and/or >> 28 * sell copies of the Software, and to permit persons to whom the >> 29 * Software is furnished to do so, subject to the following >> 30 * conditions: >> 31 * >> 32 * The above copyright notice and this permission notice shall be >> 33 * included in all copies or substantial portions of the Software. >> 34 * >> 35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >> 36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES >> 37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND >> 38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT >> 39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, >> 40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING >> 41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR >> 42 * OTHER DEALINGS IN THE SOFTWARE. 6 */ 43 */ 7 44 8 /dts-v1/; 45 /dts-v1/; 9 #include "rk3399-gru-chromebook.dtsi" !! 46 #include "rk3399-gru.dtsi" 10 #include <dt-bindings/input/linux-event-codes. 47 #include <dt-bindings/input/linux-event-codes.h> 11 48 12 /* 49 /* 13 * Kevin-specific things 50 * Kevin-specific things 14 * 51 * 15 * Things in this section should use names fro 52 * Things in this section should use names from Kevin schematic since no 16 * equivalent exists in Gru schematic. If ref 53 * equivalent exists in Gru schematic. If referring to signals that exist 17 * in Gru we use the Gru names, though. Confu 54 * in Gru we use the Gru names, though. Confusing enough for you? 18 */ 55 */ 19 / { 56 / { 20 model = "Google Kevin"; 57 model = "Google Kevin"; 21 compatible = "google,kevin-rev15", "go 58 compatible = "google,kevin-rev15", "google,kevin-rev14", 22 "google,kevin-rev13", "go 59 "google,kevin-rev13", "google,kevin-rev12", 23 "google,kevin-rev11", "go 60 "google,kevin-rev11", "google,kevin-rev10", 24 "google,kevin-rev9", "goo 61 "google,kevin-rev9", "google,kevin-rev8", 25 "google,kevin-rev7", "goo 62 "google,kevin-rev7", "google,kevin-rev6", 26 "google,kevin", "google,g 63 "google,kevin", "google,gru", "rockchip,rk3399"; 27 chassis-type = "convertible"; << 28 64 29 /* Power tree */ 65 /* Power tree */ 30 66 31 p3_3v_dig: p3-3v-dig { 67 p3_3v_dig: p3-3v-dig { 32 compatible = "regulator-fixed" 68 compatible = "regulator-fixed"; 33 regulator-name = "p3.3v_dig"; 69 regulator-name = "p3.3v_dig"; 34 pinctrl-names = "default"; 70 pinctrl-names = "default"; 35 pinctrl-0 = <&cpu3_pen_pwr_en> 71 pinctrl-0 = <&cpu3_pen_pwr_en>; 36 72 37 enable-active-high; 73 enable-active-high; 38 gpio = <&gpio4 30 GPIO_ACTIVE_ 74 gpio = <&gpio4 30 GPIO_ACTIVE_HIGH>; 39 vin-supply = <&pp3300>; 75 vin-supply = <&pp3300>; 40 }; 76 }; 41 77 >> 78 backlight: backlight { >> 79 compatible = "pwm-backlight"; >> 80 pwms = <&cros_ec_pwm 1>; >> 81 brightness-levels = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 >> 82 17 18 19 20 21 22 23 24 25 26 27 28 29 30 >> 83 31 32 33 34 35 36 37 38 39 40 41 42 43 44 >> 84 45 46 47 48 49 50 51 52 53 54 55 56 57 58 >> 85 59 60 61 62 63 64 65 66 67 68 69 70 71 72 >> 86 73 74 75 76 77 78 79 80 81 82 83 84 85 86 >> 87 87 88 89 90 91 92 93 94 95 96 97 98 99 100>; >> 88 default-brightness-level = <51>; >> 89 enable-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>; >> 90 power-supply = <&pp3300_disp>; >> 91 pinctrl-names = "default"; >> 92 pinctrl-0 = <&bl_en>; >> 93 pwm-delay-us = <10000>; >> 94 }; >> 95 42 edp_panel: edp-panel { 96 edp_panel: edp-panel { 43 compatible = "sharp,lq123p1jx3 !! 97 compatible = "sharp,lq123p1jx31", "simple-panel"; 44 backlight = <&backlight>; 98 backlight = <&backlight>; 45 power-supply = <&pp3300_disp>; 99 power-supply = <&pp3300_disp>; 46 100 47 panel-timing { !! 101 ports { 48 clock-frequency = <266 << 49 hactive = <2400>; << 50 hfront-porch = <48>; << 51 hback-porch = <84>; << 52 hsync-len = <32>; << 53 hsync-active = <0>; << 54 vactive = <1600>; << 55 vfront-porch = <3>; << 56 vback-porch = <120>; << 57 vsync-len = <10>; << 58 vsync-active = <0>; << 59 }; << 60 << 61 port { << 62 panel_in_edp: endpoint 102 panel_in_edp: endpoint { 63 remote-endpoin 103 remote-endpoint = <&edp_out_panel>; 64 }; 104 }; 65 }; 105 }; 66 }; 106 }; 67 107 68 thermistor_ppvar_bigcpu: thermistor-pp 108 thermistor_ppvar_bigcpu: thermistor-ppvar-bigcpu { 69 compatible = "murata,ncp15wb47 109 compatible = "murata,ncp15wb473"; 70 pullup-uv = <1800000>; 110 pullup-uv = <1800000>; 71 pullup-ohm = <25500>; 111 pullup-ohm = <25500>; 72 pulldown-ohm = <0>; 112 pulldown-ohm = <0>; 73 io-channels = <&saradc 2>; 113 io-channels = <&saradc 2>; 74 #thermal-sensor-cells = <0>; 114 #thermal-sensor-cells = <0>; 75 }; 115 }; 76 116 77 thermistor_ppvar_litcpu: thermistor-pp 117 thermistor_ppvar_litcpu: thermistor-ppvar-litcpu { 78 compatible = "murata,ncp15wb47 118 compatible = "murata,ncp15wb473"; 79 pullup-uv = <1800000>; 119 pullup-uv = <1800000>; 80 pullup-ohm = <25500>; 120 pullup-ohm = <25500>; 81 pulldown-ohm = <0>; 121 pulldown-ohm = <0>; 82 io-channels = <&saradc 3>; 122 io-channels = <&saradc 3>; 83 #thermal-sensor-cells = <0>; 123 #thermal-sensor-cells = <0>; 84 }; 124 }; 85 }; 125 }; 86 126 87 &backlight { << 88 pwms = <&cros_ec_pwm 1>; << 89 }; << 90 << 91 &gpio_keys { 127 &gpio_keys { 92 pinctrl-names = "default"; 128 pinctrl-names = "default"; 93 pinctrl-0 = <&bt_host_wake_l>, <&cpu1_ 129 pinctrl-0 = <&bt_host_wake_l>, <&cpu1_pen_eject>; 94 130 95 switch-pen-insert { !! 131 pen-insert { 96 label = "Pen Insert"; 132 label = "Pen Insert"; 97 /* Insert = low, eject = high 133 /* Insert = low, eject = high */ 98 gpios = <&gpio0 13 GPIO_ACTIVE 134 gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; 99 linux,code = <SW_PEN_INSERTED> 135 linux,code = <SW_PEN_INSERTED>; 100 linux,input-type = <EV_SW>; 136 linux,input-type = <EV_SW>; 101 wakeup-source; 137 wakeup-source; 102 }; 138 }; 103 }; 139 }; 104 140 105 &thermal_zones { 141 &thermal_zones { 106 bigcpu_reg_thermal: bigcpu-reg-thermal 142 bigcpu_reg_thermal: bigcpu-reg-thermal { 107 polling-delay-passive = <100>; 143 polling-delay-passive = <100>; /* milliseconds */ 108 polling-delay = <1000>; /* mil 144 polling-delay = <1000>; /* milliseconds */ 109 thermal-sensors = <&thermistor 145 thermal-sensors = <&thermistor_ppvar_bigcpu 0>; 110 sustainable-power = <4000>; 146 sustainable-power = <4000>; 111 147 112 ppvar_bigcpu_trips: trips { 148 ppvar_bigcpu_trips: trips { 113 ppvar_bigcpu_on: ppvar 149 ppvar_bigcpu_on: ppvar-bigcpu-on { 114 temperature = 150 temperature = <40000>; /* millicelsius */ 115 hysteresis = < 151 hysteresis = <2000>; /* millicelsius */ 116 type = "passiv 152 type = "passive"; 117 }; 153 }; 118 154 119 ppvar_bigcpu_alert: pp 155 ppvar_bigcpu_alert: ppvar-bigcpu-alert { 120 temperature = 156 temperature = <50000>; /* millicelsius */ 121 hysteresis = < 157 hysteresis = <2000>; /* millicelsius */ 122 type = "passiv 158 type = "passive"; 123 }; 159 }; 124 160 125 ppvar_bigcpu_crit: ppv 161 ppvar_bigcpu_crit: ppvar-bigcpu-crit { 126 temperature = 162 temperature = <90000>; /* millicelsius */ 127 hysteresis = < 163 hysteresis = <0>; /* millicelsius */ 128 type = "critic 164 type = "critical"; 129 }; 165 }; 130 }; 166 }; 131 167 132 cooling-maps { 168 cooling-maps { 133 map0 { 169 map0 { 134 trip = <&ppvar 170 trip = <&ppvar_bigcpu_alert>; 135 cooling-device 171 cooling-device = 136 <&cpu_ !! 172 <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 137 <&cpu_ << 138 <&cpu_ << 139 <&cpu_ << 140 contribution = 173 contribution = <4096>; 141 }; 174 }; 142 map1 { 175 map1 { 143 trip = <&ppvar 176 trip = <&ppvar_bigcpu_alert>; 144 cooling-device 177 cooling-device = 145 <&cpu_ !! 178 <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 146 <&cpu_ << 147 contribution = 179 contribution = <1024>; 148 }; 180 }; 149 }; 181 }; 150 }; 182 }; 151 183 152 litcpu_reg_thermal: litcpu-reg-thermal 184 litcpu_reg_thermal: litcpu-reg-thermal { 153 polling-delay-passive = <100>; 185 polling-delay-passive = <100>; /* milliseconds */ 154 polling-delay = <1000>; /* mil 186 polling-delay = <1000>; /* milliseconds */ 155 thermal-sensors = <&thermistor 187 thermal-sensors = <&thermistor_ppvar_litcpu 0>; 156 sustainable-power = <4000>; 188 sustainable-power = <4000>; 157 189 158 ppvar_litcpu_trips: trips { 190 ppvar_litcpu_trips: trips { 159 ppvar_litcpu_on: ppvar 191 ppvar_litcpu_on: ppvar-litcpu-on { 160 temperature = 192 temperature = <40000>; /* millicelsius */ 161 hysteresis = < 193 hysteresis = <2000>; /* millicelsius */ 162 type = "passiv 194 type = "passive"; 163 }; 195 }; 164 196 165 ppvar_litcpu_alert: pp 197 ppvar_litcpu_alert: ppvar-litcpu-alert { 166 temperature = 198 temperature = <50000>; /* millicelsius */ 167 hysteresis = < 199 hysteresis = <2000>; /* millicelsius */ 168 type = "passiv 200 type = "passive"; 169 }; 201 }; 170 202 171 ppvar_litcpu_crit: ppv 203 ppvar_litcpu_crit: ppvar-litcpu-crit { 172 temperature = 204 temperature = <90000>; /* millicelsius */ 173 hysteresis = < 205 hysteresis = <0>; /* millicelsius */ 174 type = "critic 206 type = "critical"; 175 }; 207 }; 176 }; 208 }; 177 }; 209 }; 178 }; 210 }; 179 211 180 ap_i2c_tpm: &i2c0 { 212 ap_i2c_tpm: &i2c0 { 181 status = "okay"; 213 status = "okay"; 182 214 183 clock-frequency = <400000>; 215 clock-frequency = <400000>; 184 216 185 /* These are relatively safe rise/fall 217 /* These are relatively safe rise/fall times. */ 186 i2c-scl-falling-time-ns = <50>; 218 i2c-scl-falling-time-ns = <50>; 187 i2c-scl-rising-time-ns = <300>; 219 i2c-scl-rising-time-ns = <300>; 188 220 189 tpm: tpm@20 { 221 tpm: tpm@20 { 190 compatible = "infineon,slb9645 222 compatible = "infineon,slb9645tt"; 191 reg = <0x20>; 223 reg = <0x20>; 192 powered-while-suspended; 224 powered-while-suspended; 193 }; 225 }; 194 }; 226 }; 195 227 196 ap_i2c_dig: &i2c2 { 228 ap_i2c_dig: &i2c2 { 197 status = "okay"; 229 status = "okay"; 198 230 199 clock-frequency = <400000>; 231 clock-frequency = <400000>; 200 232 201 /* These are relatively safe rise/fall 233 /* These are relatively safe rise/fall times. */ 202 i2c-scl-falling-time-ns = <50>; 234 i2c-scl-falling-time-ns = <50>; 203 i2c-scl-rising-time-ns = <300>; 235 i2c-scl-rising-time-ns = <300>; 204 236 205 digitizer: digitizer@9 { 237 digitizer: digitizer@9 { 206 /* wacom,w9013 */ 238 /* wacom,w9013 */ 207 compatible = "hid-over-i2c"; 239 compatible = "hid-over-i2c"; 208 reg = <0x9>; 240 reg = <0x9>; 209 pinctrl-names = "default"; 241 pinctrl-names = "default"; 210 pinctrl-0 = <&cpu1_dig_irq_l & 242 pinctrl-0 = <&cpu1_dig_irq_l &cpu1_dig_pdct_l>; 211 243 212 vdd-supply = <&p3_3v_dig>; 244 vdd-supply = <&p3_3v_dig>; 213 post-power-on-delay-ms = <100> 245 post-power-on-delay-ms = <100>; 214 246 215 interrupt-parent = <&gpio2>; 247 interrupt-parent = <&gpio2>; 216 interrupts = <4 IRQ_TYPE_LEVEL 248 interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 217 249 218 hid-descr-addr = <0x1>; 250 hid-descr-addr = <0x1>; 219 }; 251 }; 220 }; 252 }; 221 253 222 /* Adjustments to things in the gru baseboard 254 /* Adjustments to things in the gru baseboard */ 223 255 224 &ap_i2c_tp { 256 &ap_i2c_tp { 225 trackpad@4a { 257 trackpad@4a { 226 compatible = "atmel,maxtouch"; 258 compatible = "atmel,maxtouch"; 227 reg = <0x4a>; 259 reg = <0x4a>; 228 pinctrl-names = "default"; 260 pinctrl-names = "default"; 229 pinctrl-0 = <&trackpad_int_l>; 261 pinctrl-0 = <&trackpad_int_l>; 230 interrupt-parent = <&gpio1>; 262 interrupt-parent = <&gpio1>; 231 interrupts = <4 IRQ_TYPE_LEVEL 263 interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 232 linux,gpio-keymap = <KEY_RESER 264 linux,gpio-keymap = <KEY_RESERVED 233 KEY_RESER 265 KEY_RESERVED 234 KEY_RESER 266 KEY_RESERVED 235 BTN_LEFT> 267 BTN_LEFT>; 236 wakeup-source; 268 wakeup-source; 237 }; 269 }; 238 }; 270 }; 239 271 240 &ap_i2c_ts { 272 &ap_i2c_ts { 241 touchscreen@4b { 273 touchscreen@4b { 242 compatible = "atmel,maxtouch"; 274 compatible = "atmel,maxtouch"; 243 reg = <0x4b>; 275 reg = <0x4b>; 244 pinctrl-names = "default"; 276 pinctrl-names = "default"; 245 pinctrl-0 = <&touch_int_l>; 277 pinctrl-0 = <&touch_int_l>; 246 interrupt-parent = <&gpio3>; 278 interrupt-parent = <&gpio3>; 247 interrupts = <13 IRQ_TYPE_LEVE 279 interrupts = <13 IRQ_TYPE_LEVEL_LOW>; 248 }; 280 }; 249 }; 281 }; 250 282 >> 283 &edp { >> 284 status = "okay"; >> 285 >> 286 ports { >> 287 edp_out: port@1 { >> 288 reg = <1>; >> 289 #address-cells = <1>; >> 290 #size-cells = <0>; >> 291 >> 292 edp_out_panel: endpoint@0 { >> 293 reg = <0>; >> 294 remote-endpoint = <&panel_in_edp>; >> 295 }; >> 296 }; >> 297 }; >> 298 }; >> 299 251 &ppvar_bigcpu_pwm { 300 &ppvar_bigcpu_pwm { 252 regulator-min-microvolt = <798674>; 301 regulator-min-microvolt = <798674>; 253 regulator-max-microvolt = <1302172>; 302 regulator-max-microvolt = <1302172>; 254 }; 303 }; 255 304 256 &ppvar_bigcpu { 305 &ppvar_bigcpu { 257 regulator-min-microvolt = <798674>; 306 regulator-min-microvolt = <798674>; 258 regulator-max-microvolt = <1302172>; 307 regulator-max-microvolt = <1302172>; 259 ctrl-voltage-range = <798674 1302172>; 308 ctrl-voltage-range = <798674 1302172>; 260 }; 309 }; 261 310 262 &ppvar_litcpu_pwm { 311 &ppvar_litcpu_pwm { 263 regulator-min-microvolt = <799065>; 312 regulator-min-microvolt = <799065>; 264 regulator-max-microvolt = <1303738>; 313 regulator-max-microvolt = <1303738>; 265 }; 314 }; 266 315 267 &ppvar_litcpu { 316 &ppvar_litcpu { 268 regulator-min-microvolt = <799065>; 317 regulator-min-microvolt = <799065>; 269 regulator-max-microvolt = <1303738>; 318 regulator-max-microvolt = <1303738>; 270 ctrl-voltage-range = <799065 1303738>; 319 ctrl-voltage-range = <799065 1303738>; 271 }; 320 }; 272 321 273 &ppvar_gpu_pwm { 322 &ppvar_gpu_pwm { 274 regulator-min-microvolt = <785782>; 323 regulator-min-microvolt = <785782>; 275 regulator-max-microvolt = <1217729>; 324 regulator-max-microvolt = <1217729>; 276 }; 325 }; 277 326 278 &ppvar_gpu { 327 &ppvar_gpu { 279 regulator-min-microvolt = <785782>; 328 regulator-min-microvolt = <785782>; 280 regulator-max-microvolt = <1217729>; 329 regulator-max-microvolt = <1217729>; 281 ctrl-voltage-range = <785782 1217729>; 330 ctrl-voltage-range = <785782 1217729>; 282 }; 331 }; 283 332 284 &ppvar_centerlogic_pwm { 333 &ppvar_centerlogic_pwm { 285 regulator-min-microvolt = <800069>; 334 regulator-min-microvolt = <800069>; 286 regulator-max-microvolt = <1049692>; 335 regulator-max-microvolt = <1049692>; 287 }; 336 }; 288 337 289 &ppvar_centerlogic { 338 &ppvar_centerlogic { 290 regulator-min-microvolt = <800069>; 339 regulator-min-microvolt = <800069>; 291 regulator-max-microvolt = <1049692>; 340 regulator-max-microvolt = <1049692>; 292 ctrl-voltage-range = <800069 1049692>; 341 ctrl-voltage-range = <800069 1049692>; 293 }; 342 }; 294 343 295 &saradc { 344 &saradc { 296 status = "okay"; 345 status = "okay"; 297 vref-supply = <&pp1800_ap_io>; 346 vref-supply = <&pp1800_ap_io>; 298 }; 347 }; 299 348 300 &mvl_wifi { 349 &mvl_wifi { 301 marvell,wakeup-pin = <14>; /* GPIO_14 350 marvell,wakeup-pin = <14>; /* GPIO_14 on Marvell */ 302 }; 351 }; 303 352 304 &pinctrl { 353 &pinctrl { 305 digitizer { 354 digitizer { 306 /* Has external pullup */ 355 /* Has external pullup */ 307 cpu1_dig_irq_l: cpu1-dig-irq-l 356 cpu1_dig_irq_l: cpu1-dig-irq-l { 308 rockchip,pins = <2 RK_ !! 357 rockchip,pins = <2 4 RK_FUNC_GPIO &pcfg_pull_none>; 309 }; 358 }; 310 359 311 /* Has external pullup */ 360 /* Has external pullup */ 312 cpu1_dig_pdct_l: cpu1-dig-pdct 361 cpu1_dig_pdct_l: cpu1-dig-pdct-l { 313 rockchip,pins = <2 RK_ !! 362 rockchip,pins = <2 5 RK_FUNC_GPIO &pcfg_pull_none>; 314 }; 363 }; 315 }; 364 }; 316 365 317 discrete-regulators { 366 discrete-regulators { 318 cpu3_pen_pwr_en: cpu3-pen-pwr- 367 cpu3_pen_pwr_en: cpu3-pen-pwr-en { 319 rockchip,pins = <4 RK_ !! 368 rockchip,pins = <4 30 RK_FUNC_GPIO &pcfg_pull_none>; 320 }; 369 }; 321 }; 370 }; 322 371 323 pen { 372 pen { 324 cpu1_pen_eject: cpu1-pen-eject 373 cpu1_pen_eject: cpu1-pen-eject { 325 rockchip,pins = <0 RK_ !! 374 rockchip,pins = <0 13 RK_FUNC_GPIO &pcfg_pull_up>; >> 375 }; >> 376 }; >> 377 >> 378 wifi { >> 379 wlan_host_wake_l: wlan-host-wake-l { >> 380 rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_none>; 326 }; 381 }; 327 }; 382 }; 328 }; 383 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.