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