1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Google Trogdor device tree source (common between revisions)
4 *
5 * Copyright 2019 Google LLC.
6 */
7
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/input/gpio-keys.h>
10#include <dt-bindings/input/input.h>
11#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
12#include <dt-bindings/sound/sc7180-lpass.h>
13
14/* PMICs depend on spmi_bus label and so must come after SoC */
15#include "pm6150.dtsi"
16#include "pm6150l.dtsi"
17
18/ {
19	thermal-zones {
20		charger_thermal: charger-thermal {
21			polling-delay-passive = <0>;
22			polling-delay = <0>;
23
24			thermal-sensors = <&pm6150_adc_tm 0>;
25
26			trips {
27				charger-crit {
28					temperature = <125000>;
29					hysteresis = <1000>;
30					type = "critical";
31				};
32			};
33		};
34	};
35};
36
37/*
38 * Reserved memory changes
39 *
40 * Delete all unused memory nodes and define the peripheral memory regions
41 * required by the board dts.
42 */
43
44/delete-node/ &hyp_mem;
45/delete-node/ &xbl_mem;
46/delete-node/ &aop_mem;
47/delete-node/ &sec_apps_mem;
48/delete-node/ &tz_mem;
49
50/* Increase the size from 2MB to 8MB */
51&rmtfs_mem {
52	reg = <0x0 0x94600000 0x0 0x800000>;
53};
54
55/ {
56	reserved-memory {
57		atf_mem: memory@80b00000 {
58			reg = <0x0 0x80b00000 0x0 0x100000>;
59			no-map;
60		};
61
62		mpss_mem: memory@86000000 {
63			reg = <0x0 0x86000000 0x0 0x2000000>;
64			no-map;
65		};
66
67		venus_mem: memory@8f600000 {
68			reg = <0 0x8f600000 0 0x500000>;
69			no-map;
70		};
71
72		wlan_mem: memory@94100000 {
73			reg = <0x0 0x94100000 0x0 0x200000>;
74			no-map;
75		};
76
77		mba_mem: memory@94400000 {
78			reg = <0x0 0x94400000 0x0 0x200000>;
79			no-map;
80		};
81	};
82
83	aliases {
84		bluetooth0 = &bluetooth;
85		hsuart0 = &uart3;
86		serial0 = &uart8;
87		wifi0 = &wifi;
88	};
89
90	chosen {
91		stdout-path = "serial0:115200n8";
92	};
93
94	/* FIXED REGULATORS - parents above children */
95
96	/* This is the top level supply and variable voltage */
97	ppvar_sys: ppvar-sys-regulator {
98		compatible = "regulator-fixed";
99		regulator-name = "ppvar_sys";
100		regulator-always-on;
101		regulator-boot-on;
102	};
103
104	/* This divides ppvar_sys by 2, so voltage is variable */
105	src_vph_pwr: src-vph-pwr-regulator {
106		compatible = "regulator-fixed";
107		regulator-name = "src_vph_pwr";
108
109		/* EC turns on with switchcap_on; always on for AP */
110		regulator-always-on;
111		regulator-boot-on;
112
113		vin-supply = <&ppvar_sys>;
114	};
115
116	pp5000_a: pp5000-a-regulator {
117		compatible = "regulator-fixed";
118		regulator-name = "pp5000_a";
119
120		/* EC turns on with en_pp5000_a; always on for AP */
121		regulator-always-on;
122		regulator-boot-on;
123		regulator-min-microvolt = <5000000>;
124		regulator-max-microvolt = <5000000>;
125
126		vin-supply = <&ppvar_sys>;
127	};
128
129	pp3300_a: pp3300-a-regulator {
130		compatible = "regulator-fixed";
131		regulator-name = "pp3300_a";
132
133		/* EC turns on with en_pp3300_a; always on for AP */
134		regulator-always-on;
135		regulator-boot-on;
136		regulator-min-microvolt = <3300000>;
137		regulator-max-microvolt = <3300000>;
138
139		/*
140		 * Actually should be pp3300 but that's practically an alias for
141		 * pp3300_a so we use pp3300's vin-supply here to avoid one more
142		 * node.
143		 */
144		vin-supply = <&ppvar_sys>;
145	};
146
147	pp3300_audio:
148	pp3300_codec: pp3300-codec-regulator {
149		compatible = "regulator-fixed";
150		regulator-name = "pp3300_codec";
151
152		regulator-min-microvolt = <3300000>;
153		regulator-max-microvolt = <3300000>;
154
155		gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>;
156		enable-active-high;
157		pinctrl-names = "default";
158		pinctrl-0 = <&en_pp3300_codec>;
159
160		vin-supply = <&pp3300_a>;
161	};
162
163	pp3300_dx_edp:
164	pp3300_ts: pp3300-dx-edp-regulator {
165		compatible = "regulator-fixed";
166		regulator-name = "pp3300_dx_edp";
167
168		regulator-min-microvolt = <3300000>;
169		regulator-max-microvolt = <3300000>;
170
171		gpio = <&tlmm 30 GPIO_ACTIVE_HIGH>;
172		enable-active-high;
173		pinctrl-names = "default";
174		pinctrl-0 = <&en_pp3300_dx_edp>;
175
176		vin-supply = <&pp3300_a>;
177	};
178
179	pp3300_fp_tp: pp3300-fp-tp-regulator {
180		compatible = "regulator-fixed";
181		regulator-name = "pp3300_fp_tp";
182
183		regulator-min-microvolt = <3300000>;
184		regulator-max-microvolt = <3300000>;
185
186		/* AP turns on with PP1800_VIO_OUT; always on for AP */
187		regulator-always-on;
188		regulator-boot-on;
189
190		vin-supply = <&pp3300_a>;
191	};
192
193	pp3300_hub: pp3300-hub {
194		compatible = "regulator-fixed";
195		regulator-name = "pp3300_hub";
196
197		regulator-min-microvolt = <3300000>;
198		regulator-max-microvolt = <3300000>;
199
200		gpio = <&tlmm 84 GPIO_ACTIVE_HIGH>;
201		enable-active-high;
202		pinctrl-names = "default";
203		pinctrl-0 = <&en_pp3300_hub>;
204
205		regulator-always-on;
206		regulator-boot-on;
207
208		vin-supply = <&pp3300_a>;
209	};
210
211	/* BOARD-SPECIFIC TOP LEVEL NODES */
212
213	backlight: backlight {
214		compatible = "pwm-backlight";
215
216		/* The panels don't seem to like anything below ~ 5% */
217		brightness-levels = <
218			196 256 324 400 484 576 676 784 900 1024 1156 1296
219			1444 1600 1764 1936 2116 2304 2500 2704 2916 3136
220			3364 3600 3844 4096
221		>;
222		num-interpolated-steps = <64>;
223		default-brightness-level = <951>;
224
225		pwms = <&cros_ec_pwm 1>;
226		enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
227		power-supply = <&ppvar_sys>;
228		pinctrl-names = "default";
229		pinctrl-0 = <&ap_edp_bklten>;
230	};
231
232	gpio_keys: gpio-keys {
233		compatible = "gpio-keys";
234		status = "disabled";
235		pinctrl-names = "default";
236		pinctrl-0 = <&pen_pdct_l>;
237
238		pen_insert: pen-insert {
239			label = "Pen Insert";
240
241			/* Insert = low, eject = high */
242			gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
243			linux,code = <SW_PEN_INSERTED>;
244			linux,input-type = <EV_SW>;
245			wakeup-event-action = <EV_ACT_DEASSERTED>;
246			wakeup-source;
247		};
248	};
249
250	max98360a: audio-codec-0 {
251		compatible = "maxim,max98360a";
252		pinctrl-names = "default";
253		pinctrl-0 = <&amp_en>;
254		sdmode-gpios = <&tlmm 23 GPIO_ACTIVE_HIGH>;
255		#sound-dai-cells = <0>;
256	};
257
258	pwmleds {
259		compatible = "pwm-leds";
260		keyboard_backlight: keyboard-backlight {
261			status = "disabled";
262			label = "cros_ec::kbd_backlight";
263			pwms = <&cros_ec_pwm 0>;
264			max-brightness = <1023>;
265		};
266	};
267
268	sound: sound {
269		compatible = "google,sc7180-trogdor";
270		model = "sc7180-rt5682-max98357a-1mic";
271
272		audio-routing =
273			"Headphone Jack", "HPOL",
274			"Headphone Jack", "HPOR";
275
276		#sound-dai-cells = <0>;
277		#address-cells = <1>;
278		#size-cells = <0>;
279
280		dai-link@0 {
281			link-name = "MultiMedia0";
282			reg = <MI2S_PRIMARY>;
283			cpu {
284				sound-dai = <&lpass_cpu MI2S_PRIMARY>;
285			};
286
287			sound_multimedia0_codec: codec {
288				sound-dai = <&alc5682 0 /* aif1 */>;
289			};
290		};
291
292		dai-link@1 {
293			link-name = "MultiMedia1";
294			reg = <MI2S_SECONDARY>;
295			cpu {
296				sound-dai = <&lpass_cpu MI2S_SECONDARY>;
297			};
298
299			sound_multimedia1_codec: codec {
300				sound-dai = <&max98360a>;
301			};
302		};
303
304		dai-link@2 {
305			link-name = "MultiMedia2";
306			reg = <2>;
307			cpu {
308				sound-dai = <&lpass_cpu 2>;
309			};
310
311			codec {
312				sound-dai = <&mdss_dp>;
313			};
314		};
315	};
316};
317
318&qfprom {
319	vcc-supply = <&pp1800_l11a>;
320};
321
322&qspi {
323	status = "okay";
324	pinctrl-names = "default";
325	pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data01>;
326
327	flash@0 {
328		compatible = "jedec,spi-nor";
329		reg = <0>;
330
331		spi-max-frequency = <37500000>;
332		spi-tx-bus-width = <2>;
333		spi-rx-bus-width = <2>;
334	};
335};
336
337&apps_rsc {
338	pm6150-rpmh-regulators {
339		compatible = "qcom,pm6150-rpmh-regulators";
340		qcom,pmic-id = "a";
341
342		vddpx_1:
343		vdd2:
344		pp1125_s1a: smps1 {
345			regulator-min-microvolt = <1128000>;
346			regulator-max-microvolt = <1128000>;
347		};
348
349		vdd_qlink_lv:
350		vdd_qlink_lv_ck:
351		vdd_qusb_hs0_core:
352		vdd_ufs1_core:
353		vdda_mipi_csi0_0p9:
354		vdda_mipi_csi1_0p9:
355		vdda_mipi_csi2_0p9:
356		vdda_mipi_csi3_0p9:
357		vdda_mipi_dsi0_pll:
358		vdda_pll_cc_ebi01:
359		vdda_qrefs_0p9:
360		vdda_usb_ss_dp_core:
361		pp900_l4a: ldo4 {
362			regulator-min-microvolt = <824000>;
363			regulator-max-microvolt = <928000>;
364			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
365		};
366
367		vdd_cx_wlan:
368		pp800_l9a: ldo9 {
369			regulator-min-microvolt = <488000>;
370			regulator-max-microvolt = <800000>;
371			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
372		};
373
374		vdd1:
375		vddpx_3:
376		vddpx_7:
377		vio_in:
378		pp1800_l10a: ldo10 {
379			regulator-min-microvolt = <1800000>;
380			regulator-max-microvolt = <1800000>;
381			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
382		};
383
384		vdd_qfprom:
385		vdda_apc1_cs_1p8:
386		vdda_qrefs_1p8:
387		vdda_qusb_hs0_1p8:
388		vddpx_11:
389		vreg_bb_clk:
390		pp1800_l11a: ldo11 {
391			regulator-min-microvolt = <1800000>;
392			regulator-max-microvolt = <1800000>;
393			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
394		};
395
396		mcp_vccq:
397		pp1800_l12a_r: ldo12 {
398			regulator-min-microvolt = <1800000>;
399			regulator-max-microvolt = <1800000>;
400			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
401		};
402
403		/*
404		 * On trogdor this needs to match l10a since we use it to
405		 * give power to things like SPI flash which communicate back
406		 * on lines powered by l10a.  Thus we force to 1.8V.
407		 */
408		pp1800_l13a: ldo13 {
409			regulator-min-microvolt = <1800000>;
410			regulator-max-microvolt = <1800000>;
411			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
412		};
413
414		pp1800_prox:
415		pp1800_l14a: ldo14 {
416			regulator-min-microvolt = <1800000>;
417			regulator-max-microvolt = <1800000>;
418			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
419		};
420
421		pp1800_alc5682:
422		pp1800_l15a: ldo15 {
423			regulator-min-microvolt = <1800000>;
424			regulator-max-microvolt = <1800000>;
425			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
426		};
427
428		vdda_qusb_hs0_3p1:
429		vdd_pdphy:
430		pp3100_l17a: ldo17 {
431			regulator-min-microvolt = <2920000>;
432			regulator-max-microvolt = <3232000>;
433			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
434		};
435
436		pp1800_pen:
437		pp1800_l18a: ldo18 {
438			regulator-min-microvolt = <1800000>;
439			regulator-max-microvolt = <1800000>;
440			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
441		};
442
443		mcp_vcc:
444		pp2850_l19a: ldo19 {
445			regulator-min-microvolt = <2960000>;
446			regulator-max-microvolt = <2960000>;
447			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
448		};
449	};
450
451	pm6150l-rpmh-regulators {
452		compatible = "qcom,pm6150l-rpmh-regulators";
453		qcom,pmic-id = "c";
454
455		pp1300_s8c: smps8 {
456			regulator-min-microvolt = <1120000>;
457			regulator-max-microvolt = <1408000>;
458		};
459
460		pp1800_l1c: ldo1 {
461			regulator-min-microvolt = <1616000>;
462			regulator-max-microvolt = <1984000>;
463			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
464		};
465
466		vdd_wcss_adc_dac:
467		pp1300_l2c: ldo2 {
468			regulator-min-microvolt = <1168000>;
469			regulator-max-microvolt = <1304000>;
470			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
471		};
472
473		pp1200_brij:
474		vdd_ufs1_1p2:
475		vdda_csi0_1p25:
476		vdda_csi1_1p25:
477		vdda_csi2_1p25:
478		vdda_csi3_1p25:
479		vdda_hv_ebi0:
480		vdda_mipi_dsi0_1p2:
481		vdda_usb_ss_dp_1p2:
482		vddpx_10:
483		pp1200_l3c: ldo3 {
484			regulator-min-microvolt = <1200000>;
485			regulator-max-microvolt = <1200000>;
486			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
487		};
488
489		vddpx_2:
490		ppvar_l6c: ldo6 {
491			regulator-min-microvolt = <1800000>;
492			regulator-max-microvolt = <2952000>;
493			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
494		};
495
496		pp3300_l7c: ldo7 {
497			regulator-min-microvolt = <3304000>;
498			regulator-max-microvolt = <3304000>;
499			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
500		};
501
502		pp1800_brij_vccio:
503		pp1800_edp_vpll:
504		pp1800_l8c: ldo8 {
505			regulator-min-microvolt = <1800000>;
506			regulator-max-microvolt = <1800000>;
507			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
508		};
509
510		pp2950_l9c: ldo9 {
511			regulator-min-microvolt = <2952000>;
512			regulator-max-microvolt = <2952000>;
513			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
514		};
515
516		pp3300_l10c: ldo10 {
517			regulator-min-microvolt = <3000000>;
518			regulator-max-microvolt = <3400000>;
519			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
520		};
521
522		pp3300_l11c: ldo11 {
523			regulator-min-microvolt = <3000000>;
524			regulator-max-microvolt = <3400000>;
525			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
526		};
527
528		src_vreg_bob: bob {
529			regulator-min-microvolt = <3008000>;
530			regulator-max-microvolt = <3960000>;
531			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
532		};
533	};
534};
535
536&ap_ec_spi {
537	status = "okay";
538	cros_ec: ec@0 {
539		compatible = "google,cros-ec-spi";
540		reg = <0>;
541		interrupt-parent = <&tlmm>;
542		interrupts = <94 IRQ_TYPE_LEVEL_LOW>;
543		pinctrl-names = "default";
544		pinctrl-0 = <&ap_ec_int_l>;
545		spi-max-frequency = <3000000>;
546
547		cros_ec_pwm: ec-pwm {
548			compatible = "google,cros-ec-pwm";
549			#pwm-cells = <1>;
550		};
551
552		i2c_tunnel: i2c-tunnel {
553			compatible = "google,cros-ec-i2c-tunnel";
554			google,remote-bus = <0>;
555			#address-cells = <1>;
556			#size-cells = <0>;
557		};
558
559		typec {
560			compatible = "google,cros-ec-typec";
561			#address-cells = <1>;
562			#size-cells = <0>;
563
564			usb_c0: connector@0 {
565				compatible = "usb-c-connector";
566				reg = <0>;
567				label = "left";
568				power-role = "dual";
569				data-role = "host";
570				try-power-role = "source";
571			};
572
573			usb_c1: connector@1 {
574				compatible = "usb-c-connector";
575				reg = <1>;
576				label = "right";
577				power-role = "dual";
578				data-role = "host";
579				try-power-role = "source";
580			};
581		};
582	};
583};
584
585&ap_h1_spi {
586	status = "okay";
587	cr50: tpm@0 {
588		compatible = "google,cr50";
589		reg = <0>;
590		pinctrl-names = "default";
591		pinctrl-0 = <&h1_ap_int_odl>;
592		spi-max-frequency = <800000>;
593		interrupt-parent = <&tlmm>;
594		interrupts = <42 IRQ_TYPE_EDGE_RISING>;
595	};
596};
597
598&camcc {
599	status = "disabled";
600};
601
602&dsi0 {
603	status = "okay";
604	vdda-supply = <&vdda_mipi_dsi0_1p2>;
605};
606
607&dsi_phy {
608	status = "okay";
609	vdds-supply = <&vdda_mipi_dsi0_pll>;
610};
611
612ap_sar_sensor_i2c: &i2c5 {
613	clock-frequency = <400000>;
614
615	ap_sar_sensor: proximity@28 {
616		compatible = "semtech,sx9310";
617		reg = <0x28>;
618		#io-channel-cells = <1>;
619		pinctrl-names = "default";
620		pinctrl-0 = <&p_sensor_int_l>;
621
622		interrupt-parent = <&tlmm>;
623		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
624
625		vdd-supply = <&pp3300_a>;
626		svdd-supply = <&pp1800_prox>;
627
628		status = "disabled";
629		label = "proximity-wifi";
630	};
631};
632
633ap_tp_i2c: &i2c7 {
634	status = "okay";
635	clock-frequency = <400000>;
636
637	trackpad: trackpad@15 {
638		compatible = "elan,ekth3000";
639		reg = <0x15>;
640		pinctrl-names = "default";
641		pinctrl-0 = <&tp_int_odl>;
642
643		interrupt-parent = <&tlmm>;
644		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
645
646		vcc-supply = <&pp3300_fp_tp>;
647
648		wakeup-source;
649	};
650};
651
652hp_i2c: &i2c9 {
653	status = "okay";
654	clock-frequency = <400000>;
655
656	alc5682: codec@1a {
657		compatible = "realtek,rt5682i";
658		reg = <0x1a>;
659		pinctrl-names = "default";
660		pinctrl-0 = <&hp_irq>;
661
662		#sound-dai-cells = <1>;
663
664		interrupt-parent = <&tlmm>;
665		/*
666		 * This will get ignored because the interrupt type
667		 * is set in rt5682.c.
668		 */
669		interrupts = <28 IRQ_TYPE_EDGE_BOTH>;
670
671		AVDD-supply = <&pp1800_alc5682>;
672		MICVDD-supply = <&pp3300_codec>;
673		VBAT-supply = <&pp3300_audio>;
674
675		realtek,dmic1-data-pin = <1>;
676		realtek,dmic1-clk-pin = <1>;
677		realtek,jd-src = <1>;
678	};
679};
680
681&lpass_cpu {
682	status = "okay";
683
684	pinctrl-names = "default";
685	pinctrl-0 = <&sec_mi2s_active>, <&pri_mi2s_active>, <&pri_mi2s_mclk_active>;
686
687	#address-cells = <1>;
688	#size-cells = <0>;
689
690	mi2s@0 {
691		reg = <MI2S_PRIMARY>;
692		qcom,playback-sd-lines = <1>;
693		qcom,capture-sd-lines = <0>;
694	};
695
696	secondary_mi2s: mi2s@1 {
697		reg = <MI2S_SECONDARY>;
698		qcom,playback-sd-lines = <0>;
699	};
700
701	hdmi-primary@0 {
702		reg = <LPASS_DP_RX>;
703	};
704};
705
706&mdp {
707	status = "okay";
708};
709
710&mdss {
711	status = "okay";
712};
713
714&mdss_dp {
715	status = "okay";
716	pinctrl-names = "default";
717	pinctrl-0 = <&dp_hot_plug_det>;
718	data-lanes = <0 1>;
719	vdda-1p2-supply = <&vdda_usb_ss_dp_1p2>;
720	vdda-0p9-supply = <&vdda_usb_ss_dp_core>;
721};
722
723&pm6150_adc {
724	charger-thermistor@4f {
725		reg = <ADC5_AMUX_THM3_100K_PU>;
726		qcom,ratiometric;
727		qcom,hw-settle-time = <200>;
728	};
729};
730
731&pm6150_adc_tm {
732	status = "okay";
733
734	charger-thermistor@0 {
735		reg = <0>;
736		io-channels = <&pm6150_adc ADC5_AMUX_THM3_100K_PU>;
737		qcom,ratiometric;
738		qcom,hw-settle-time-us = <200>;
739	};
740};
741
742&pm6150_pon {
743	status = "disabled";
744};
745
746&qupv3_id_0 {
747	status = "okay";
748};
749
750&qupv3_id_1 {
751	status = "okay";
752};
753
754&remoteproc_mpss {
755	status = "okay";
756	compatible = "qcom,sc7180-mss-pil";
757	iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>;
758	memory-region = <&mba_mem &mpss_mem>;
759
760	/* This gets overridden for SKUs with LTE support. */
761	firmware-name = "qcom/sc7180-trogdor/modem-nolte/mba.mbn",
762			"qcom/sc7180-trogdor/modem-nolte/qdsp6sw.mbn";
763};
764
765&sdhc_1 {
766	status = "okay";
767
768	pinctrl-names = "default", "sleep";
769	pinctrl-0 = <&sdc1_on>;
770	pinctrl-1 = <&sdc1_off>;
771	vmmc-supply = <&mcp_vcc>;
772	vqmmc-supply = <&mcp_vccq>;
773};
774
775&sdhc_2 {
776	pinctrl-names = "default", "sleep";
777	pinctrl-0 = <&sdc2_on>;
778	pinctrl-1 = <&sdc2_off>;
779	vmmc-supply = <&pp2950_l9c>;
780	vqmmc-supply = <&ppvar_l6c>;
781
782	cd-gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
783};
784
785&spi0 {
786	pinctrl-0 = <&qup_spi0_cs_gpio_init_high>, <&qup_spi0_cs_gpio>;
787	cs-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>;
788};
789
790&spi6 {
791	pinctrl-0 = <&qup_spi6_cs_gpio_init_high>, <&qup_spi6_cs_gpio>;
792	cs-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
793};
794
795ap_spi_fp: &spi10 {
796	pinctrl-0 = <&qup_spi10_cs_gpio_init_high>, <&qup_spi10_cs_gpio>;
797	cs-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>;
798
799	cros_ec_fp: ec@0 {
800		compatible = "google,cros-ec-spi";
801		reg = <0>;
802		interrupt-parent = <&tlmm>;
803		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
804		pinctrl-names = "default";
805		pinctrl-0 = <&fp_to_ap_irq_l>;
806		spi-max-frequency = <3000000>;
807	};
808};
809
810#include <arm/cros-ec-keyboard.dtsi>
811#include <arm/cros-ec-sbs.dtsi>
812
813&uart3 {
814	status = "okay";
815
816	/delete-property/interrupts;
817	interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
818				<&tlmm 41 IRQ_TYPE_EDGE_FALLING>;
819
820	pinctrl-names = "default", "sleep";
821	pinctrl-1 = <&qup_uart3_sleep>;
822
823	bluetooth: bluetooth {
824		compatible = "qcom,wcn3991-bt";
825		vddio-supply = <&pp1800_l10a>;
826		vddxo-supply = <&pp1800_l1c>;
827		vddrf-supply = <&pp1300_l2c>;
828		vddch0-supply = <&pp3300_l10c>;
829		max-speed = <3200000>;
830	};
831};
832
833&uart8 {
834	status = "okay";
835};
836
837&usb_1 {
838	status = "okay";
839};
840
841&usb_1_dwc3 {
842	dr_mode = "host";
843};
844
845&usb_1_hsphy {
846	status = "okay";
847	vdd-supply = <&vdd_qusb_hs0_core>;
848	vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
849	vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
850	qcom,imp-res-offset-value = <8>;
851	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_15_PERCENT>;
852	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
853	qcom,bias-ctrl-value = <0x22>;
854	qcom,charge-ctrl-value = <3>;
855	qcom,hsdisc-trim-value = <0>;
856};
857
858&usb_1_qmpphy {
859	status = "okay";
860	vdda-phy-supply = <&vdda_usb_ss_dp_1p2>;
861	vdda-pll-supply = <&vdda_usb_ss_dp_core>;
862};
863
864&venus {
865	video-firmware {
866		iommus = <&apps_smmu 0x0c42 0x0>;
867	};
868};
869
870&wifi {
871	status = "okay";
872	vdd-0.8-cx-mx-supply = <&vdd_cx_wlan>;
873	vdd-1.8-xo-supply = <&pp1800_l1c>;
874	vdd-1.3-rfa-supply = <&pp1300_l2c>;
875	vdd-3.3-ch0-supply = <&pp3300_l10c>;
876	vdd-3.3-ch1-supply = <&pp3300_l11c>;
877
878	wifi-firmware {
879		iommus = <&apps_smmu 0xc2 0x1>;
880	};
881};
882
883/* PINCTRL - additions to nodes defined in sc7180.dtsi */
884
885&dp_hot_plug_det {
886	pinconf {
887		pins = "gpio117";
888		bias-disable;
889	};
890};
891
892&pri_mi2s_active {
893	pinconf {
894		pins = "gpio53", "gpio54", "gpio55", "gpio56";
895		drive-strength = <2>;
896		bias-pull-down;
897	};
898};
899
900&pri_mi2s_mclk_active {
901	pinconf {
902		pins = "gpio57";
903		drive-strength = <2>;
904		bias-pull-down;
905	};
906};
907
908&qspi_cs0 {
909	pinconf {
910		pins = "gpio68";
911		bias-disable;
912	};
913};
914
915&qspi_clk {
916	pinconf {
917		pins = "gpio63";
918		drive-strength = <8>;
919		bias-disable;
920	};
921};
922
923&qspi_data01 {
924	pinconf {
925		pins = "gpio64", "gpio65";
926
927		/* High-Z when no transfers; nice to park the lines */
928		bias-pull-up;
929	};
930};
931
932&qup_i2c2_default {
933	pinconf {
934		pins = "gpio15", "gpio16";
935		drive-strength = <2>;
936
937		/* Has external pullup */
938		bias-disable;
939	};
940};
941
942&qup_i2c4_default {
943	pinconf {
944		pins = "gpio115", "gpio116";
945		drive-strength = <2>;
946
947		/* Has external pullup */
948		bias-disable;
949	};
950};
951
952&qup_i2c5_default {
953	pinconf {
954		pins = "gpio25", "gpio26";
955		drive-strength = <2>;
956
957		/* Has external pullup */
958		bias-disable;
959	};
960};
961
962&qup_i2c7_default {
963	pinconf {
964		pins = "gpio6", "gpio7";
965		drive-strength = <2>;
966
967		/* Has external pullup */
968		bias-disable;
969	};
970};
971
972&qup_i2c9_default {
973	pinconf {
974		pins = "gpio46", "gpio47";
975		drive-strength = <2>;
976
977		/* Has external pullup */
978		bias-disable;
979	};
980};
981
982&qup_spi0_cs_gpio {
983	pinconf {
984		pins = "gpio34", "gpio35", "gpio36", "gpio37";
985		drive-strength = <2>;
986		bias-disable;
987	};
988};
989
990&qup_spi6_cs_gpio {
991	pinconf {
992		pins = "gpio59", "gpio60", "gpio61", "gpio62";
993		drive-strength = <2>;
994		bias-disable;
995	};
996};
997
998&qup_spi10_cs_gpio {
999	pinconf {
1000		pins = "gpio86", "gpio87", "gpio88", "gpio89";
1001		drive-strength = <2>;
1002		bias-disable;
1003	};
1004};
1005
1006&qup_uart3_default {
1007	pinconf-cts {
1008		/*
1009		 * Configure a pull-down on CTS to match the pull of
1010		 * the Bluetooth module.
1011		 */
1012		pins = "gpio38";
1013		bias-pull-down;
1014	};
1015
1016	pinconf-rts-tx {
1017		/* We'll drive RTS and TX, so no pull */
1018		pins = "gpio39", "gpio40";
1019		drive-strength = <2>;
1020		bias-disable;
1021	};
1022
1023	pinconf-rx {
1024		/*
1025		 * Configure a pull-up on RX. This is needed to avoid
1026		 * garbage data when the TX pin of the Bluetooth module is
1027		 * in tri-state (module powered off or not driving the
1028		 * signal yet).
1029		 */
1030		pins = "gpio41";
1031		bias-pull-up;
1032	};
1033};
1034
1035&qup_uart8_default {
1036	pinconf-tx {
1037		pins = "gpio44";
1038		drive-strength = <2>;
1039		bias-disable;
1040	};
1041
1042	pinconf-rx {
1043		pins = "gpio45";
1044		drive-strength = <2>;
1045		bias-pull-up;
1046	};
1047};
1048
1049&sec_mi2s_active {
1050	pinconf {
1051		pins = "gpio49", "gpio50", "gpio51";
1052		drive-strength = <2>;
1053		bias-pull-down;
1054	};
1055};
1056
1057/* PINCTRL - board-specific pinctrl */
1058
1059&pm6150_gpio {
1060	status = "disabled"; /* No GPIOs are connected */
1061};
1062
1063&pm6150l_gpio {
1064	gpio-line-names = "AP_SUSPEND",
1065			  "",
1066			  "",
1067			  "",
1068			  "",
1069			  "",
1070			  "",
1071			  "",
1072			  "",
1073			  "",
1074			  "",
1075			  "";
1076};
1077
1078&tlmm {
1079	/*
1080	 * pinctrl settings for pins that have no real owners.
1081	 */
1082	pinctrl-names = "default";
1083	pinctrl-0 = <&bios_flash_wp_l>, <&ap_suspend_l_neuter>;
1084
1085	amp_en: amp-en {
1086		pinmux {
1087			pins = "gpio23";
1088			function = "gpio";
1089		};
1090
1091		pinconf {
1092			pins = "gpio23";
1093			bias-pull-down;
1094		};
1095	};
1096
1097	ap_ec_int_l: ap-ec-int-l {
1098		pinmux {
1099			pins = "gpio94";
1100			function = "gpio";
1101			input-enable;
1102		};
1103
1104		pinconf {
1105			pins = "gpio94";
1106			bias-pull-up;
1107		};
1108	};
1109
1110	ap_edp_bklten: ap-edp-bklten {
1111		pinmux {
1112			pins = "gpio12";
1113			function = "gpio";
1114		};
1115
1116		pinconf {
1117			pins = "gpio12";
1118			drive-strength = <2>;
1119			bias-disable;
1120
1121			/* Force backlight to be disabled to match state at boot. */
1122			output-low;
1123		};
1124	};
1125
1126	ap_suspend_l_neuter: ap-suspend-l-neuter {
1127		pinmux  {
1128			pins = "gpio27";
1129			function = "gpio";
1130		};
1131
1132		pinconf {
1133			pins = "gpio27";
1134			bias-disable;
1135		};
1136	};
1137
1138	bios_flash_wp_l: bios-flash-wp-l {
1139		pinmux {
1140			pins = "gpio66";
1141			function = "gpio";
1142			input-enable;
1143		};
1144
1145		pinconf {
1146			pins = "gpio66";
1147			bias-disable;
1148		};
1149	};
1150
1151	edp_brij_en: edp-brij-en {
1152		pinmux {
1153			pins = "gpio104";
1154			function = "gpio";
1155		};
1156
1157		pinconf {
1158			pins = "gpio104";
1159			drive-strength = <2>;
1160			bias-disable;
1161		};
1162	};
1163
1164	en_pp3300_codec: en-pp3300-codec {
1165		pinmux {
1166			pins = "gpio83";
1167			function = "gpio";
1168		};
1169
1170		pinconf {
1171			pins = "gpio83";
1172			drive-strength = <2>;
1173			bias-disable;
1174		};
1175	};
1176
1177	en_pp3300_dx_edp: en-pp3300-dx-edp {
1178		pinmux {
1179			pins = "gpio30";
1180			function = "gpio";
1181		};
1182
1183		pinconf {
1184			pins = "gpio30";
1185			drive-strength = <2>;
1186			bias-disable;
1187		};
1188	};
1189
1190	en_pp3300_hub: en-pp3300-hub {
1191		pinmux {
1192			pins = "gpio84";
1193			function = "gpio";
1194		};
1195
1196		pinconf {
1197			pins = "gpio84";
1198			drive-strength = <2>;
1199			bias-disable;
1200		};
1201	};
1202
1203	fp_to_ap_irq_l: fp-to-ap-irq-l {
1204		pinmux {
1205			pins = "gpio4";
1206			function = "gpio";
1207			input-enable;
1208		};
1209
1210		pinconf {
1211			pins = "gpio4";
1212
1213			/* Has external pullup */
1214			bias-disable;
1215		};
1216	};
1217
1218	h1_ap_int_odl: h1-ap-int-odl {
1219		pinmux {
1220			pins = "gpio42";
1221			function = "gpio";
1222			input-enable;
1223		};
1224
1225		pinconf {
1226			pins = "gpio42";
1227			bias-pull-up;
1228		};
1229	};
1230
1231	hp_irq: hp-irq {
1232		pinmux {
1233			pins = "gpio28";
1234			function = "gpio";
1235		};
1236
1237		pinconf {
1238			pins = "gpio28";
1239			bias-pull-up;
1240		};
1241	};
1242
1243	pen_irq_l: pen-irq-l {
1244		pinmux {
1245			pins = "gpio21";
1246			function = "gpio";
1247		};
1248
1249		pinconf {
1250			pins = "gpio21";
1251
1252			/* Has external pullup */
1253			bias-disable;
1254		};
1255	};
1256
1257	pen_pdct_l: pen-pdct-l {
1258		pinmux {
1259			pins = "gpio52";
1260			function = "gpio";
1261		};
1262
1263		pinconf {
1264			pins = "gpio52";
1265
1266			/* Has external pullup */
1267			bias-disable;
1268		};
1269	};
1270
1271	pen_rst_odl: pen-rst-odl {
1272		pinmux  {
1273			pins = "gpio18";
1274			function = "gpio";
1275		};
1276
1277		pinconf {
1278			pins = "gpio18";
1279			bias-disable;
1280			drive-strength = <2>;
1281
1282			/*
1283			 * The pen driver doesn't currently support
1284			 * driving this reset line.  By specifying
1285			 * output-high here we're relying on the fact
1286			 * that this pin has a default pulldown at boot
1287			 * (which makes sure the pen was in reset if it
1288			 * was powered) and then we set it high here to
1289			 * take it out of reset.  Better would be if the
1290			 * pen driver could control this and we could
1291			 * remove "output-high" here.
1292			 */
1293			output-high; /* TODO: Remove this? */
1294		};
1295	};
1296
1297	p_sensor_int_l: p-sensor-int-l {
1298		pinmux {
1299			pins = "gpio24";
1300			function = "gpio";
1301			input-enable;
1302		};
1303
1304		pinconf {
1305			pins = "gpio24";
1306			/* Has external pullup */
1307			bias-disable;
1308		};
1309	};
1310
1311	qup_spi0_cs_gpio_init_high: qup-spi0-cs-gpio-init-high {
1312		pinconf {
1313			pins = "gpio37";
1314			output-high;
1315		};
1316	};
1317
1318	qup_spi6_cs_gpio_init_high: qup-spi6-cs-gpio-init-high {
1319		pinconf {
1320			pins = "gpio62";
1321			output-high;
1322		};
1323	};
1324
1325	qup_spi10_cs_gpio_init_high: qup-spi10-cs-gpio-init-high {
1326		pinconf {
1327			pins = "gpio89";
1328			output-high;
1329		};
1330	};
1331
1332	qup_uart3_sleep: qup-uart3-sleep {
1333		pinmux {
1334			pins = "gpio38", "gpio39",
1335			       "gpio40", "gpio41";
1336			function = "gpio";
1337		};
1338
1339		pinconf-cts {
1340			/*
1341			 * Configure a pull-down on CTS to match the pull of
1342			 * the Bluetooth module.
1343			 */
1344			pins = "gpio38";
1345			bias-pull-down;
1346		};
1347
1348		pinconf-rts {
1349			/*
1350			 * Configure pull-down on RTS. As RTS is active low
1351			 * signal, pull it low to indicate the BT SoC that it
1352			 * can wakeup the system anytime from suspend state by
1353			 * pulling RX low (by sending wakeup bytes).
1354			 */
1355			 pins = "gpio39";
1356			 bias-pull-down;
1357		};
1358
1359		pinconf-tx {
1360			/*
1361			 * Configure pull-up on TX when it isn't actively driven
1362			 * to prevent BT SoC from receiving garbage during sleep.
1363			 */
1364			pins = "gpio40";
1365			bias-pull-up;
1366		};
1367
1368		pinconf-rx {
1369			/*
1370			 * Configure a pull-up on RX. This is needed to avoid
1371			 * garbage data when the TX pin of the Bluetooth module
1372			 * is floating which may cause spurious wakeups.
1373			 */
1374			pins = "gpio41";
1375			bias-pull-up;
1376		};
1377	};
1378
1379	/* Named trackpad_int_1v8_odl on earlier revision schematics */
1380	trackpad_int_1v8_odl:
1381	tp_int_odl: tp-int-odl {
1382		pinmux {
1383			pins = "gpio0";
1384			function = "gpio";
1385		};
1386
1387		pinconf {
1388			pins = "gpio0";
1389
1390			/* Has external pullup */
1391			bias-disable;
1392		};
1393	};
1394
1395	ts_int_l: ts-int-l {
1396		pinmux  {
1397			pins = "gpio9";
1398			function = "gpio";
1399		};
1400
1401		pinconf {
1402			pins = "gpio9";
1403			bias-pull-up;
1404		};
1405	};
1406
1407	ts_reset_l: ts-reset-l {
1408		pinmux  {
1409			pins = "gpio8";
1410			function = "gpio";
1411		};
1412
1413		pinconf {
1414			pins = "gpio8";
1415			bias-disable;
1416			drive-strength = <2>;
1417		};
1418	};
1419
1420	sdc1_on: sdc1-on {
1421		pinconf-clk {
1422			pins = "sdc1_clk";
1423			bias-disable;
1424			drive-strength = <16>;
1425		};
1426
1427		pinconf-cmd {
1428			pins = "sdc1_cmd";
1429			bias-pull-up;
1430			drive-strength = <16>;
1431		};
1432
1433		pinconf-data {
1434			pins = "sdc1_data";
1435			bias-pull-up;
1436			drive-strength = <16>;
1437		};
1438
1439		pinconf-rclk {
1440			pins = "sdc1_rclk";
1441			bias-pull-down;
1442		};
1443	};
1444
1445	sdc1_off: sdc1-off {
1446		pinconf-clk {
1447			pins = "sdc1_clk";
1448			bias-disable;
1449			drive-strength = <2>;
1450		};
1451
1452		pinconf-cmd {
1453			pins = "sdc1_cmd";
1454			bias-pull-up;
1455			drive-strength = <2>;
1456		};
1457
1458		pinconf-data {
1459			pins = "sdc1_data";
1460			bias-pull-up;
1461			drive-strength = <2>;
1462		};
1463
1464		pinconf-rclk {
1465			pins = "sdc1_rclk";
1466			bias-pull-down;
1467		};
1468	};
1469
1470	sdc2_on: sdc2-on {
1471		pinconf-clk {
1472			pins = "sdc2_clk";
1473			bias-disable;
1474			drive-strength = <16>;
1475		};
1476
1477		pinconf-cmd {
1478			pins = "sdc2_cmd";
1479			bias-pull-up;
1480			drive-strength = <10>;
1481		};
1482
1483		pinconf-data {
1484			pins = "sdc2_data";
1485			bias-pull-up;
1486			drive-strength = <10>;
1487		};
1488
1489		pinconf-sd-cd {
1490			pins = "gpio69";
1491			bias-pull-up;
1492			drive-strength = <2>;
1493		};
1494	};
1495
1496	sdc2_off: sdc2-off {
1497		pinconf-clk {
1498			pins = "sdc2_clk";
1499			bias-disable;
1500			drive-strength = <2>;
1501		};
1502
1503		pinconf-cmd {
1504			pins = "sdc2_cmd";
1505			bias-pull-up;
1506			drive-strength = <2>;
1507		};
1508
1509		pinconf-data {
1510			pins = "sdc2_data";
1511			bias-pull-up;
1512			drive-strength = <2>;
1513		};
1514
1515		pinconf-sd-cd {
1516			pins = "gpio69";
1517			bias-pull-up;
1518			drive-strength = <2>;
1519		};
1520	};
1521};
1522