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