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