xref: /openbmc/linux/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi (revision 36a7b63f069630e854beb305e99c151cddd3b8e5)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Google Herobrine baseboard device tree source
4 *
5 * The set of things in this file is a bit loosely defined. It's roughly
6 * defined as the set of things that the child boards happen to have in
7 * common. Since all of the child boards started from the same original
8 * design this is hopefully a large set of things but as more derivatives
9 * appear things may "bubble down" out of this file. For things that are
10 * part of the reference design but might not exist on child nodes we will
11 * follow the lead of the SoC dtsi files and leave their status as "disabled".
12 *
13 * Copyright 2022 Google LLC.
14 */
15
16#include <dt-bindings/input/gpio-keys.h>
17#include <dt-bindings/input/input.h>
18
19#include "sc7280-qcard.dtsi"
20#include "sc7280-chrome-common.dtsi"
21
22/ {
23	chosen {
24		stdout-path = "serial0:115200n8";
25	};
26
27	/*
28	 * FIXED REGULATORS
29	 *
30	 * Sort order:
31	 * 1. parents above children.
32	 * 2. higher voltage above lower voltage.
33	 * 3. alphabetically by node name.
34	 */
35
36	/* This is the top level supply and variable voltage */
37	ppvar_sys: ppvar-sys-regulator {
38		compatible = "regulator-fixed";
39		regulator-name = "ppvar_sys";
40		regulator-always-on;
41		regulator-boot-on;
42	};
43
44	/* This divides ppvar_sys by 2, so voltage is variable */
45	src_vph_pwr: src-vph-pwr-regulator {
46		compatible = "regulator-fixed";
47		regulator-name = "src_vph_pwr";
48
49		/* EC turns on with switchcap_on; always on for AP */
50		regulator-always-on;
51		regulator-boot-on;
52
53		vin-supply = <&ppvar_sys>;
54	};
55
56	pp5000_s5: pp5000-s5-regulator {
57		compatible = "regulator-fixed";
58		regulator-name = "pp5000_s5";
59
60		/* EC turns on with en_pp5000_s5; always on for AP */
61		regulator-always-on;
62		regulator-boot-on;
63		regulator-min-microvolt = <5000000>;
64		regulator-max-microvolt = <5000000>;
65
66		vin-supply = <&ppvar_sys>;
67	};
68
69	pp3300_z1: pp3300-z1-regulator {
70		compatible = "regulator-fixed";
71		regulator-name = "pp3300_z1";
72
73		/* EC turns on with en_pp3300_z1; always on for AP */
74		regulator-always-on;
75		regulator-boot-on;
76		regulator-min-microvolt = <3300000>;
77		regulator-max-microvolt = <3300000>;
78
79		vin-supply = <&ppvar_sys>;
80	};
81
82	pp3300_codec: pp3300-codec-regulator {
83		compatible = "regulator-fixed";
84		regulator-name = "pp3300_codec";
85
86		regulator-min-microvolt = <3300000>;
87		regulator-max-microvolt = <3300000>;
88
89		gpio = <&tlmm 105 GPIO_ACTIVE_HIGH>;
90		enable-active-high;
91		pinctrl-names = "default";
92		pinctrl-0 = <&en_pp3300_codec>;
93
94		vin-supply = <&pp3300_z1>;
95		status = "disabled";
96	};
97
98	pp3300_left_in_mlb: pp3300-left-in-mlb-regulator {
99		compatible = "regulator-fixed";
100		regulator-name = "pp3300_left_in_mlb";
101
102		regulator-min-microvolt = <3300000>;
103		regulator-max-microvolt = <3300000>;
104
105		gpio = <&tlmm 80 GPIO_ACTIVE_HIGH>;
106		enable-active-high;
107		pinctrl-names = "default";
108		pinctrl-0 = <&en_pp3300_dx_edp>;
109
110		vin-supply = <&pp3300_z1>;
111	};
112
113	pp3300_mcu_fp:
114	pp3300_fp_ls:
115	pp3300_fp_mcu: pp3300-fp-regulator {
116		compatible = "regulator-fixed";
117		regulator-name = "pp3300_fp";
118
119		regulator-min-microvolt = <3300000>;
120		regulator-max-microvolt = <3300000>;
121
122		regulator-boot-on;
123		regulator-always-on;
124
125		/*
126		 * WARNING: it is intentional that GPIO 77 isn't listed here.
127		 * The userspace script for updating the fingerprint firmware
128		 * needs to control the FP regulators during a FW update,
129		 * hence the signal can't be owned by the kernel regulator.
130		 */
131
132		pinctrl-names = "default";
133		pinctrl-0 = <&en_fp_rails>;
134
135		vin-supply = <&pp3300_z1>;
136		status = "disabled";
137	};
138
139	pp3300_hub: pp3300-hub-regulator {
140		compatible = "regulator-fixed";
141		regulator-name = "pp3300_hub";
142
143		regulator-min-microvolt = <3300000>;
144		regulator-max-microvolt = <3300000>;
145
146		regulator-boot-on;
147		regulator-always-on;
148
149		gpio = <&tlmm 157 GPIO_ACTIVE_HIGH>;
150		enable-active-high;
151		pinctrl-names = "default";
152		pinctrl-0 = <&hub_en>;
153
154		vin-supply = <&pp3300_z1>;
155	};
156
157	pp3300_tp: pp3300-tp-regulator {
158		compatible = "regulator-fixed";
159		regulator-name = "pp3300_tp";
160
161		regulator-min-microvolt = <3300000>;
162		regulator-max-microvolt = <3300000>;
163
164		/* AP turns on with PP1800_L18B_S0; always on for AP */
165		regulator-always-on;
166		regulator-boot-on;
167
168		vin-supply = <&pp3300_z1>;
169	};
170
171	pp3300_ssd: pp3300-ssd-regulator {
172		compatible = "regulator-fixed";
173		regulator-name = "pp3300_ssd";
174
175		regulator-min-microvolt = <3300000>;
176		regulator-max-microvolt = <3300000>;
177
178		gpio = <&tlmm 51 GPIO_ACTIVE_HIGH>;
179		enable-active-high;
180		pinctrl-names = "default";
181		pinctrl-0 = <&ssd_en>;
182
183		/*
184		 * The bootloaer may have left PCIe configured. Powering this
185		 * off while the PCIe clocks are still running isn't great,
186		 * so it's better to default to this regulator being on.
187		 */
188		regulator-boot-on;
189
190		vin-supply = <&pp3300_z1>;
191	};
192
193	pp2850_vcm_wf_cam: pp2850-vcm-wf-cam-regulator {
194		compatible = "regulator-fixed";
195		regulator-name = "pp2850_vcm_wf_cam";
196
197		regulator-min-microvolt = <2850000>;
198		regulator-max-microvolt = <2850000>;
199
200		gpio = <&tlmm 119 GPIO_ACTIVE_HIGH>;
201		enable-active-high;
202		pinctrl-names = "default";
203		pinctrl-0 = <&wf_cam_en>;
204
205		vin-supply = <&pp3300_z1>;
206		status = "disabled";
207	};
208
209	pp2850_wf_cam: pp2850-wf-cam-regulator {
210		compatible = "regulator-fixed";
211		regulator-name = "pp2850_wf_cam";
212
213		regulator-min-microvolt = <2850000>;
214		regulator-max-microvolt = <2850000>;
215
216		gpio = <&tlmm 119 GPIO_ACTIVE_HIGH>;
217		enable-active-high;
218		/*
219		 * The pinconf can only be referenced once so we put it on the
220		 * first regulator and comment it out here.
221		 *
222		 * pinctrl-names = "default";
223		 * pinctrl-0 = <&wf_cam_en>;
224		 */
225
226		vin-supply = <&pp3300_z1>;
227		status = "disabled";
228	};
229
230	pp1800_fp: pp1800-fp-regulator {
231		compatible = "regulator-fixed";
232		regulator-name = "pp1800_fp";
233
234		regulator-min-microvolt = <1800000>;
235		regulator-max-microvolt = <1800000>;
236
237		regulator-boot-on;
238		regulator-always-on;
239
240		/*
241		 * WARNING: it is intentional that GPIO 77 isn't listed here.
242		 * The userspace script for updating the fingerprint firmware
243		 * needs to control the FP regulators during a FW update,
244		 * hence the signal can't be owned by the kernel regulator.
245		 */
246
247		pinctrl-names = "default";
248		pinctrl-0 = <&en_fp_rails>;
249
250		vin-supply = <&pp1800_l18b_s0>;
251		status = "disabled";
252	};
253
254	pp1800_wf_cam: pp1800-wf-cam-regulator {
255		compatible = "regulator-fixed";
256		regulator-name = "pp1800_wf_cam";
257
258		regulator-min-microvolt = <1800000>;
259		regulator-max-microvolt = <1800000>;
260
261		gpio = <&tlmm 119 GPIO_ACTIVE_HIGH>;
262		enable-active-high;
263		/*
264		 * The pinconf can only be referenced once so we put it on the
265		 * first regulator and comment it out here.
266		 *
267		 * pinctrl-names = "default";
268		 * pinctrl-0 = <&wf_cam_en>;
269		 */
270
271		vin-supply = <&vreg_l19b_s0>;
272		status = "disabled";
273	};
274
275	pp1200_wf_cam: pp1200-wf-cam-regulator {
276		compatible = "regulator-fixed";
277		regulator-name = "pp1200_wf_cam";
278
279		regulator-min-microvolt = <1200000>;
280		regulator-max-microvolt = <1200000>;
281
282		gpio = <&tlmm 119 GPIO_ACTIVE_HIGH>;
283		enable-active-high;
284		/*
285		 * The pinconf can only be referenced once so we put it on the
286		 * first regulator and comment it out here.
287		 *
288		 * pinctrl-names = "default";
289		 * pinctrl-0 = <&wf_cam_en>;
290		 */
291
292		vin-supply = <&pp3300_z1>;
293		status = "disabled";
294	};
295
296	/* BOARD-SPECIFIC TOP LEVEL NODES */
297
298	pwmleds: pwmleds {
299		compatible = "pwm-leds";
300		status = "disabled";
301		keyboard_backlight: keyboard-backlight {
302			label = "cros_ec::kbd_backlight";
303			pwms = <&cros_ec_pwm 0>;
304			max-brightness = <1023>;
305		};
306	};
307};
308
309/*
310 * ADJUSTMENTS TO QCARD REGULATORS
311 *
312 * Mostly this is just board-local names for regulators that come from
313 * Qcard, but this also has some minor regulator overrides.
314 *
315 * Names are only listed here if regulators go somewhere other than a
316 * testpoint.
317 */
318
319/* From Qcard to our board; ordered by PMIC-ID / rail number */
320
321pp1256_s8b: &vreg_s8b_1p256 {};
322
323pp1800_l18b_s0: &vreg_l18b_1p8 {};
324pp1800_l18b:    &vreg_l18b_1p8 {};
325
326vreg_l19b_s0: &vreg_l19b_1p8 {};
327
328pp1800_alc5682: &vreg_l2c_1p8 {};
329pp1800_l2c:     &vreg_l2c_1p8 {};
330
331vreg_l4c: &vreg_l4c_1p8_3p0 {};
332
333ppvar_l6c: &vreg_l6c_2p96 {};
334
335pp3000_l7c: &vreg_l7c_3p0 {};
336
337pp1800_prox: &vreg_l8c_1p8 {};
338pp1800_l8c:  &vreg_l8c_1p8 {};
339
340pp2950_l9c: &vreg_l9c_2p96 {};
341
342pp1800_lcm:  &vreg_l12c_1p8 {};
343pp1800_mipi: &vreg_l12c_1p8 {};
344pp1800_l12c: &vreg_l12c_1p8 {};
345
346pp3300_lcm:  &vreg_l13c_3p0 {};
347pp3300_mipi: &vreg_l13c_3p0 {};
348pp3300_l13c: &vreg_l13c_3p0 {};
349
350/* From our board to Qcard; ordered same as node definition above */
351
352vreg_edp_bl: &ppvar_sys {};
353
354ts_avdd:      &pp3300_left_in_mlb {};
355vreg_edp_3p3: &pp3300_left_in_mlb {};
356
357/* Regulator overrides from Qcard */
358
359/*
360 * Herobrine boards only use l2c to power an external audio codec (like
361 * alc5682) and we want that to be at 1.8V, not at some slightly lower voltage.
362 */
363&vreg_l2c_1p8 {
364	regulator-min-microvolt = <1800000>;
365};
366
367/* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */
368
369&edp_panel {
370	/* Our board provides power to the qcard for the eDP panel. */
371	power-supply = <&vreg_edp_3p3>;
372};
373
374ap_sar_sensor_i2c: &i2c1 {
375	clock-frequency = <400000>;
376	status = "disabled";
377
378	ap_sar_sensor0: proximity@28 {
379		compatible = "semtech,sx9324";
380		reg = <0x28>;
381		#io-channel-cells = <1>;
382		pinctrl-names = "default";
383		pinctrl-0 = <&sar0_irq_odl>;
384
385		interrupt-parent = <&tlmm>;
386		interrupts = <141 IRQ_TYPE_LEVEL_LOW>;
387
388		vdd-supply = <&pp1800_prox>;
389
390		label = "proximity-wifi-lte0";
391		status = "disabled";
392	};
393
394	ap_sar_sensor1: proximity@2c {
395		compatible = "semtech,sx9324";
396		reg = <0x2c>;
397		#io-channel-cells = <1>;
398		pinctrl-names = "default";
399		pinctrl-0 = <&sar1_irq_odl>;
400
401		interrupt-parent = <&tlmm>;
402		interrupts = <140 IRQ_TYPE_LEVEL_LOW>;
403
404		vdd-supply = <&pp1800_prox>;
405
406		label = "proximity-wifi-lte1";
407		status = "disabled";
408	};
409};
410
411ap_i2c_tpm: &i2c14 {
412	status = "okay";
413	clock-frequency = <400000>;
414
415	tpm@50 {
416		compatible = "google,cr50";
417		reg = <0x50>;
418
419		pinctrl-names = "default";
420		pinctrl-0 = <&gsc_ap_int_odl>;
421
422		interrupt-parent = <&tlmm>;
423		interrupts = <104 IRQ_TYPE_EDGE_RISING>;
424	};
425};
426
427&mdss {
428	status = "okay";
429};
430
431&mdss_dp {
432	status = "okay";
433	pinctrl-names = "default";
434	pinctrl-0 = <&dp_hot_plug_det>;
435	data-lanes = <0 1>;
436	vdda-1p2-supply = <&vdd_a_usbssdp_0_1p2>;
437	vdda-0p9-supply = <&vdd_a_usbssdp_0_core>;
438};
439
440&mdss_mdp {
441	status = "okay";
442};
443
444/* NVMe drive, enabled on a per-board basis */
445&pcie1 {
446	pinctrl-names = "default";
447	pinctrl-0 = <&pcie1_clkreq_n>, <&ssd_rst_l>, <&pe_wake_odl>;
448
449	perst-gpio = <&tlmm 2 GPIO_ACTIVE_LOW>;
450	vddpe-3v3-supply = <&pp3300_ssd>;
451};
452
453&pm8350c_pwm {
454	status = "okay";
455};
456
457&pm8350c_pwm_backlight {
458	status = "okay";
459
460	/* Our board provides power to the qcard for the backlight */
461	power-supply = <&vreg_edp_bl>;
462};
463
464&pmk8350_rtc {
465	status = "disabled";
466};
467
468&qupv3_id_0 {
469	status = "okay";
470};
471
472&qupv3_id_1 {
473	status = "okay";
474};
475
476/* SD Card, enabled on a per-board basis */
477&sdhc_2 {
478	pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>, <&sd_cd_odl>;
479	pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>, <&sd_cd_odl>;
480
481	vmmc-supply = <&pp2950_l9c>;
482	vqmmc-supply = <&ppvar_l6c>;
483
484	cd-gpios = <&tlmm 91 GPIO_ACTIVE_LOW>;
485};
486
487&spi_flash {
488	spi-max-frequency = <50000000>;
489};
490
491/* Fingerprint, enabled on a per-board basis */
492ap_spi_fp: &spi9 {
493	pinctrl-0 = <&qup_spi9_data_clk>, <&qup_spi9_cs_gpio_init_high>, <&qup_spi9_cs_gpio>;
494
495	cs-gpios = <&tlmm 39 GPIO_ACTIVE_LOW>;
496
497	cros_ec_fp: ec@0 {
498		compatible = "google,cros-ec-spi";
499		reg = <0>;
500		interrupt-parent = <&tlmm>;
501		interrupts = <61 IRQ_TYPE_LEVEL_LOW>;
502		pinctrl-names = "default";
503		pinctrl-0 = <&fp_to_ap_irq_l>, <&fp_rst_l>, <&fpmcu_boot0>;
504		spi-max-frequency = <3000000>;
505	};
506};
507
508ap_ec_spi: &spi10 {
509	status = "okay";
510	pinctrl-0 = <&qup_spi10_data_clk>, <&qup_spi10_cs_gpio_init_high>, <&qup_spi10_cs_gpio>;
511
512	cs-gpios = <&tlmm 43 GPIO_ACTIVE_LOW>;
513
514	cros_ec: ec@0 {
515		compatible = "google,cros-ec-spi";
516		reg = <0>;
517		interrupt-parent = <&tlmm>;
518		interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
519		pinctrl-names = "default";
520		pinctrl-0 = <&ap_ec_int_l>;
521		spi-max-frequency = <3000000>;
522
523		cros_ec_pwm: pwm {
524			compatible = "google,cros-ec-pwm";
525			#pwm-cells = <1>;
526		};
527
528		i2c_tunnel: i2c-tunnel {
529			compatible = "google,cros-ec-i2c-tunnel";
530			google,remote-bus = <0>;
531			#address-cells = <1>;
532			#size-cells = <0>;
533		};
534
535		typec {
536			compatible = "google,cros-ec-typec";
537			#address-cells = <1>;
538			#size-cells = <0>;
539
540			usb_c0: connector@0 {
541				compatible = "usb-c-connector";
542				reg = <0>;
543				label = "left";
544				power-role = "dual";
545				data-role = "host";
546				try-power-role = "source";
547			};
548
549			usb_c1: connector@1 {
550				compatible = "usb-c-connector";
551				reg = <1>;
552				label = "right";
553				power-role = "dual";
554				data-role = "host";
555				try-power-role = "source";
556			};
557		};
558	};
559};
560
561#include <arm/cros-ec-keyboard.dtsi>
562#include <arm/cros-ec-sbs.dtsi>
563
564&keyboard_controller {
565	function-row-physmap = <
566		MATRIX_KEY(0x00, 0x02, 0)	/* T1 */
567		MATRIX_KEY(0x03, 0x02, 0)	/* T2 */
568		MATRIX_KEY(0x02, 0x02, 0)	/* T3 */
569		MATRIX_KEY(0x01, 0x02, 0)	/* T4 */
570		MATRIX_KEY(0x03, 0x04, 0)	/* T5 */
571		MATRIX_KEY(0x02, 0x04, 0)	/* T6 */
572		MATRIX_KEY(0x01, 0x04, 0)	/* T7 */
573		MATRIX_KEY(0x02, 0x09, 0)	/* T8 */
574		MATRIX_KEY(0x01, 0x09, 0)	/* T9 */
575		MATRIX_KEY(0x00, 0x04, 0)	/* T10 */
576	>;
577	linux,keymap = <
578		MATRIX_KEY(0x00, 0x02, KEY_BACK)
579		MATRIX_KEY(0x03, 0x02, KEY_REFRESH)
580		MATRIX_KEY(0x02, 0x02, KEY_ZOOM)
581		MATRIX_KEY(0x01, 0x02, KEY_SCALE)
582		MATRIX_KEY(0x03, 0x04, KEY_SYSRQ)
583		MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN)
584		MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP)
585		MATRIX_KEY(0x02, 0x09, KEY_MUTE)
586		MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN)
587		MATRIX_KEY(0x00, 0x04, KEY_VOLUMEUP)
588
589		CROS_STD_MAIN_KEYMAP
590	>;
591};
592
593&usb_1 {
594	status = "okay";
595};
596
597&usb_1_dwc3 {
598	dr_mode = "host";
599};
600
601&usb_1_hsphy {
602	status = "okay";
603};
604
605&usb_1_qmpphy {
606	status = "okay";
607};
608
609&usb_2 {
610	status = "okay";
611};
612
613&usb_2_dwc3 {
614	dr_mode = "host";
615};
616
617&usb_2_hsphy {
618	status = "okay";
619};
620
621/* PINCTRL - ADDITIONS TO NODES IN PARENT DEVICE TREE FILES */
622
623&dp_hot_plug_det {
624	bias-disable;
625};
626
627&pcie1_clkreq_n {
628	bias-pull-up;
629	drive-strength = <2>;
630};
631
632&qspi_cs0 {
633	bias-disable;
634	drive-strength = <8>;
635};
636
637&qspi_clk {
638	bias-disable;
639	drive-strength = <8>;
640};
641
642&qspi_data01 {
643	/* High-Z when no transfers; nice to park the lines */
644	bias-pull-up;
645	drive-strength = <8>;
646};
647
648/* For ap_tp_i2c */
649&qup_i2c0_data_clk {
650	/* Has external pull */
651	bias-disable;
652	drive-strength = <2>;
653};
654
655/* For ap_i2c_tpm */
656&qup_i2c14_data_clk {
657	/* Has external pull */
658	bias-disable;
659	drive-strength = <2>;
660};
661
662/* For ap_spi_fp */
663&qup_spi9_data_clk {
664	bias-disable;
665	drive-strength = <2>;
666};
667
668/* For ap_spi_fp */
669&qup_spi9_cs_gpio {
670	bias-disable;
671	drive-strength = <2>;
672};
673
674/* For ap_ec_spi */
675&qup_spi10_data_clk {
676	bias-disable;
677	drive-strength = <2>;
678};
679
680/* For ap_ec_spi */
681&qup_spi10_cs_gpio {
682	bias-disable;
683	drive-strength = <2>;
684};
685
686/* For uart_dbg */
687&qup_uart5_rx {
688	bias-pull-up;
689};
690
691/* For uart_dbg */
692&qup_uart5_tx {
693	bias-disable;
694	drive-strength = <2>;
695};
696
697&sdc2_clk {
698	bias-disable;
699	drive-strength = <16>;
700};
701
702&sdc2_cmd {
703	bias-pull-up;
704	drive-strength = <10>;
705};
706
707&sdc2_data {
708	bias-pull-up;
709	drive-strength = <10>;
710};
711
712/* PINCTRL - board-specific pinctrl */
713
714&pm7325_gpios {
715	/*
716	 * On a quick glance it might look like KYPD_VOL_UP_N is used, but
717	 * that only passes through to a debug connector and not to the actual
718	 * volume up key.
719	 */
720	status = "disabled"; /* No GPIOs are connected */
721};
722
723&pmk8350_gpios {
724	status = "disabled"; /* No GPIOs are connected */
725};
726
727&tlmm {
728	/* pinctrl settings for pins that have no real owners. */
729	pinctrl-names = "default";
730	pinctrl-0 = <&bios_flash_wp_od>;
731
732	amp_en: amp-en {
733		pins = "gpio63";
734		function = "gpio";
735		bias-disable;
736		drive-strength = <2>;
737	};
738
739	ap_ec_int_l: ap-ec-int-l {
740		pins = "gpio18";
741		function = "gpio";
742		bias-pull-up;
743	};
744
745	bios_flash_wp_od: bios-flash-wp-od {
746		pins = "gpio16";
747		function = "gpio";
748		/* Has external pull */
749		bias-disable;
750	};
751
752	en_fp_rails: en-fp-rails {
753		pins = "gpio77";
754		function = "gpio";
755		bias-disable;
756		drive-strength = <2>;
757		output-high;
758	};
759
760	en_pp3300_codec: en-pp3300-codec {
761		pins = "gpio105";
762		function = "gpio";
763		bias-disable;
764		drive-strength = <2>;
765	};
766
767	en_pp3300_dx_edp: en-pp3300-dx-edp {
768		pins = "gpio80";
769		function = "gpio";
770		bias-disable;
771		drive-strength = <2>;
772	};
773
774	fp_rst_l: fp-rst-l {
775		pins = "gpio78";
776		function = "gpio";
777		bias-disable;
778		drive-strength = <2>;
779	};
780
781	fp_to_ap_irq_l: fp-to-ap-irq-l {
782		pins = "gpio61";
783		function = "gpio";
784		/* Has external pullup */
785		bias-disable;
786	};
787
788	fpmcu_boot0: fpmcu-boot0 {
789		pins = "gpio68";
790		function = "gpio";
791		bias-disable;
792	};
793
794	gsc_ap_int_odl: gsc-ap-int-odl {
795		pins = "gpio104";
796		function = "gpio";
797		bias-pull-up;
798	};
799
800	hp_irq: hp-irq {
801		pins = "gpio101";
802		function = "gpio";
803		bias-pull-up;
804	};
805
806	hub_en: hub-en {
807		pins = "gpio157";
808		function = "gpio";
809		bias-disable;
810		drive-strength = <2>;
811	};
812
813	pe_wake_odl: pe-wake-odl {
814		pins = "gpio3";
815		function = "gpio";
816		/* Has external pull */
817		bias-disable;
818		drive-strength = <2>;
819	};
820
821	/* For ap_spi_fp */
822	qup_spi9_cs_gpio_init_high: qup-spi9-cs-gpio-init-high {
823		pins = "gpio39";
824		function = "gpio";
825		output-high;
826	};
827
828	/* For ap_ec_spi */
829	qup_spi10_cs_gpio_init_high: qup-spi10-cs-gpio-init-high {
830		pins = "gpio43";
831		function = "gpio";
832		output-high;
833	};
834
835	sar0_irq_odl: sar0-irq-odl {
836		pins = "gpio141";
837		function = "gpio";
838		bias-pull-up;
839	};
840
841	sar1_irq_odl: sar1-irq-odl {
842		pins = "gpio140";
843		function = "gpio";
844		bias-pull-up;
845	};
846
847	sd_cd_odl: sd-cd-odl {
848		pins = "gpio91";
849		function = "gpio";
850		bias-pull-up;
851	};
852
853	ssd_en: ssd-en {
854		pins = "gpio51";
855		function = "gpio";
856		bias-disable;
857		drive-strength = <2>;
858	};
859
860	ssd_rst_l: ssd-rst-l {
861		pins = "gpio2";
862		function = "gpio";
863		bias-disable;
864		drive-strength = <2>;
865		output-low;
866	};
867
868	tp_int_odl: tp-int-odl {
869		pins = "gpio7";
870		function = "gpio";
871		/* Has external pullup */
872		bias-disable;
873	};
874
875	wf_cam_en: wf-cam-en {
876		pins = "gpio119";
877		function = "gpio";
878		/* Has external pulldown */
879		bias-disable;
880		drive-strength = <2>;
881	};
882};
883