1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Google Veyron (and derivatives) board device tree source
4 *
5 * Copyright 2014 Google, Inc
6 */
7
8#include <dt-bindings/clock/rockchip,rk808.h>
9#include <dt-bindings/input/input.h>
10#include "rk3288-veyron.dtsi"
11
12/ {
13	aliases {
14		i2c20 = &i2c_tunnel;
15		video0 = &vopl;
16		video1 = &vopb;
17	};
18
19	gpio_keys: gpio-keys {
20		pinctrl-0 = <&pwr_key_h &ap_lid_int_l>;
21		lid {
22			label = "Lid";
23			gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
24			linux,code = <0>; /* SW_LID */
25			linux,input-type = <5>; /* EV_SW */
26			debounce-interval = <1>;
27			gpio-key,wakeup;
28                };
29	};
30
31	gpio-charger {
32		compatible = "gpio-charger";
33		gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
34		pinctrl-names = "default";
35		pinctrl-0 = <&ac_present_ap>;
36		charger-type = "mains";
37	};
38
39	/* A non-regulated voltage from power supply or battery */
40	vccsys: vccsys {
41		compatible = "regulator-fixed";
42		regulator-name = "vccsys";
43		regulator-boot-on;
44		regulator-always-on;
45	};
46
47	vcc33_sys: vcc33-sys {
48		vin-supply = <&vccsys>;
49	};
50
51	vcc_5v: vcc-5v {
52		vin-supply = <&vccsys>;
53	};
54
55	/* This turns on vbus for host1 (dwc2) */
56	vcc5_host1: vcc5-host1-regulator {
57		compatible = "regulator-fixed";
58		enable-active-high;
59		gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
60		pinctrl-names = "default";
61		pinctrl-0 = <&host1_pwr_en>;
62		regulator-name = "vcc5_host1";
63		regulator-always-on;
64		regulator-boot-on;
65	};
66
67	/* This turns on vbus for otg for host mode (dwc2) */
68	vcc5v_otg: vcc5v-otg-regulator {
69		compatible = "regulator-fixed";
70		enable-active-high;
71		gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
72		pinctrl-names = "default";
73		pinctrl-0 = <&usbotg_pwren_h>;
74		regulator-name = "vcc5_host2";
75		regulator-always-on;
76		regulator-boot-on;
77	};
78};
79
80&rk808 {
81	regulators {
82		vcc33_ccd: LDO_REG8 {
83			regulator-always-on;
84			regulator-boot-on;
85			regulator-min-microvolt = <3300000>;
86			regulator-max-microvolt = <3300000>;
87			regulator-name = "vcc33_ccd";
88			regulator-suspend-mem-disabled;
89		};
90	};
91};
92
93&spi0 {
94	status = "okay";
95	spi-activate-delay = <100>;
96	spi-max-frequency = <3000000>;
97	spi-deactivate-delay = <200>;
98
99	cros_ec: ec@0 {
100		compatible = "google,cros-ec-spi";
101		spi-max-frequency = <3000000>;
102		interrupt-parent = <&gpio7>;
103		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
104		ec-interrupt = <&gpio7 7 GPIO_ACTIVE_LOW>;
105		pinctrl-names = "default";
106		pinctrl-0 = <&ec_int>;
107		reg = <0>;
108		google,cros-ec-spi-pre-delay = <30>;
109
110		i2c_tunnel: i2c-tunnel {
111			compatible = "google,cros-ec-i2c-tunnel";
112			google,remote-bus = <0>;
113			#address-cells = <1>;
114			#size-cells = <0>;
115		};
116	};
117};
118
119&i2c4 {
120	trackpad@15 {
121		compatible = "elan,i2c_touchpad";
122		interrupt-parent = <&gpio7>;
123		interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
124		pinctrl-names = "default";
125		pinctrl-0 = <&trackpad_int>;
126		reg = <0x15>;
127		vcc-supply = <&vcc33_io>;
128		wakeup-source;
129	};
130};
131
132&pinctrl {
133	pinctrl-0 = <
134		/* Common for sleep and wake, but no owners */
135		&ddr0_retention
136		&ddrio_pwroff
137		&global_pwroff
138
139		/* Wake only */
140		&suspend_l_wake
141		&bt_dev_wake_awake
142	>;
143	pinctrl-1 = <
144		/* Common for sleep and wake, but no owners */
145		&ddr0_retention
146		&ddrio_pwroff
147		&global_pwroff
148
149		/* Sleep only */
150		&suspend_l_sleep
151		&bt_dev_wake_sleep
152	>;
153
154	buttons {
155		ap_lid_int_l: ap-lid-int-l {
156			rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_up>;
157		};
158	};
159
160	charger {
161		ac_present_ap: ac-present-ap {
162			rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
163		};
164	};
165
166	cros-ec {
167		ec_int: ec-int {
168			rockchip,pins = <7 7 RK_FUNC_GPIO &pcfg_pull_none>;
169		};
170	};
171
172	sdmmc {
173		sdmmc_wp_gpio: sdmmc-wp-gpio {
174			rockchip,pins = <7 10 RK_FUNC_GPIO &pcfg_pull_up>;
175		};
176	};
177
178	suspend {
179		suspend_l_wake: suspend-l-wake {
180			rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_output_low>;
181		};
182
183		suspend_l_sleep: suspend-l-sleep {
184			rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_output_high>;
185		};
186	};
187
188	trackpad {
189		trackpad_int: trackpad-int {
190			rockchip,pins = <7 3 RK_FUNC_GPIO &pcfg_pull_up>;
191		};
192	};
193
194	usb-host {
195		host1_pwr_en: host1-pwr-en {
196			rockchip,pins = <0 11 RK_FUNC_GPIO &pcfg_pull_none>;
197		};
198
199		usbotg_pwren_h: usbotg-pwren-h {
200			rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
201		};
202	};
203};
204
205#include "cros-ec-keyboard.dtsi"
206