1// SPDX-License-Identifier: GPL-2.0
2/*
3 * SDM845 OnePlus 6(T) (enchilada / fajita) common device tree source
4 *
5 * Copyright (c) 2020, The Linux Foundation. All rights reserved.
6 */
7
8/dts-v1/;
9
10#include <dt-bindings/input/linux-event-codes.h>
11#include <dt-bindings/leds/common.h>
12#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
13#include <dt-bindings/sound/qcom,q6afe.h>
14#include <dt-bindings/sound/qcom,q6asm.h>
15
16#include "sdm845.dtsi"
17#include "sdm845-wcd9340.dtsi"
18#include "pm8998.dtsi"
19#include "pmi8998.dtsi"
20
21/delete-node/ &rmtfs_mem;
22
23/ {
24	aliases {
25		serial0 = &uart9;
26		serial1 = &uart6;
27	};
28
29	chosen {
30		stdout-path = "serial0:115200n8";
31	};
32
33	gpio-hall-sensor {
34		compatible = "gpio-keys";
35		label = "Hall effect sensor";
36
37		pinctrl-0 = <&hall_sensor_default>;
38		pinctrl-names = "default";
39
40		event-hall-sensor {
41			gpios = <&tlmm 124 GPIO_ACTIVE_LOW>;
42			label = "Hall Effect Sensor";
43			linux,input-type = <EV_SW>;
44			linux,code = <SW_LID>;
45			linux,can-disable;
46			wakeup-source;
47		};
48	};
49
50	gpio-keys {
51		compatible = "gpio-keys";
52		label = "Volume keys";
53		autorepeat;
54
55		pinctrl-names = "default";
56		pinctrl-0 = <&volume_down_gpio &volume_up_gpio>;
57
58		key-vol-down {
59			label = "Volume down";
60			linux,code = <KEY_VOLUMEDOWN>;
61			gpios = <&pm8998_gpios 5 GPIO_ACTIVE_LOW>;
62			debounce-interval = <15>;
63		};
64
65		key-vol-up {
66			label = "Volume up";
67			linux,code = <KEY_VOLUMEUP>;
68			gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>;
69			debounce-interval = <15>;
70		};
71	};
72
73	reserved-memory {
74		/*
75		 * The rmtfs_mem needs to be guarded due to "XPU limitations"
76		 * it is otherwise possible for an allocation adjacent to the
77		 * rmtfs_mem region to trigger an XPU violation, causing a crash.
78		 */
79		rmtfs_lower_guard: rmtfs-lower-guard@f5b00000 {
80			no-map;
81			reg = <0 0xf5b00000 0 0x1000>;
82		};
83		/*
84		 * The rmtfs memory region in downstream is 'dynamically allocated'
85		 * but given the same address every time. Hard code it as this address is
86		 * where the modem firmware expects it to be.
87		 */
88		rmtfs_mem: rmtfs-mem@f5b01000 {
89			compatible = "qcom,rmtfs-mem";
90			reg = <0 0xf5b01000 0 0x200000>;
91			no-map;
92
93			qcom,client-id = <1>;
94			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
95		};
96		rmtfs_upper_guard: rmtfs-upper-guard@f5d01000 {
97			no-map;
98			reg = <0 0xf5d01000 0 0x1000>;
99		};
100
101		/*
102		 * It seems like reserving the old rmtfs_mem region is also needed to prevent
103		 * random crashes which are most likely modem related, more testing needed.
104		 */
105		removed_region: removed-region@88f00000 {
106			no-map;
107			reg = <0 0x88f00000 0 0x1c00000>;
108		};
109
110		ramoops: ramoops@ac300000 {
111			compatible = "ramoops";
112			reg = <0 0xac300000 0 0x400000>;
113			record-size = <0x40000>;
114			console-size = <0x40000>;
115			ftrace-size = <0x40000>;
116			pmsg-size = <0x200000>;
117			ecc-size = <16>;
118		};
119	};
120
121	vph_pwr: vph-pwr-regulator {
122		compatible = "regulator-fixed";
123		regulator-name = "vph_pwr";
124		regulator-min-microvolt = <3700000>;
125		regulator-max-microvolt = <3700000>;
126	};
127
128	/*
129	 * Apparently RPMh does not provide support for PM8998 S4 because it
130	 * is always-on; model it as a fixed regulator.
131	 */
132	vreg_s4a_1p8: pm8998-smps4 {
133		compatible = "regulator-fixed";
134		regulator-name = "vreg_s4a_1p8";
135
136		regulator-min-microvolt = <1800000>;
137		regulator-max-microvolt = <1800000>;
138
139		regulator-always-on;
140		regulator-boot-on;
141
142		vin-supply = <&vph_pwr>;
143	};
144
145	/*
146	 * The touchscreen regulator seems to be controlled somehow by a gpio.
147	 * Model it as a fixed regulator and keep it on. Without schematics we
148	 * don't know how this is actually wired up...
149	 */
150	ts_1p8_supply: ts-1p8-regulator {
151		compatible = "regulator-fixed";
152		regulator-name = "ts_1p8_supply";
153
154		regulator-min-microvolt = <1800000>;
155		regulator-max-microvolt = <1800000>;
156
157		gpio = <&tlmm 88 0>;
158		enable-active-high;
159		regulator-boot-on;
160	};
161};
162
163&adsp_pas {
164	status = "okay";
165	firmware-name = "qcom/sdm845/oneplus6/adsp.mbn";
166};
167
168&apps_rsc {
169	regulators-0 {
170		compatible = "qcom,pm8998-rpmh-regulators";
171		qcom,pmic-id = "a";
172
173		vdd-s1-supply = <&vph_pwr>;
174		vdd-s2-supply = <&vph_pwr>;
175		vdd-s3-supply = <&vph_pwr>;
176		vdd-s4-supply = <&vph_pwr>;
177		vdd-s5-supply = <&vph_pwr>;
178		vdd-s6-supply = <&vph_pwr>;
179		vdd-s7-supply = <&vph_pwr>;
180		vdd-s8-supply = <&vph_pwr>;
181		vdd-s9-supply = <&vph_pwr>;
182		vdd-s10-supply = <&vph_pwr>;
183		vdd-s11-supply = <&vph_pwr>;
184		vdd-s12-supply = <&vph_pwr>;
185		vdd-s13-supply = <&vph_pwr>;
186		vdd-l1-l27-supply = <&vreg_s7a_1p025>;
187		vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>;
188		vdd-l3-l11-supply = <&vreg_s7a_1p025>;
189		vdd-l4-l5-supply = <&vreg_s7a_1p025>;
190		vdd-l6-supply = <&vph_pwr>;
191		vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
192		vdd-l9-supply = <&vreg_bob>;
193		vdd-l10-l23-l25-supply = <&vreg_bob>;
194		vdd-l13-l19-l21-supply = <&vreg_bob>;
195		vdd-l16-l28-supply = <&vreg_bob>;
196		vdd-l18-l22-supply = <&vreg_bob>;
197		vdd-l20-l24-supply = <&vreg_bob>;
198		vdd-l26-supply = <&vreg_s3a_1p35>;
199		vin-lvs-1-2-supply = <&vreg_s4a_1p8>;
200
201		vreg_s3a_1p35: smps3 {
202			regulator-min-microvolt = <1352000>;
203			regulator-max-microvolt = <1352000>;
204		};
205
206		vreg_s5a_2p04: smps5 {
207			regulator-min-microvolt = <1904000>;
208			regulator-max-microvolt = <2040000>;
209		};
210
211		vreg_s7a_1p025: smps7 {
212			regulator-min-microvolt = <900000>;
213			regulator-max-microvolt = <1028000>;
214		};
215
216		vdda_mipi_dsi0_pll:
217		vdda_qlink_lv:
218		vdda_ufs1_core:
219		vdda_usb1_ss_core:
220		vreg_l1a_0p875: ldo1 {
221			regulator-min-microvolt = <880000>;
222			regulator-max-microvolt = <880000>;
223			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
224		};
225
226		vreg_l2a_1p2: ldo2 {
227			regulator-min-microvolt = <1200000>;
228			regulator-max-microvolt = <1200000>;
229			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
230			regulator-always-on;
231		};
232
233		vreg_l5a_0p8: ldo5 {
234			regulator-min-microvolt = <800000>;
235			regulator-max-microvolt = <800000>;
236			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
237		};
238
239		vreg_l7a_1p8: ldo7 {
240			regulator-min-microvolt = <1800000>;
241			regulator-max-microvolt = <1800000>;
242			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
243		};
244
245		vdda_qusb_hs0_1p8:
246		vreg_l12a_1p8: ldo12 {
247			regulator-min-microvolt = <1800000>;
248			regulator-max-microvolt = <1800000>;
249			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
250		};
251
252		vreg_l14a_1p88: ldo14 {
253			regulator-min-microvolt = <1800000>;
254			regulator-max-microvolt = <1800000>;
255			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
256			regulator-always-on;
257		};
258
259		vreg_l17a_1p3: ldo17 {
260			regulator-min-microvolt = <1304000>;
261			regulator-max-microvolt = <1304000>;
262			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
263		};
264
265		vreg_l20a_2p95: ldo20 {
266			regulator-min-microvolt = <2704000>;
267			regulator-max-microvolt = <2960000>;
268			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
269		};
270
271		vreg_l23a_3p3: ldo23 {
272			regulator-min-microvolt = <3300000>;
273			regulator-max-microvolt = <3312000>;
274			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
275		};
276
277		vdda_qusb_hs0_3p1:
278		vreg_l24a_3p075: ldo24 {
279			regulator-min-microvolt = <3088000>;
280			regulator-max-microvolt = <3088000>;
281			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
282		};
283
284		vreg_l25a_3p3: ldo25 {
285			regulator-min-microvolt = <3300000>;
286			regulator-max-microvolt = <3312000>;
287			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
288		};
289
290		vdda_mipi_dsi0_1p2:
291		vdda_ufs1_1p2:
292		vreg_l26a_1p2: ldo26 {
293			regulator-min-microvolt = <1200000>;
294			regulator-max-microvolt = <1200000>;
295			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
296		};
297
298		vreg_l28a_3p0: ldo28 {
299			regulator-min-microvolt = <2856000>;
300			regulator-max-microvolt = <3008000>;
301			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
302		};
303	};
304
305	regulators-1 {
306		compatible = "qcom,pmi8998-rpmh-regulators";
307		qcom,pmic-id = "b";
308
309		vdd-bob-supply = <&vph_pwr>;
310
311		vreg_bob: bob {
312			regulator-min-microvolt = <3312000>;
313			regulator-max-microvolt = <3600000>;
314			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
315			regulator-allow-bypass;
316		};
317	};
318
319	regulators-2 {
320		compatible = "qcom,pm8005-rpmh-regulators";
321		qcom,pmic-id = "c";
322
323		vdd-s1-supply = <&vph_pwr>;
324		vdd-s2-supply = <&vph_pwr>;
325		vdd-s3-supply = <&vph_pwr>;
326		vdd-s4-supply = <&vph_pwr>;
327
328		vreg_s3c_0p6: smps3 {
329			regulator-min-microvolt = <600000>;
330			regulator-max-microvolt = <600000>;
331		};
332	};
333};
334
335&cdsp_pas {
336	status = "okay";
337	firmware-name = "qcom/sdm845/oneplus6/cdsp.mbn";
338};
339
340&gcc {
341	protected-clocks = <GCC_QSPI_CORE_CLK>,
342				<GCC_QSPI_CORE_CLK_SRC>,
343				<GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
344				<GCC_LPASS_Q6_AXI_CLK>,
345				<GCC_LPASS_SWAY_CLK>;
346};
347
348&gmu {
349	status = "okay";
350};
351
352&gpu {
353	status = "okay";
354
355	zap-shader {
356		memory-region = <&gpu_mem>;
357		firmware-name = "qcom/sdm845/oneplus6/a630_zap.mbn";
358	};
359};
360
361&i2c10 {
362	status = "okay";
363	clock-frequency = <100000>;
364
365	bq27441_fg: bq27441-battery@55 {
366		compatible = "ti,bq27411";
367		status = "okay";
368		reg = <0x55>;
369	};
370};
371
372&i2c12 {
373	status = "okay";
374	clock-frequency = <400000>;
375
376	synaptics-rmi4-i2c@20 {
377		compatible = "syna,rmi4-i2c";
378		reg = <0x20>;
379		#address-cells = <1>;
380		#size-cells = <0>;
381		interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>;
382
383		pinctrl-names = "default";
384		pinctrl-0 = <&ts_default_pins>;
385
386		vdd-supply = <&vreg_l28a_3p0>;
387		vio-supply = <&ts_1p8_supply>;
388
389		syna,reset-delay-ms = <200>;
390		syna,startup-delay-ms = <200>;
391
392		rmi4-f01@1 {
393			reg = <0x01>;
394			syna,nosleep-mode = <1>;
395		};
396
397		rmi4_f12: rmi4-f12@12 {
398			reg = <0x12>;
399			touchscreen-x-mm = <68>;
400			touchscreen-y-mm = <144>;
401			syna,sensor-type = <1>;
402			syna,rezero-wait-ms = <200>;
403		};
404	};
405};
406
407&ipa {
408	qcom,gsi-loader = "self";
409	memory-region = <&ipa_fw_mem>;
410	firmware-name = "qcom/sdm845/oneplus6/ipa_fws.mbn";
411	status = "okay";
412};
413
414&mdss {
415	status = "okay";
416};
417
418&mdss_dsi0 {
419	status = "okay";
420	vdda-supply = <&vdda_mipi_dsi0_1p2>;
421
422	/*
423	 * Both devices use different panels but all other properties
424	 * are common. Compatible line is declared in device dts.
425	 */
426	display_panel: panel@0 {
427		status = "disabled";
428
429		reg = <0>;
430
431		vddio-supply = <&vreg_l14a_1p88>;
432
433		reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
434
435		pinctrl-names = "default";
436		pinctrl-0 = <&panel_reset_pins &panel_te_pin &panel_esd_pin>;
437
438		port {
439			panel_in: endpoint {
440				remote-endpoint = <&mdss_dsi0_out>;
441			};
442		};
443	};
444};
445
446&mdss_dsi0_out {
447	remote-endpoint = <&panel_in>;
448	data-lanes = <0 1 2 3>;
449};
450
451&mdss_dsi0_phy {
452	status = "okay";
453	vdds-supply = <&vdda_mipi_dsi0_pll>;
454};
455
456/* Modem/wifi */
457&mss_pil {
458	status = "okay";
459	firmware-name = "qcom/sdm845/oneplus6/mba.mbn", "qcom/sdm845/oneplus6/modem.mbn";
460};
461
462&pm8998_gpios {
463	volume_down_gpio: pm8998-gpio5-state {
464		pinconf {
465			pins = "gpio5";
466			function = "normal";
467			input-enable;
468			bias-pull-up;
469			qcom,drive-strength = <0>;
470		};
471	};
472
473	volume_up_gpio: pm8998-gpio6-state {
474		pinconf {
475			pins = "gpio6";
476			function = "normal";
477			input-enable;
478			bias-pull-up;
479			qcom,drive-strength = <0>;
480		};
481	};
482};
483
484&pmi8998_charger {
485	status = "okay";
486};
487
488&pmi8998_flash {
489	status = "okay";
490
491	led-0 {
492		function = LED_FUNCTION_FLASH;
493		color = <LED_COLOR_ID_WHITE>;
494		led-sources = <1>;
495		led-max-microamp = <500000>;
496		flash-max-microamp = <1500000>;
497		flash-max-timeout-us = <1280000>;
498	};
499
500	led-1 {
501		function = LED_FUNCTION_FLASH;
502		color = <LED_COLOR_ID_YELLOW>;
503		led-sources = <2>;
504		led-max-microamp = <500000>;
505		flash-max-microamp = <1500000>;
506		flash-max-timeout-us = <1280000>;
507	};
508};
509
510&q6afedai {
511	dai@22 {
512		reg = <QUATERNARY_MI2S_RX>;
513		qcom,sd-lines = <1>;
514	};
515
516	dai@23 {
517		reg = <QUATERNARY_MI2S_TX>;
518		qcom,sd-lines = <0>;
519	};
520};
521
522&q6asmdai {
523	dai@0 {
524		reg = <0>;
525	};
526
527	dai@1 {
528		reg = <1>;
529	};
530
531	dai@2 {
532		reg = <2>;
533	};
534
535	dai@3 {
536		reg = <3>;
537	};
538
539	dai@4 {
540		reg = <4>;
541	};
542
543	dai@5 {
544		reg = <5>;
545	};
546};
547
548&qupv3_id_1 {
549	status = "okay";
550};
551
552&qupv3_id_0 {
553	status = "okay";
554};
555
556&qup_i2c10_default {
557	drive-strength = <2>;
558	bias-disable;
559};
560
561&qup_i2c12_default {
562	drive-strength = <2>;
563	bias-disable;
564};
565
566&qup_uart9_rx {
567	drive-strength = <2>;
568	bias-pull-up;
569};
570
571&qup_uart9_tx {
572	drive-strength = <2>;
573	bias-disable;
574};
575
576&slpi_pas {
577	firmware-name = "qcom/sdm845/oneplus6/slpi.mbn";
578	status = "okay";
579};
580
581&sound {
582	compatible = "qcom,sdm845-sndcard";
583	pinctrl-0 = <&quat_mi2s_active &quat_mi2s_sd0_active &quat_mi2s_sd1_active>;
584	pinctrl-names = "default";
585	status = "okay";
586
587	mm1-dai-link {
588		link-name = "MultiMedia1";
589		cpu {
590			sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
591		};
592	};
593
594	mm2-dai-link {
595		link-name = "MultiMedia2";
596		cpu {
597			sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
598		};
599	};
600
601	mm3-dai-link {
602		link-name = "MultiMedia3";
603		cpu {
604			sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
605		};
606	};
607
608	mm4-dai-link {
609		link-name = "MultiMedia4";
610		cpu {
611			sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA4>;
612		};
613	};
614
615	mm5-dai-link {
616		link-name = "MultiMedia5";
617		cpu {
618			sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA5>;
619		};
620	};
621
622	mm6-dai-link {
623		link-name = "MultiMedia6";
624		cpu {
625			sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA6>;
626		};
627	};
628
629	speaker_playback_dai: speaker-dai-link {
630		link-name = "Speaker Playback";
631		cpu {
632			sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
633		};
634
635		platform {
636			sound-dai = <&q6routing>;
637		};
638	};
639
640	slim-dai-link {
641		link-name = "SLIM Playback 1";
642		cpu {
643			sound-dai = <&q6afedai SLIMBUS_0_RX>;
644		};
645
646		platform {
647			sound-dai = <&q6routing>;
648		};
649
650		codec {
651			sound-dai = <&wcd9340 0>;
652		};
653	};
654
655	slimcap-dai-link {
656		link-name = "SLIM Capture 1";
657		cpu {
658			sound-dai = <&q6afedai SLIMBUS_0_TX>;
659		};
660
661		platform {
662			sound-dai = <&q6routing>;
663		};
664
665		codec {
666			sound-dai = <&wcd9340 1>;
667		};
668	};
669
670	slim2-dai-link {
671		link-name = "SLIM Playback 2";
672		cpu {
673			sound-dai = <&q6afedai SLIMBUS_1_RX>;
674		};
675
676		platform {
677			sound-dai = <&q6routing>;
678		};
679
680		codec {
681			sound-dai = <&wcd9340 2>; /* AIF2_PB */
682		};
683	};
684
685	slimcap2-dai-link {
686		link-name = "SLIM Capture 2";
687		cpu {
688			sound-dai = <&q6afedai SLIMBUS_1_TX>;
689		};
690
691		platform {
692			sound-dai = <&q6routing>;
693		};
694
695		codec {
696			sound-dai = <&wcd9340 3>; /* AIF2_CAP */
697		};
698	};
699
700	slimcap3-dai-link {
701		link-name = "SLIM Capture 3";
702		cpu {
703			sound-dai = <&q6afedai SLIMBUS_2_TX>;
704		};
705
706		platform {
707			sound-dai = <&q6routing>;
708		};
709
710		codec {
711			sound-dai = <&wcd9340 5>; /* AIF3_CAP */
712		};
713	};
714};
715
716&uart6 {
717	status = "okay";
718
719	pinctrl-0 = <&qup_uart6_4pin>;
720
721	bluetooth {
722		compatible = "qcom,wcn3990-bt";
723
724		/*
725		 * This path is relative to the qca/
726		 * subdir under lib/firmware.
727		 */
728		firmware-name = "oneplus6/crnv21.bin";
729
730		vddio-supply = <&vreg_s4a_1p8>;
731		vddxo-supply = <&vreg_l7a_1p8>;
732		vddrf-supply = <&vreg_l17a_1p3>;
733		vddch0-supply = <&vreg_l25a_3p3>;
734		max-speed = <3200000>;
735	};
736};
737
738&uart9 {
739	label = "LS-UART1";
740	status = "okay";
741};
742
743&ufs_mem_hc {
744	status = "okay";
745
746	reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;
747
748	vcc-supply = <&vreg_l20a_2p95>;
749	vcc-max-microamp = <600000>;
750};
751
752&ufs_mem_phy {
753	status = "okay";
754
755	vdda-phy-supply = <&vdda_ufs1_core>;
756	vdda-pll-supply = <&vdda_ufs1_1p2>;
757};
758
759&usb_1 {
760	status = "okay";
761
762	/*
763	 * disable USB3 clock requirement as the device only supports
764	 * USB2.
765	 */
766	qcom,select-utmi-as-pipe-clk;
767};
768
769&usb_1_dwc3 {
770	/*
771	 * We don't have the capability to switch modes yet.
772	 */
773	dr_mode = "peripheral";
774
775	/* fastest mode for USB 2 */
776	maximum-speed = "high-speed";
777
778	/* Remove USB3 phy as it's unused on this device. */
779	phys = <&usb_1_hsphy>;
780	phy-names = "usb2-phy";
781};
782
783&usb_1_hsphy {
784	status = "okay";
785
786	vdd-supply = <&vdda_usb1_ss_core>;
787	vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
788	vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
789
790	qcom,imp-res-offset-value = <8>;
791	qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
792	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
793	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
794};
795
796&tlmm {
797	gpio-reserved-ranges = <0 4>, <81 4>;
798
799	hall_sensor_default: hall-sensor-default-state {
800		pins = "gpio124";
801		function = "gpio";
802		drive-strength = <2>;
803		bias-disable;
804	};
805
806	tri_state_key_default: tri-state-key-default-state {
807		pins = "gpio40", "gpio42", "gpio26";
808		function = "gpio";
809		drive-strength = <2>;
810		bias-disable;
811	};
812
813	ts_default_pins: ts-int-state {
814		pins = "gpio99", "gpio125";
815		function = "gpio";
816		drive-strength = <16>;
817		bias-pull-up;
818	};
819
820	panel_reset_pins: panel-reset-state {
821		pins = "gpio6", "gpio25", "gpio26";
822		function = "gpio";
823		drive-strength = <8>;
824		bias-disable;
825	};
826
827	panel_te_pin: panel-te-state {
828		pins = "gpio10";
829		function = "mdp_vsync";
830		drive-strength = <2>;
831		bias-disable;
832	};
833
834	panel_esd_pin: panel-esd-state {
835		pins = "gpio30";
836		function = "gpio";
837		drive-strength = <2>;
838		bias-pull-down;
839	};
840
841	speaker_default: speaker-default-state {
842		pins = "gpio69";
843		function = "gpio";
844		drive-strength = <16>;
845		bias-pull-up;
846		output-high;
847	};
848};
849
850&venus {
851	status = "okay";
852	firmware-name = "qcom/sdm845/oneplus6/venus.mbn";
853};
854
855&wcd9340 {
856	pinctrl-0 = <&wcd_intr_default>;
857	pinctrl-names = "default";
858	reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
859	vdd-buck-supply = <&vreg_s4a_1p8>;
860	vdd-buck-sido-supply = <&vreg_s4a_1p8>;
861	vdd-tx-supply = <&vreg_s4a_1p8>;
862	vdd-rx-supply = <&vreg_s4a_1p8>;
863	vdd-io-supply = <&vreg_s4a_1p8>;
864};
865
866&wifi {
867	status = "okay";
868	vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
869	vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
870	vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
871	vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
872	vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
873
874	qcom,snoc-host-cap-8bit-quirk;
875};
876