0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 /*
0003 * Google Gru-Kevin Rev 6+ board device tree source
0004 *
0005 * Copyright 2016-2017 Google, Inc
0006 */
0007
0008 /dts-v1/;
0009 #include "rk3399-gru-chromebook.dtsi"
0010 #include <dt-bindings/input/linux-event-codes.h>
0011
0012 /*
0013 * Kevin-specific things
0014 *
0015 * Things in this section should use names from Kevin schematic since no
0016 * equivalent exists in Gru schematic. If referring to signals that exist
0017 * in Gru we use the Gru names, though. Confusing enough for you?
0018 */
0019 / {
0020 model = "Google Kevin";
0021 compatible = "google,kevin-rev15", "google,kevin-rev14",
0022 "google,kevin-rev13", "google,kevin-rev12",
0023 "google,kevin-rev11", "google,kevin-rev10",
0024 "google,kevin-rev9", "google,kevin-rev8",
0025 "google,kevin-rev7", "google,kevin-rev6",
0026 "google,kevin", "google,gru", "rockchip,rk3399";
0027 chassis-type = "convertible";
0028
0029 /* Power tree */
0030
0031 p3_3v_dig: p3-3v-dig {
0032 compatible = "regulator-fixed";
0033 regulator-name = "p3.3v_dig";
0034 pinctrl-names = "default";
0035 pinctrl-0 = <&cpu3_pen_pwr_en>;
0036
0037 enable-active-high;
0038 gpio = <&gpio4 30 GPIO_ACTIVE_HIGH>;
0039 vin-supply = <&pp3300>;
0040 };
0041
0042 edp_panel: edp-panel {
0043 compatible = "sharp,lq123p1jx31";
0044 backlight = <&backlight>;
0045 power-supply = <&pp3300_disp>;
0046
0047 panel-timing {
0048 clock-frequency = <266666667>;
0049 hactive = <2400>;
0050 hfront-porch = <48>;
0051 hback-porch = <84>;
0052 hsync-len = <32>;
0053 hsync-active = <0>;
0054 vactive = <1600>;
0055 vfront-porch = <3>;
0056 vback-porch = <120>;
0057 vsync-len = <10>;
0058 vsync-active = <0>;
0059 };
0060
0061 port {
0062 panel_in_edp: endpoint {
0063 remote-endpoint = <&edp_out_panel>;
0064 };
0065 };
0066 };
0067
0068 thermistor_ppvar_bigcpu: thermistor-ppvar-bigcpu {
0069 compatible = "murata,ncp15wb473";
0070 pullup-uv = <1800000>;
0071 pullup-ohm = <25500>;
0072 pulldown-ohm = <0>;
0073 io-channels = <&saradc 2>;
0074 #thermal-sensor-cells = <0>;
0075 };
0076
0077 thermistor_ppvar_litcpu: thermistor-ppvar-litcpu {
0078 compatible = "murata,ncp15wb473";
0079 pullup-uv = <1800000>;
0080 pullup-ohm = <25500>;
0081 pulldown-ohm = <0>;
0082 io-channels = <&saradc 3>;
0083 #thermal-sensor-cells = <0>;
0084 };
0085 };
0086
0087 &backlight {
0088 pwms = <&cros_ec_pwm 1>;
0089 };
0090
0091 &gpio_keys {
0092 pinctrl-names = "default";
0093 pinctrl-0 = <&bt_host_wake_l>, <&cpu1_pen_eject>;
0094
0095 switch-pen-insert {
0096 label = "Pen Insert";
0097 /* Insert = low, eject = high */
0098 gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
0099 linux,code = <SW_PEN_INSERTED>;
0100 linux,input-type = <EV_SW>;
0101 wakeup-source;
0102 };
0103 };
0104
0105 &thermal_zones {
0106 bigcpu_reg_thermal: bigcpu-reg-thermal {
0107 polling-delay-passive = <100>; /* milliseconds */
0108 polling-delay = <1000>; /* milliseconds */
0109 thermal-sensors = <&thermistor_ppvar_bigcpu 0>;
0110 sustainable-power = <4000>;
0111
0112 ppvar_bigcpu_trips: trips {
0113 ppvar_bigcpu_on: ppvar-bigcpu-on {
0114 temperature = <40000>; /* millicelsius */
0115 hysteresis = <2000>; /* millicelsius */
0116 type = "passive";
0117 };
0118
0119 ppvar_bigcpu_alert: ppvar-bigcpu-alert {
0120 temperature = <50000>; /* millicelsius */
0121 hysteresis = <2000>; /* millicelsius */
0122 type = "passive";
0123 };
0124
0125 ppvar_bigcpu_crit: ppvar-bigcpu-crit {
0126 temperature = <90000>; /* millicelsius */
0127 hysteresis = <0>; /* millicelsius */
0128 type = "critical";
0129 };
0130 };
0131
0132 cooling-maps {
0133 map0 {
0134 trip = <&ppvar_bigcpu_alert>;
0135 cooling-device =
0136 <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
0137 <&cpu_l1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
0138 <&cpu_l2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
0139 <&cpu_l3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
0140 contribution = <4096>;
0141 };
0142 map1 {
0143 trip = <&ppvar_bigcpu_alert>;
0144 cooling-device =
0145 <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
0146 <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
0147 contribution = <1024>;
0148 };
0149 };
0150 };
0151
0152 litcpu_reg_thermal: litcpu-reg-thermal {
0153 polling-delay-passive = <100>; /* milliseconds */
0154 polling-delay = <1000>; /* milliseconds */
0155 thermal-sensors = <&thermistor_ppvar_litcpu 0>;
0156 sustainable-power = <4000>;
0157
0158 ppvar_litcpu_trips: trips {
0159 ppvar_litcpu_on: ppvar-litcpu-on {
0160 temperature = <40000>; /* millicelsius */
0161 hysteresis = <2000>; /* millicelsius */
0162 type = "passive";
0163 };
0164
0165 ppvar_litcpu_alert: ppvar-litcpu-alert {
0166 temperature = <50000>; /* millicelsius */
0167 hysteresis = <2000>; /* millicelsius */
0168 type = "passive";
0169 };
0170
0171 ppvar_litcpu_crit: ppvar-litcpu-crit {
0172 temperature = <90000>; /* millicelsius */
0173 hysteresis = <0>; /* millicelsius */
0174 type = "critical";
0175 };
0176 };
0177 };
0178 };
0179
0180 ap_i2c_tpm: &i2c0 {
0181 status = "okay";
0182
0183 clock-frequency = <400000>;
0184
0185 /* These are relatively safe rise/fall times. */
0186 i2c-scl-falling-time-ns = <50>;
0187 i2c-scl-rising-time-ns = <300>;
0188
0189 tpm: tpm@20 {
0190 compatible = "infineon,slb9645tt";
0191 reg = <0x20>;
0192 powered-while-suspended;
0193 };
0194 };
0195
0196 ap_i2c_dig: &i2c2 {
0197 status = "okay";
0198
0199 clock-frequency = <400000>;
0200
0201 /* These are relatively safe rise/fall times. */
0202 i2c-scl-falling-time-ns = <50>;
0203 i2c-scl-rising-time-ns = <300>;
0204
0205 digitizer: digitizer@9 {
0206 /* wacom,w9013 */
0207 compatible = "hid-over-i2c";
0208 reg = <0x9>;
0209 pinctrl-names = "default";
0210 pinctrl-0 = <&cpu1_dig_irq_l &cpu1_dig_pdct_l>;
0211
0212 vdd-supply = <&p3_3v_dig>;
0213 post-power-on-delay-ms = <100>;
0214
0215 interrupt-parent = <&gpio2>;
0216 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
0217
0218 hid-descr-addr = <0x1>;
0219 };
0220 };
0221
0222 /* Adjustments to things in the gru baseboard */
0223
0224 &ap_i2c_tp {
0225 trackpad@4a {
0226 compatible = "atmel,maxtouch";
0227 reg = <0x4a>;
0228 pinctrl-names = "default";
0229 pinctrl-0 = <&trackpad_int_l>;
0230 interrupt-parent = <&gpio1>;
0231 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
0232 linux,gpio-keymap = <KEY_RESERVED
0233 KEY_RESERVED
0234 KEY_RESERVED
0235 BTN_LEFT>;
0236 wakeup-source;
0237 };
0238 };
0239
0240 &ap_i2c_ts {
0241 touchscreen@4b {
0242 compatible = "atmel,maxtouch";
0243 reg = <0x4b>;
0244 pinctrl-names = "default";
0245 pinctrl-0 = <&touch_int_l>;
0246 interrupt-parent = <&gpio3>;
0247 interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
0248 };
0249 };
0250
0251 &ppvar_bigcpu_pwm {
0252 regulator-min-microvolt = <798674>;
0253 regulator-max-microvolt = <1302172>;
0254 };
0255
0256 &ppvar_bigcpu {
0257 regulator-min-microvolt = <798674>;
0258 regulator-max-microvolt = <1302172>;
0259 ctrl-voltage-range = <798674 1302172>;
0260 };
0261
0262 &ppvar_litcpu_pwm {
0263 regulator-min-microvolt = <799065>;
0264 regulator-max-microvolt = <1303738>;
0265 };
0266
0267 &ppvar_litcpu {
0268 regulator-min-microvolt = <799065>;
0269 regulator-max-microvolt = <1303738>;
0270 ctrl-voltage-range = <799065 1303738>;
0271 };
0272
0273 &ppvar_gpu_pwm {
0274 regulator-min-microvolt = <785782>;
0275 regulator-max-microvolt = <1217729>;
0276 };
0277
0278 &ppvar_gpu {
0279 regulator-min-microvolt = <785782>;
0280 regulator-max-microvolt = <1217729>;
0281 ctrl-voltage-range = <785782 1217729>;
0282 };
0283
0284 &ppvar_centerlogic_pwm {
0285 regulator-min-microvolt = <800069>;
0286 regulator-max-microvolt = <1049692>;
0287 };
0288
0289 &ppvar_centerlogic {
0290 regulator-min-microvolt = <800069>;
0291 regulator-max-microvolt = <1049692>;
0292 ctrl-voltage-range = <800069 1049692>;
0293 };
0294
0295 &saradc {
0296 status = "okay";
0297 vref-supply = <&pp1800_ap_io>;
0298 };
0299
0300 &mvl_wifi {
0301 marvell,wakeup-pin = <14>; /* GPIO_14 on Marvell */
0302 };
0303
0304 &pinctrl {
0305 digitizer {
0306 /* Has external pullup */
0307 cpu1_dig_irq_l: cpu1-dig-irq-l {
0308 rockchip,pins = <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
0309 };
0310
0311 /* Has external pullup */
0312 cpu1_dig_pdct_l: cpu1-dig-pdct-l {
0313 rockchip,pins = <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
0314 };
0315 };
0316
0317 discrete-regulators {
0318 cpu3_pen_pwr_en: cpu3-pen-pwr-en {
0319 rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
0320 };
0321 };
0322
0323 pen {
0324 cpu1_pen_eject: cpu1-pen-eject {
0325 rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
0326 };
0327 };
0328 };