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