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: led-0 {
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		DBVDD-supply = <&pp1800_alc5682>;
772		LDO1-IN-supply = <&pp1800_alc5682>;
773		MICVDD-supply = <&pp3300_codec>;
774		VBAT-supply = <&pp3300_audio>;
775
776		realtek,dmic1-data-pin = <1>;
777		realtek,dmic1-clk-pin = <1>;
778		realtek,jd-src = <1>;
779	};
780};
781
782&lpass_cpu {
783	status = "okay";
784
785	pinctrl-names = "default";
786	pinctrl-0 = <&sec_mi2s_active>, <&pri_mi2s_active>, <&pri_mi2s_mclk_active>;
787
788	#address-cells = <1>;
789	#size-cells = <0>;
790
791	mi2s@0 {
792		reg = <MI2S_PRIMARY>;
793		qcom,playback-sd-lines = <1>;
794		qcom,capture-sd-lines = <0>;
795	};
796
797	secondary_mi2s: mi2s@1 {
798		reg = <MI2S_SECONDARY>;
799		qcom,playback-sd-lines = <0>;
800	};
801
802	hdmi@5 {
803		reg = <LPASS_DP_RX>;
804	};
805};
806
807&mdp {
808	status = "okay";
809};
810
811&mdss {
812	status = "okay";
813};
814
815&mdss_dp {
816	status = "okay";
817	pinctrl-names = "default";
818	pinctrl-0 = <&dp_hot_plug_det>;
819	data-lanes = <0 1>;
820};
821
822&pm6150_adc {
823	charger-thermistor@4f {
824		reg = <ADC5_AMUX_THM3_100K_PU>;
825		qcom,ratiometric;
826		qcom,hw-settle-time = <200>;
827	};
828};
829
830&pm6150_adc_tm {
831	status = "okay";
832
833	charger-thermistor@0 {
834		reg = <0>;
835		io-channels = <&pm6150_adc ADC5_AMUX_THM3_100K_PU>;
836		qcom,ratiometric;
837		qcom,hw-settle-time-us = <200>;
838	};
839};
840
841&pm6150_pon {
842	status = "disabled";
843};
844
845&qupv3_id_0 {
846	status = "okay";
847};
848
849&qupv3_id_1 {
850	status = "okay";
851};
852
853&remoteproc_mpss {
854	status = "okay";
855	compatible = "qcom,sc7180-mss-pil";
856	iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>;
857	memory-region = <&mba_mem &mpss_mem>;
858
859	/* This gets overridden for SKUs with LTE support. */
860	firmware-name = "qcom/sc7180-trogdor/modem-nolte/mba.mbn",
861			"qcom/sc7180-trogdor/modem-nolte/qdsp6sw.mbn";
862};
863
864&sdhc_1 {
865	status = "okay";
866
867	pinctrl-names = "default", "sleep";
868	pinctrl-0 = <&sdc1_on>;
869	pinctrl-1 = <&sdc1_off>;
870	vmmc-supply = <&mcp_vcc>;
871	vqmmc-supply = <&mcp_vccq>;
872};
873
874&sdhc_2 {
875	pinctrl-names = "default", "sleep";
876	pinctrl-0 = <&sdc2_on>;
877	pinctrl-1 = <&sdc2_off>;
878	vmmc-supply = <&pp2950_l9c>;
879	vqmmc-supply = <&ppvar_l6c>;
880
881	cd-gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
882};
883
884&spi0 {
885	pinctrl-0 = <&qup_spi0_spi>, <&qup_spi0_cs_gpio>;
886	cs-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>;
887};
888
889&spi6 {
890	pinctrl-0 = <&qup_spi6_spi>, <&qup_spi6_cs_gpio>;
891	cs-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
892};
893
894ap_spi_fp: &spi10 {
895	pinctrl-0 = <&qup_spi10_spi>, <&qup_spi10_cs_gpio>;
896	cs-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>;
897
898	cros_ec_fp: ec@0 {
899		compatible = "google,cros-ec-fp", "google,cros-ec-spi";
900		reg = <0>;
901		interrupt-parent = <&tlmm>;
902		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
903		pinctrl-names = "default";
904		pinctrl-0 = <&fp_to_ap_irq_l>, <&fp_rst_l>, <&fpmcu_boot0>;
905		boot0-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
906		reset-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>;
907		spi-max-frequency = <3000000>;
908		vdd-supply = <&pp3300_fp_tp>;
909	};
910};
911
912#include <arm/cros-ec-sbs.dtsi>
913
914&uart3 {
915	status = "okay";
916
917	/delete-property/interrupts;
918	interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
919				<&tlmm 41 IRQ_TYPE_EDGE_FALLING>;
920
921	pinctrl-names = "default", "sleep";
922	pinctrl-1 = <&qup_uart3_sleep>;
923
924	bluetooth: bluetooth {
925		compatible = "qcom,wcn3991-bt";
926		vddio-supply = <&pp1800_l10a>;
927		vddxo-supply = <&pp1800_l1c>;
928		vddrf-supply = <&pp1300_l2c>;
929		vddch0-supply = <&pp3300_l10c>;
930		max-speed = <3200000>;
931	};
932};
933
934&uart8 {
935	status = "okay";
936};
937
938&usb_1 {
939	status = "okay";
940};
941
942&usb_1_dwc3 {
943	dr_mode = "host";
944	#address-cells = <1>;
945	#size-cells = <0>;
946
947	/* 2.x hub on port 1 */
948	usb_hub_2_x: hub@1 {
949		compatible = "usbbda,5411";
950		reg = <1>;
951		vdd-supply = <&pp3300_hub>;
952		peer-hub = <&usb_hub_3_x>;
953	};
954
955	/* 3.x hub on port 2 */
956	usb_hub_3_x: hub@2 {
957		compatible = "usbbda,411";
958		reg = <2>;
959		vdd-supply = <&pp3300_hub>;
960		peer-hub = <&usb_hub_2_x>;
961	};
962};
963
964&usb_1_hsphy {
965	status = "okay";
966	vdd-supply = <&vdd_qusb_hs0_core>;
967	vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
968	vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
969	qcom,imp-res-offset-value = <8>;
970	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_15_PERCENT>;
971	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
972	qcom,bias-ctrl-value = <0x22>;
973	qcom,charge-ctrl-value = <3>;
974	qcom,hsdisc-trim-value = <0>;
975};
976
977&usb_1_qmpphy {
978	status = "okay";
979	vdda-phy-supply = <&vdda_usb_ss_dp_1p2>;
980	vdda-pll-supply = <&vdda_usb_ss_dp_core>;
981};
982
983&venus {
984	video-firmware {
985		iommus = <&apps_smmu 0x0c42 0x0>;
986	};
987};
988
989&wifi {
990	status = "okay";
991	vdd-0.8-cx-mx-supply = <&vdd_cx_wlan>;
992	vdd-1.8-xo-supply = <&pp1800_l1c>;
993	vdd-1.3-rfa-supply = <&pp1300_l2c>;
994	vdd-3.3-ch0-supply = <&pp3300_l10c>;
995	vdd-3.3-ch1-supply = <&pp3300_l11c>;
996
997	wifi-firmware {
998		iommus = <&apps_smmu 0xc2 0x1>;
999	};
1000};
1001
1002/* PINCTRL - additions to nodes defined in sc7180.dtsi */
1003
1004&dp_hot_plug_det {
1005	bias-disable;
1006};
1007
1008&pri_mi2s_active {
1009	drive-strength = <2>;
1010	bias-pull-down;
1011};
1012
1013&pri_mi2s_mclk_active {
1014	drive-strength = <2>;
1015	bias-pull-down;
1016};
1017
1018&qspi_cs0 {
1019	bias-disable;
1020};
1021
1022&qspi_clk {
1023	drive-strength = <8>;
1024	bias-disable;
1025};
1026
1027&qspi_data01 {
1028	/* High-Z when no transfers; nice to park the lines */
1029	bias-pull-up;
1030};
1031
1032&qup_i2c2_default {
1033	drive-strength = <2>;
1034
1035	/* Has external pullup */
1036	bias-disable;
1037};
1038
1039&qup_i2c4_default {
1040	drive-strength = <2>;
1041
1042	/* Has external pullup */
1043	bias-disable;
1044};
1045
1046&qup_i2c5_default {
1047	drive-strength = <2>;
1048
1049	/* Has external pullup */
1050	bias-disable;
1051};
1052
1053&qup_i2c7_default {
1054	drive-strength = <2>;
1055
1056	/* Has external pullup */
1057	bias-disable;
1058};
1059
1060&qup_i2c9_default {
1061	drive-strength = <2>;
1062
1063	/* Has external pullup */
1064	bias-disable;
1065};
1066
1067&qup_spi0_spi {
1068	drive-strength = <2>;
1069	bias-disable;
1070};
1071
1072&qup_spi0_cs_gpio {
1073	drive-strength = <2>;
1074	bias-disable;
1075};
1076
1077&qup_spi6_spi {
1078	drive-strength = <2>;
1079	bias-disable;
1080};
1081
1082&qup_spi6_cs_gpio {
1083	drive-strength = <2>;
1084	bias-disable;
1085};
1086
1087&qup_spi10_spi {
1088	drive-strength = <2>;
1089	bias-disable;
1090};
1091
1092&qup_spi10_cs_gpio {
1093	drive-strength = <2>;
1094	bias-disable;
1095};
1096
1097&qup_uart3_cts {
1098	/*
1099	 * Configure a pull-down on CTS to match the pull of
1100	 * the Bluetooth module.
1101	 */
1102	bias-pull-down;
1103};
1104
1105&qup_uart3_rts {
1106	/* We'll drive RTS, so no pull */
1107	drive-strength = <2>;
1108	bias-disable;
1109};
1110
1111&qup_uart3_tx {
1112	/* We'll drive TX, so no pull */
1113	drive-strength = <2>;
1114	bias-disable;
1115};
1116
1117&qup_uart3_rx {
1118	/*
1119	 * Configure a pull-up on RX. This is needed to avoid
1120	 * garbage data when the TX pin of the Bluetooth module is
1121	 * in tri-state (module powered off or not driving the
1122	 * signal yet).
1123	 */
1124	bias-pull-up;
1125};
1126
1127&qup_uart8_tx {
1128	drive-strength = <2>;
1129	bias-disable;
1130};
1131
1132&qup_uart8_rx {
1133	drive-strength = <2>;
1134	bias-pull-up;
1135};
1136
1137&sec_mi2s_active {
1138	drive-strength = <2>;
1139	bias-pull-down;
1140};
1141
1142/* PINCTRL - board-specific pinctrl */
1143
1144&pm6150_gpio {
1145	status = "disabled"; /* No GPIOs are connected */
1146};
1147
1148&pm6150l_gpio {
1149	gpio-line-names = "AP_SUSPEND",
1150			  "",
1151			  "",
1152			  "",
1153			  "",
1154			  "",
1155			  "",
1156			  "",
1157			  "",
1158			  "",
1159			  "",
1160			  "";
1161};
1162
1163&tlmm {
1164	/*
1165	 * pinctrl settings for pins that have no real owners.
1166	 */
1167	pinctrl-names = "default";
1168	pinctrl-0 = <&bios_flash_wp_l>, <&ap_suspend_l_neuter>;
1169
1170	amp_en: amp-en-state {
1171		pins = "gpio23";
1172		function = "gpio";
1173		bias-pull-down;
1174	};
1175
1176	ap_ec_int_l: ap-ec-int-l-state {
1177		pins = "gpio94";
1178		function = "gpio";
1179		input-enable;
1180		bias-pull-up;
1181	};
1182
1183	ap_edp_bklten: ap-edp-bklten-state {
1184		pins = "gpio12";
1185		function = "gpio";
1186		drive-strength = <2>;
1187		bias-disable;
1188
1189		/* Force backlight to be disabled to match state at boot. */
1190		output-low;
1191	};
1192
1193	ap_suspend_l_neuter: ap-suspend-l-neuter-state {
1194		pins = "gpio27";
1195		function = "gpio";
1196		bias-disable;
1197	};
1198
1199	bios_flash_wp_l: bios-flash-wp-l-state {
1200		pins = "gpio66";
1201		function = "gpio";
1202		input-enable;
1203		bias-disable;
1204	};
1205
1206	edp_brij_en: edp-brij-en-state {
1207		pins = "gpio104";
1208		function = "gpio";
1209		drive-strength = <2>;
1210		bias-disable;
1211	};
1212
1213	en_pp3300_codec: en-pp3300-codec-state {
1214		pins = "gpio83";
1215		function = "gpio";
1216		drive-strength = <2>;
1217		bias-disable;
1218	};
1219
1220	en_pp3300_dx_edp: en-pp3300-dx-edp-state {
1221		pins = "gpio30";
1222		function = "gpio";
1223		drive-strength = <2>;
1224		bias-disable;
1225	};
1226
1227	en_pp3300_hub: en-pp3300-hub-state {
1228		pins = "gpio84";
1229		function = "gpio";
1230		drive-strength = <2>;
1231		bias-disable;
1232	};
1233
1234	fp_rst_l: fp-rst-l-state {
1235		pins = "gpio22";
1236		function = "gpio";
1237		bias-disable;
1238		drive-strength = <2>;
1239	};
1240
1241	fp_to_ap_irq_l: fp-to-ap-irq-l-state {
1242		pins = "gpio4";
1243		function = "gpio";
1244		input-enable;
1245
1246		/* Has external pullup */
1247		bias-disable;
1248	};
1249
1250	fpmcu_boot0: fpmcu-boot0-state {
1251		pins = "gpio10";
1252		function = "gpio";
1253		bias-disable;
1254	};
1255
1256	h1_ap_int_odl: h1-ap-int-odl-state {
1257		pins = "gpio42";
1258		function = "gpio";
1259		input-enable;
1260		bias-pull-up;
1261	};
1262
1263	hp_irq: hp-irq-state {
1264		pins = "gpio28";
1265		function = "gpio";
1266		bias-pull-up;
1267	};
1268
1269	pen_irq_l: pen-irq-l-state {
1270		pins = "gpio21";
1271		function = "gpio";
1272
1273		/* Has external pullup */
1274		bias-disable;
1275	};
1276
1277	pen_pdct_l: pen-pdct-l-state-state {
1278		pins = "gpio52";
1279		function = "gpio";
1280
1281		/* Has external pullup */
1282		bias-disable;
1283	};
1284
1285	pen_rst_odl: pen-rst-odl-state {
1286		pins = "gpio18";
1287		function = "gpio";
1288		bias-disable;
1289		drive-strength = <2>;
1290
1291		/*
1292		 * The pen driver doesn't currently support
1293		 * driving this reset line.  By specifying
1294		 * output-high here we're relying on the fact
1295		 * that this pin has a default pulldown at boot
1296		 * (which makes sure the pen was in reset if it
1297		 * was powered) and then we set it high here to
1298		 * take it out of reset.  Better would be if the
1299		 * pen driver could control this and we could
1300		 * remove "output-high" here.
1301		 */
1302		output-high; /* TODO: Remove this? */
1303	};
1304
1305	p_sensor_int_l: p-sensor-int-l-state {
1306		pins = "gpio24";
1307		function = "gpio";
1308		input-enable;
1309
1310		/* Has external pullup */
1311		bias-disable;
1312	};
1313
1314	qup_uart3_sleep: qup-uart3-sleep-state {
1315		cts-pins {
1316			/*
1317			 * Configure a pull-down on CTS to match the pull of
1318			 * the Bluetooth module.
1319			 */
1320			pins = "gpio38";
1321			function = "gpio";
1322			bias-pull-down;
1323		};
1324
1325		rts-pins {
1326			/*
1327			 * Configure pull-down on RTS. As RTS is active low
1328			 * signal, pull it low to indicate the BT SoC that it
1329			 * can wakeup the system anytime from suspend state by
1330			 * pulling RX low (by sending wakeup bytes).
1331			 */
1332			pins = "gpio39";
1333			function = "gpio";
1334			bias-pull-down;
1335		};
1336
1337		tx-pins {
1338			/*
1339			 * Configure pull-up on TX when it isn't actively driven
1340			 * to prevent BT SoC from receiving garbage during sleep.
1341			 */
1342			pins = "gpio40";
1343			function = "gpio";
1344			bias-pull-up;
1345		};
1346
1347		rx-pins {
1348			/*
1349			 * Configure a pull-up on RX. This is needed to avoid
1350			 * garbage data when the TX pin of the Bluetooth module
1351			 * is floating which may cause spurious wakeups.
1352			 */
1353			pins = "gpio41";
1354			function = "gpio";
1355			bias-pull-up;
1356		};
1357	};
1358
1359	/* Named trackpad_int_1v8_odl on earlier revision schematics */
1360	trackpad_int_1v8_odl:
1361	tp_int_odl: tp-int-odl-state {
1362		pins = "gpio0";
1363		function = "gpio";
1364
1365		/* Has external pullup */
1366		bias-disable;
1367	};
1368
1369	ts_int_l: ts-int-l-state {
1370		pins = "gpio9";
1371		function = "gpio";
1372		bias-pull-up;
1373	};
1374
1375	ts_reset_l: ts-reset-l-state {
1376		pins = "gpio8";
1377		function = "gpio";
1378		bias-disable;
1379		drive-strength = <2>;
1380	};
1381
1382	sdc1_on: sdc1-on-state {
1383		clk-pins {
1384			pins = "sdc1_clk";
1385			bias-disable;
1386			drive-strength = <16>;
1387		};
1388
1389		cmd-pins {
1390			pins = "sdc1_cmd";
1391			bias-pull-up;
1392			drive-strength = <16>;
1393		};
1394
1395		data-pins {
1396			pins = "sdc1_data";
1397			bias-pull-up;
1398			drive-strength = <16>;
1399		};
1400
1401		rclk-pins {
1402			pins = "sdc1_rclk";
1403			bias-pull-down;
1404		};
1405	};
1406
1407	sdc1_off: sdc1-off-state {
1408		clk-pins {
1409			pins = "sdc1_clk";
1410			bias-disable;
1411			drive-strength = <2>;
1412		};
1413
1414		cmd-pins {
1415			pins = "sdc1_cmd";
1416			bias-pull-up;
1417			drive-strength = <2>;
1418		};
1419
1420		data-pins {
1421			pins = "sdc1_data";
1422			bias-pull-up;
1423			drive-strength = <2>;
1424		};
1425
1426		rclk-pins {
1427			pins = "sdc1_rclk";
1428			bias-pull-down;
1429		};
1430	};
1431
1432	sdc2_on: sdc2-on-state {
1433		clk-pins {
1434			pins = "sdc2_clk";
1435			bias-disable;
1436			drive-strength = <16>;
1437		};
1438
1439		cmd-pins {
1440			pins = "sdc2_cmd";
1441			bias-pull-up;
1442			drive-strength = <10>;
1443		};
1444
1445		data-pins {
1446			pins = "sdc2_data";
1447			bias-pull-up;
1448			drive-strength = <10>;
1449		};
1450
1451		sd-cd-pins {
1452			pins = "gpio69";
1453			function = "gpio";
1454			bias-pull-up;
1455			drive-strength = <2>;
1456		};
1457	};
1458
1459	sdc2_off: sdc2-off-state {
1460		clk-pins {
1461			pins = "sdc2_clk";
1462			bias-disable;
1463			drive-strength = <2>;
1464		};
1465
1466		cmd-pins {
1467			pins = "sdc2_cmd";
1468			bias-pull-up;
1469			drive-strength = <2>;
1470		};
1471
1472		data-pins {
1473			pins = "sdc2_data";
1474			bias-pull-up;
1475			drive-strength = <2>;
1476		};
1477
1478		sd-cd-pins {
1479			pins = "gpio69";
1480			function = "gpio";
1481			bias-pull-up;
1482			drive-strength = <2>;
1483		};
1484	};
1485
1486	uf_cam_en: uf-cam-en-state {
1487		pins = "gpio6";
1488		function = "gpio";
1489		drive-strength = <2>;
1490
1491		/* External pull down */
1492		bias-disable;
1493	};
1494
1495	wf_cam_en: wf-cam-en-state {
1496		pins = "gpio7";
1497		function = "gpio";
1498		drive-strength = <2>;
1499
1500		/* External pull down */
1501		bias-disable;
1502	};
1503};
1504