xref: /openbmc/linux/arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
107c8ded6SRichard Acayan// SPDX-License-Identifier: GPL-2.0
207c8ded6SRichard Acayan/*
307c8ded6SRichard Acayan * Device tree for Google Pixel 3a, adapted from google-blueline device tree,
407c8ded6SRichard Acayan * xiaomi-lavender device tree, and oneplus-common device tree.
507c8ded6SRichard Acayan *
607c8ded6SRichard Acayan * Copyright (c) 2022, Richard Acayan. All rights reserved.
707c8ded6SRichard Acayan */
807c8ded6SRichard Acayan
907c8ded6SRichard Acayan/dts-v1/;
1007c8ded6SRichard Acayan
1107c8ded6SRichard Acayan#include <dt-bindings/gpio/gpio.h>
1207c8ded6SRichard Acayan#include <dt-bindings/input/input.h>
1307c8ded6SRichard Acayan#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
1407c8ded6SRichard Acayan#include <dt-bindings/power/qcom-rpmpd.h>
1507c8ded6SRichard Acayan#include "sdm670.dtsi"
1607c8ded6SRichard Acayan#include "pm660.dtsi"
1707c8ded6SRichard Acayan#include "pm660l.dtsi"
1807c8ded6SRichard Acayan
1907c8ded6SRichard Acayan/delete-node/ &mpss_region;
2007c8ded6SRichard Acayan/delete-node/ &venus_mem;
2107c8ded6SRichard Acayan/delete-node/ &wlan_msa_mem;
2207c8ded6SRichard Acayan/delete-node/ &cdsp_mem;
2307c8ded6SRichard Acayan/delete-node/ &mba_region;
2407c8ded6SRichard Acayan/delete-node/ &adsp_mem;
2507c8ded6SRichard Acayan/delete-node/ &ipa_fw_mem;
2607c8ded6SRichard Acayan/delete-node/ &ipa_gsi_mem;
2707c8ded6SRichard Acayan/delete-node/ &gpu_mem;
2807c8ded6SRichard Acayan
2907c8ded6SRichard Acayan/ {
3007c8ded6SRichard Acayan	model = "Google Pixel 3a";
3107c8ded6SRichard Acayan	compatible = "google,sargo", "qcom,sdm670";
3207c8ded6SRichard Acayan
3307c8ded6SRichard Acayan	aliases { };
3407c8ded6SRichard Acayan
3507c8ded6SRichard Acayan	chosen {
3607c8ded6SRichard Acayan		stdout-path = "serial0:115200n8";
3707c8ded6SRichard Acayan
3807c8ded6SRichard Acayan		#address-cells = <2>;
3907c8ded6SRichard Acayan		#size-cells = <2>;
4007c8ded6SRichard Acayan		ranges;
4107c8ded6SRichard Acayan
4207c8ded6SRichard Acayan		framebuffer@9c000000 {
4307c8ded6SRichard Acayan			compatible = "simple-framebuffer";
4407c8ded6SRichard Acayan			reg = <0 0x9c000000 0 (1080 * 2220 * 4)>;
4507c8ded6SRichard Acayan			width = <1080>;
4607c8ded6SRichard Acayan			height = <2220>;
4707c8ded6SRichard Acayan			stride = <(1080 * 4)>;
4807c8ded6SRichard Acayan			format = "a8r8g8b8";
4907c8ded6SRichard Acayan		};
5007c8ded6SRichard Acayan	};
5107c8ded6SRichard Acayan
5207c8ded6SRichard Acayan	clocks {
5307c8ded6SRichard Acayan		sleep_clk: sleep-clk {
5407c8ded6SRichard Acayan			compatible = "fixed-clock";
5507c8ded6SRichard Acayan			#clock-cells = <0>;
5607c8ded6SRichard Acayan			clock-frequency = <32764>;
5707c8ded6SRichard Acayan		};
5807c8ded6SRichard Acayan
5907c8ded6SRichard Acayan		xo_board: xo-board {
6007c8ded6SRichard Acayan			compatible = "fixed-clock";
6107c8ded6SRichard Acayan			#clock-cells = <0>;
6207c8ded6SRichard Acayan			clock-frequency = <38400000>;
6307c8ded6SRichard Acayan		};
6407c8ded6SRichard Acayan	};
6507c8ded6SRichard Acayan
6607c8ded6SRichard Acayan	gpio-keys {
6707c8ded6SRichard Acayan		compatible = "gpio-keys";
6807c8ded6SRichard Acayan		autorepeat;
6907c8ded6SRichard Acayan
7007c8ded6SRichard Acayan		pinctrl-names = "default";
7107c8ded6SRichard Acayan		pinctrl-0 = <&vol_up_pin>;
7207c8ded6SRichard Acayan
7307c8ded6SRichard Acayan		key-vol-up {
7407c8ded6SRichard Acayan			label = "Volume Up";
7507c8ded6SRichard Acayan			linux,code = <KEY_VOLUMEUP>;
7607c8ded6SRichard Acayan			gpios = <&pm660l_gpios 7 GPIO_ACTIVE_LOW>;
7707c8ded6SRichard Acayan		};
7807c8ded6SRichard Acayan	};
7907c8ded6SRichard Acayan
8007c8ded6SRichard Acayan	reserved-memory {
8107c8ded6SRichard Acayan		#address-cells = <2>;
8207c8ded6SRichard Acayan		#size-cells = <2>;
8307c8ded6SRichard Acayan
8407c8ded6SRichard Acayan		mpss_region: mpss@8b000000 {
8507c8ded6SRichard Acayan			reg = <0 0x8b000000 0 0x9800000>;
8607c8ded6SRichard Acayan			no-map;
8707c8ded6SRichard Acayan		};
8807c8ded6SRichard Acayan
8907c8ded6SRichard Acayan		venus_mem: venus@94800000 {
9007c8ded6SRichard Acayan			reg = <0 0x94800000 0 0x500000>;
9107c8ded6SRichard Acayan			no-map;
9207c8ded6SRichard Acayan		};
9307c8ded6SRichard Acayan
9407c8ded6SRichard Acayan		wlan_msa_mem: wlan-msa@94d00000 {
9507c8ded6SRichard Acayan			reg = <0 0x94d00000 0 0x100000>;
9607c8ded6SRichard Acayan			no-map;
9707c8ded6SRichard Acayan		};
9807c8ded6SRichard Acayan
9907c8ded6SRichard Acayan		cdsp_mem: cdsp@94e00000 {
10007c8ded6SRichard Acayan			reg = <0 0x94e00000 0 0x800000>;
10107c8ded6SRichard Acayan			no-map;
10207c8ded6SRichard Acayan		};
10307c8ded6SRichard Acayan
10407c8ded6SRichard Acayan		mba_region: mba@95600000 {
10507c8ded6SRichard Acayan			reg = <0 0x95600000 0 0x200000>;
10607c8ded6SRichard Acayan			no-map;
10707c8ded6SRichard Acayan		};
10807c8ded6SRichard Acayan
10907c8ded6SRichard Acayan		adsp_mem: adsp@95800000 {
11007c8ded6SRichard Acayan			reg = <0 0x95800000 0 0x2200000>;
11107c8ded6SRichard Acayan			no-map;
11207c8ded6SRichard Acayan		};
11307c8ded6SRichard Acayan
11407c8ded6SRichard Acayan		ipa_fw_mem: ipa-fw@97a00000 {
11507c8ded6SRichard Acayan			reg = <0 0x97a00000 0 0x10000>;
11607c8ded6SRichard Acayan			no-map;
11707c8ded6SRichard Acayan		};
11807c8ded6SRichard Acayan
11907c8ded6SRichard Acayan		ipa_gsi_mem: ipa-gsi@97a10000 {
12007c8ded6SRichard Acayan			reg = <0 0x97a10000 0 0x5000>;
12107c8ded6SRichard Acayan			no-map;
12207c8ded6SRichard Acayan		};
12307c8ded6SRichard Acayan
12407c8ded6SRichard Acayan		gpu_mem: gpu@97a15000 {
12507c8ded6SRichard Acayan			reg = <0 0x97a15000 0 0x2000>;
12607c8ded6SRichard Acayan			no-map;
12707c8ded6SRichard Acayan		};
12807c8ded6SRichard Acayan
12907c8ded6SRichard Acayan		framebuffer-region@9c000000 {
13007c8ded6SRichard Acayan			reg = <0 0x9c000000 0 0x2400000>;
13107c8ded6SRichard Acayan			no-map;
13207c8ded6SRichard Acayan		};
13307c8ded6SRichard Acayan
13407c8ded6SRichard Acayan		/* Also includes ramoops regions */
13507c8ded6SRichard Acayan		debug_info_mem: debug-info@a1800000 {
13607c8ded6SRichard Acayan			reg = <0 0xa1800000 0 0x411000>;
13707c8ded6SRichard Acayan			no-map;
13807c8ded6SRichard Acayan		};
13907c8ded6SRichard Acayan	};
14007c8ded6SRichard Acayan
14107c8ded6SRichard Acayan	/*
14207c8ded6SRichard Acayan	 * The touchscreen regulator seems to be controlled somehow by a gpio.
14307c8ded6SRichard Acayan	 * Model it as a fixed regulator and keep it on. Without schematics we
14407c8ded6SRichard Acayan	 * don't know how this is actually wired up...
14507c8ded6SRichard Acayan	 */
14607c8ded6SRichard Acayan	ts_1p8_supply: ts-1p8-regulator {
14707c8ded6SRichard Acayan		compatible = "regulator-fixed";
14807c8ded6SRichard Acayan		regulator-name = "ts_1p8_supply";
14907c8ded6SRichard Acayan
15007c8ded6SRichard Acayan		regulator-min-microvolt = <1800000>;
15107c8ded6SRichard Acayan		regulator-max-microvolt = <1800000>;
15207c8ded6SRichard Acayan
15307c8ded6SRichard Acayan		gpio = <&pm660_gpios 12 GPIO_ACTIVE_HIGH>;
15407c8ded6SRichard Acayan		enable-active-high;
15507c8ded6SRichard Acayan	};
15607c8ded6SRichard Acayan
15707c8ded6SRichard Acayan	vph_pwr: vph-pwr-regulator {
15807c8ded6SRichard Acayan		compatible = "regulator-fixed";
15907c8ded6SRichard Acayan		regulator-name = "vph_pwr";
16007c8ded6SRichard Acayan		regulator-min-microvolt = <3312000>;
16107c8ded6SRichard Acayan		regulator-max-microvolt = <3312000>;
16207c8ded6SRichard Acayan
16307c8ded6SRichard Acayan		regulator-always-on;
16407c8ded6SRichard Acayan		regulator-boot-on;
16507c8ded6SRichard Acayan	};
16607c8ded6SRichard Acayan
16707c8ded6SRichard Acayan	/*
16807c8ded6SRichard Acayan	 * Supply map from xiaomi-lavender specifies this as the supply for
16907c8ded6SRichard Acayan	 * ldob1, ldob9, ldob10, ldoa2, and ldoa3, while downstream specifies
17007c8ded6SRichard Acayan	 * this as a power domain. Set this as a fixed regulator with the same
17107c8ded6SRichard Acayan	 * voltage as lavender until display is needed to avoid unneccessarily
17207c8ded6SRichard Acayan	 * using a deprecated binding (regulator-fixed-domain).
17307c8ded6SRichard Acayan	 */
17407c8ded6SRichard Acayan	vreg_s2b_1p05: vreg-s2b-regulator {
17507c8ded6SRichard Acayan		compatible = "regulator-fixed";
17607c8ded6SRichard Acayan		regulator-name = "vreg_s2b";
17707c8ded6SRichard Acayan		regulator-min-microvolt = <1050000>;
17807c8ded6SRichard Acayan		regulator-max-microvolt = <1050000>;
17907c8ded6SRichard Acayan	};
18007c8ded6SRichard Acayan};
18107c8ded6SRichard Acayan
18207c8ded6SRichard Acayan&apps_rsc {
18307c8ded6SRichard Acayan	regulators-0 {
18407c8ded6SRichard Acayan		compatible = "qcom,pm660-rpmh-regulators";
18507c8ded6SRichard Acayan		qcom,pmic-id = "a";
18607c8ded6SRichard Acayan
18707c8ded6SRichard Acayan		vdd-s1-supply = <&vph_pwr>;
18807c8ded6SRichard Acayan		vdd-s2-supply = <&vph_pwr>;
18907c8ded6SRichard Acayan		vdd-s3-supply = <&vph_pwr>;
19007c8ded6SRichard Acayan		vdd-s4-supply = <&vph_pwr>;
19107c8ded6SRichard Acayan		vdd-s5-supply = <&vph_pwr>;
19207c8ded6SRichard Acayan		vdd-s6-supply = <&vph_pwr>;
19307c8ded6SRichard Acayan
19407c8ded6SRichard Acayan		vdd-l1-l6-l7-supply = <&vreg_s6a_0p87>;
19507c8ded6SRichard Acayan		vdd-l2-l3-supply = <&vreg_s2b_1p05>;
19607c8ded6SRichard Acayan		vdd-l5-supply = <&vreg_s2b_1p05>;
19707c8ded6SRichard Acayan		vdd-l8-l9-l10-l11-l12-l13-l14-supply = <&vreg_s4a_2p04>;
19807c8ded6SRichard Acayan		vdd-l15-l16-l17-l18-l19-supply = <&vreg_bob>;
19907c8ded6SRichard Acayan
20007c8ded6SRichard Acayan		/*
20107c8ded6SRichard Acayan		 * S1A (FTAPC0), S2A (FTAPC1), S3A (HFAPC1) are managed
20207c8ded6SRichard Acayan		 * by the Core Power Reduction hardened (CPRh) and the
20307c8ded6SRichard Acayan		 * Operating State Manager (OSM) HW automatically.
20407c8ded6SRichard Acayan		 */
20507c8ded6SRichard Acayan
20607c8ded6SRichard Acayan		vreg_s4a_2p04: smps4 {
20707c8ded6SRichard Acayan			regulator-min-microvolt = <1808000>;
20807c8ded6SRichard Acayan			regulator-max-microvolt = <2040000>;
20907c8ded6SRichard Acayan			regulator-enable-ramp-delay = <200>;
21007c8ded6SRichard Acayan		};
21107c8ded6SRichard Acayan
21207c8ded6SRichard Acayan		vreg_s6a_0p87: smps6 {
21307c8ded6SRichard Acayan			regulator-min-microvolt = <1224000>;
21407c8ded6SRichard Acayan			regulator-max-microvolt = <1352000>;
21507c8ded6SRichard Acayan			regulator-enable-ramp-delay = <150>;
21607c8ded6SRichard Acayan		};
21707c8ded6SRichard Acayan
21807c8ded6SRichard Acayan		/* LDOs */
21907c8ded6SRichard Acayan		vreg_l1a_1p225: ldo1 {
22007c8ded6SRichard Acayan			regulator-min-microvolt = <1200000>;
22107c8ded6SRichard Acayan			regulator-max-microvolt = <1250000>;
22207c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
22307c8ded6SRichard Acayan		};
22407c8ded6SRichard Acayan
22507c8ded6SRichard Acayan		vreg_l2a_1p0: ldo2 {
22607c8ded6SRichard Acayan			regulator-min-microvolt = <1000000>;
22707c8ded6SRichard Acayan			regulator-max-microvolt = <1000000>;
22807c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
22907c8ded6SRichard Acayan		};
23007c8ded6SRichard Acayan
23107c8ded6SRichard Acayan		vreg_l3a_1p0: ldo3 {
23207c8ded6SRichard Acayan			regulator-min-microvolt = <1000000>;
23307c8ded6SRichard Acayan			regulator-max-microvolt = <1000000>;
23407c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
23507c8ded6SRichard Acayan		};
23607c8ded6SRichard Acayan
23707c8ded6SRichard Acayan		vreg_l5a_0p848: ldo5 {
23807c8ded6SRichard Acayan			regulator-min-microvolt = <800000>;
23907c8ded6SRichard Acayan			regulator-max-microvolt = <800000>;
24007c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
24107c8ded6SRichard Acayan		};
24207c8ded6SRichard Acayan
24307c8ded6SRichard Acayan		vreg_l6a_1p3: ldo6 {
24407c8ded6SRichard Acayan			regulator-min-microvolt = <1248000>;
24507c8ded6SRichard Acayan			regulator-max-microvolt = <1304000>;
24607c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
24707c8ded6SRichard Acayan		};
24807c8ded6SRichard Acayan
24907c8ded6SRichard Acayan		vreg_l7a_1p2: ldo7 {
25007c8ded6SRichard Acayan			regulator-min-microvolt = <1200000>;
25107c8ded6SRichard Acayan			regulator-max-microvolt = <1200000>;
25207c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
25307c8ded6SRichard Acayan		};
25407c8ded6SRichard Acayan
25507c8ded6SRichard Acayan		vreg_l8a_1p8: ldo8 {
25607c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
25707c8ded6SRichard Acayan			regulator-max-microvolt = <1800000>;
25807c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
259*861b67fbSRichard Acayan			regulator-always-on;
26007c8ded6SRichard Acayan		};
26107c8ded6SRichard Acayan
26207c8ded6SRichard Acayan		vreg_l9a_1p8: ldo9 {
26307c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
26407c8ded6SRichard Acayan			regulator-max-microvolt = <1800000>;
26507c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
26607c8ded6SRichard Acayan		};
26707c8ded6SRichard Acayan
26807c8ded6SRichard Acayan		vreg_l10a_1p8: ldo10 {
26907c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
27007c8ded6SRichard Acayan			regulator-max-microvolt = <1800000>;
27107c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
27207c8ded6SRichard Acayan		};
27307c8ded6SRichard Acayan
27407c8ded6SRichard Acayan		vreg_l11a_1p8: ldo11 {
27507c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
27607c8ded6SRichard Acayan			regulator-max-microvolt = <1800000>;
27707c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
27807c8ded6SRichard Acayan		};
27907c8ded6SRichard Acayan
28007c8ded6SRichard Acayan		vreg_l12a_1p8: ldo12 {
28107c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
28207c8ded6SRichard Acayan			regulator-max-microvolt = <1800000>;
28307c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
28407c8ded6SRichard Acayan		};
28507c8ded6SRichard Acayan
28607c8ded6SRichard Acayan		vreg_l13a_1p8: ldo13 {
28707c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
28807c8ded6SRichard Acayan			regulator-max-microvolt = <1800000>;
28907c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
29007c8ded6SRichard Acayan		};
29107c8ded6SRichard Acayan
29207c8ded6SRichard Acayan		vreg_l14a_1p8: ldo14 {
29307c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
29407c8ded6SRichard Acayan			regulator-max-microvolt = <1800000>;
29507c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
29607c8ded6SRichard Acayan		};
29707c8ded6SRichard Acayan
29807c8ded6SRichard Acayan		vreg_l15a_1p8: ldo15 {
29907c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
30007c8ded6SRichard Acayan			regulator-max-microvolt = <2950000>;
30107c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
30207c8ded6SRichard Acayan		};
30307c8ded6SRichard Acayan
30407c8ded6SRichard Acayan		vreg_l16a_2p7: ldo16 {
30507c8ded6SRichard Acayan			regulator-min-microvolt = <2696000>;
30607c8ded6SRichard Acayan			regulator-max-microvolt = <2696000>;
30707c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
30807c8ded6SRichard Acayan		};
30907c8ded6SRichard Acayan
31007c8ded6SRichard Acayan		vreg_l17a_1p8: ldo17 {
31107c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
31207c8ded6SRichard Acayan			regulator-max-microvolt = <2950000>;
31307c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
31407c8ded6SRichard Acayan		};
31507c8ded6SRichard Acayan
31607c8ded6SRichard Acayan		vreg_l19a_3p3: ldo19 {
31707c8ded6SRichard Acayan			regulator-min-microvolt = <3000000>;
31807c8ded6SRichard Acayan			regulator-max-microvolt = <3312000>;
31907c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
32007c8ded6SRichard Acayan		};
32107c8ded6SRichard Acayan	};
32207c8ded6SRichard Acayan
32307c8ded6SRichard Acayan	regulators-1 {
32407c8ded6SRichard Acayan		compatible = "qcom,pm660l-rpmh-regulators";
32507c8ded6SRichard Acayan		qcom,pmic-id = "b";
32607c8ded6SRichard Acayan
32707c8ded6SRichard Acayan		vdd-s1-supply = <&vph_pwr>;
32807c8ded6SRichard Acayan		vdd-s2-supply = <&vph_pwr>;
32907c8ded6SRichard Acayan		vdd-s3-s4-supply = <&vph_pwr>;
33007c8ded6SRichard Acayan		vdd-s5-supply = <&vph_pwr>;
33107c8ded6SRichard Acayan
33207c8ded6SRichard Acayan		vdd-l1-l9-l10-supply = <&vreg_s2b_1p05>;
33307c8ded6SRichard Acayan		vdd-l2-supply = <&vreg_bob>;
33407c8ded6SRichard Acayan		vdd-l3-l5-l7-l8-supply = <&vreg_bob>;
33507c8ded6SRichard Acayan		vdd-l4-l6-supply = <&vreg_bob>;
33607c8ded6SRichard Acayan		vdd-bob-supply = <&vph_pwr>;
33707c8ded6SRichard Acayan
33807c8ded6SRichard Acayan		/* LDOs */
33907c8ded6SRichard Acayan		vreg_l1b_0p925: ldo1 {
34007c8ded6SRichard Acayan			regulator-min-microvolt = <880000>;
34107c8ded6SRichard Acayan			regulator-max-microvolt = <900000>;
34207c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
34307c8ded6SRichard Acayan		};
34407c8ded6SRichard Acayan
34507c8ded6SRichard Acayan		vreg_l2b_2p95: ldo2 {
34607c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
34707c8ded6SRichard Acayan			regulator-max-microvolt = <2960000>;
34807c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
34907c8ded6SRichard Acayan		};
35007c8ded6SRichard Acayan
35107c8ded6SRichard Acayan		vreg_l3b_3p0: ldo3 {
35207c8ded6SRichard Acayan			regulator-min-microvolt = <2850000>;
35307c8ded6SRichard Acayan			regulator-max-microvolt = <3008000>;
35407c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
35507c8ded6SRichard Acayan		};
35607c8ded6SRichard Acayan
35707c8ded6SRichard Acayan		vreg_l4b_2p95: ldo4 {
35807c8ded6SRichard Acayan			regulator-min-microvolt = <2960000>;
35907c8ded6SRichard Acayan			regulator-max-microvolt = <2960000>;
36007c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
36107c8ded6SRichard Acayan		};
36207c8ded6SRichard Acayan
36307c8ded6SRichard Acayan		vreg_l5b_2p95: ldo5 {
36407c8ded6SRichard Acayan			regulator-min-microvolt = <2960000>;
36507c8ded6SRichard Acayan			regulator-max-microvolt = <2960000>;
36607c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
36707c8ded6SRichard Acayan		};
36807c8ded6SRichard Acayan
36907c8ded6SRichard Acayan		vreg_l6b_3p3: ldo6 {
37007c8ded6SRichard Acayan			regulator-min-microvolt = <3008000>;
37107c8ded6SRichard Acayan			regulator-max-microvolt = <3300000>;
37207c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
37307c8ded6SRichard Acayan		};
37407c8ded6SRichard Acayan
37507c8ded6SRichard Acayan		vreg_l7b_3p125: ldo7 {
37607c8ded6SRichard Acayan			regulator-min-microvolt = <3088000>;
37707c8ded6SRichard Acayan			regulator-max-microvolt = <3100000>;
37807c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
37907c8ded6SRichard Acayan		};
38007c8ded6SRichard Acayan
38107c8ded6SRichard Acayan		vreg_l8b_3p3: ldo8 {
38207c8ded6SRichard Acayan			regulator-min-microvolt = <3300000>;
38307c8ded6SRichard Acayan			regulator-max-microvolt = <3312000>;
38407c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
38507c8ded6SRichard Acayan		};
38607c8ded6SRichard Acayan
38707c8ded6SRichard Acayan		/*
38807c8ded6SRichard Acayan		 * Downstream specifies a fixed voltage of 3.312 V, but the
38907c8ded6SRichard Acayan		 * PMIC4 BOB ranges don't support that. Widen the range a
39007c8ded6SRichard Acayan		 * little to avoid adding a new BOB regulator type.
39107c8ded6SRichard Acayan		 */
39207c8ded6SRichard Acayan		vreg_bob: bob {
39307c8ded6SRichard Acayan			regulator-min-microvolt = <3296000>;
39407c8ded6SRichard Acayan			regulator-max-microvolt = <3328000>;
39507c8ded6SRichard Acayan			regulator-enable-ramp-delay = <500>;
39607c8ded6SRichard Acayan		};
39707c8ded6SRichard Acayan	};
39807c8ded6SRichard Acayan};
39907c8ded6SRichard Acayan
40007c8ded6SRichard Acayan&gcc {
40107c8ded6SRichard Acayan	protected-clocks = <GCC_QSPI_CORE_CLK>,
40207c8ded6SRichard Acayan			   <GCC_QSPI_CORE_CLK_SRC>,
40307c8ded6SRichard Acayan			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
40407c8ded6SRichard Acayan};
40507c8ded6SRichard Acayan
40607c8ded6SRichard Acayan&gpi_dma1 {
40707c8ded6SRichard Acayan	status = "okay";
40807c8ded6SRichard Acayan};
40907c8ded6SRichard Acayan
41007c8ded6SRichard Acayan&i2c9 {
41107c8ded6SRichard Acayan	clock-frequency = <100000>;
41207c8ded6SRichard Acayan	status = "okay";
41307c8ded6SRichard Acayan
41407c8ded6SRichard Acayan	synaptics-rmi4-i2c@20 {
41507c8ded6SRichard Acayan		compatible = "syna,rmi4-i2c";
41607c8ded6SRichard Acayan		reg = <0x20>;
41707c8ded6SRichard Acayan		interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>;
41807c8ded6SRichard Acayan
41907c8ded6SRichard Acayan		pinctrl-names = "default";
42007c8ded6SRichard Acayan		pinctrl-0 = <&touchscreen_default>;
42107c8ded6SRichard Acayan
42207c8ded6SRichard Acayan		vio-supply = <&ts_1p8_supply>;
42307c8ded6SRichard Acayan
42407c8ded6SRichard Acayan		syna,reset-delay-ms = <200>;
42507c8ded6SRichard Acayan		syna,startup-delay-ms = <200>;
42607c8ded6SRichard Acayan
42707c8ded6SRichard Acayan		#address-cells = <1>;
42807c8ded6SRichard Acayan		#size-cells = <0>;
42907c8ded6SRichard Acayan
43007c8ded6SRichard Acayan		rmi4-f01@1 {
43107c8ded6SRichard Acayan			reg = <0x01>;
43207c8ded6SRichard Acayan			syna,nosleep-mode = <1>;
43307c8ded6SRichard Acayan		};
43407c8ded6SRichard Acayan
43507c8ded6SRichard Acayan		rmi4-f12@12 {
43607c8ded6SRichard Acayan			reg = <0x12>;
43707c8ded6SRichard Acayan			touchscreen-x-mm = <62>;
43807c8ded6SRichard Acayan			touchscreen-y-mm = <127>;
43907c8ded6SRichard Acayan			syna,sensor-type = <1>;
44007c8ded6SRichard Acayan		};
44107c8ded6SRichard Acayan	};
44207c8ded6SRichard Acayan};
44307c8ded6SRichard Acayan
44407c8ded6SRichard Acayan&pm660l_gpios {
44507c8ded6SRichard Acayan	vol_up_pin: vol-up-state {
44607c8ded6SRichard Acayan		pins = "gpio7";
44707c8ded6SRichard Acayan		function = "normal";
44807c8ded6SRichard Acayan		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
44907c8ded6SRichard Acayan		input-enable;
45007c8ded6SRichard Acayan		bias-pull-up;
45107c8ded6SRichard Acayan	};
45207c8ded6SRichard Acayan};
45307c8ded6SRichard Acayan
45407c8ded6SRichard Acayan&pon_pwrkey {
45507c8ded6SRichard Acayan	status = "okay";
45607c8ded6SRichard Acayan};
45707c8ded6SRichard Acayan
45807c8ded6SRichard Acayan&pon_resin {
45907c8ded6SRichard Acayan	linux,code = <KEY_VOLUMEDOWN>;
46007c8ded6SRichard Acayan	status = "okay";
46107c8ded6SRichard Acayan};
46207c8ded6SRichard Acayan
46307c8ded6SRichard Acayan&qupv3_id_1 {
46407c8ded6SRichard Acayan	status = "okay";
46507c8ded6SRichard Acayan};
46607c8ded6SRichard Acayan
46707c8ded6SRichard Acayan&sdhc_1 {
46807c8ded6SRichard Acayan	supports-cqe;
46907c8ded6SRichard Acayan	mmc-hs200-1_8v;
47007c8ded6SRichard Acayan	mmc-hs400-1_8v;
47107c8ded6SRichard Acayan	mmc-ddr-1_8v;
47207c8ded6SRichard Acayan
47307c8ded6SRichard Acayan	qcom,ddr-config = <0xc3040873>;
47407c8ded6SRichard Acayan
47507c8ded6SRichard Acayan	vmmc-supply = <&vreg_l4b_2p95>;
47607c8ded6SRichard Acayan	vqmmc-supply = <&vreg_l8a_1p8>;
47707c8ded6SRichard Acayan
47807c8ded6SRichard Acayan	status = "okay";
47907c8ded6SRichard Acayan};
48007c8ded6SRichard Acayan
48107c8ded6SRichard Acayan&tlmm {
48207c8ded6SRichard Acayan	gpio-reserved-ranges = <0 4>, <81 4>;
48307c8ded6SRichard Acayan
48407c8ded6SRichard Acayan	touchscreen_default: ts-default-state {
48507c8ded6SRichard Acayan		ts-reset-pins {
48607c8ded6SRichard Acayan			pins = "gpio99";
48707c8ded6SRichard Acayan			function = "gpio";
48807c8ded6SRichard Acayan			drive-strength = <2>;
48907c8ded6SRichard Acayan			bias-pull-up;
49007c8ded6SRichard Acayan			output-high;
49107c8ded6SRichard Acayan		};
49207c8ded6SRichard Acayan
49307c8ded6SRichard Acayan		ts-irq-pins {
49407c8ded6SRichard Acayan			pins = "gpio125";
49507c8ded6SRichard Acayan			function = "gpio";
49607c8ded6SRichard Acayan			drive-strength = <2>;
49707c8ded6SRichard Acayan			bias-disable;
49807c8ded6SRichard Acayan		};
49907c8ded6SRichard Acayan
50007c8ded6SRichard Acayan		ts-switch-pins {
50107c8ded6SRichard Acayan			pins = "gpio135";
50207c8ded6SRichard Acayan			function = "gpio";
50307c8ded6SRichard Acayan			drive-strength = <2>;
50407c8ded6SRichard Acayan			bias-disable;
50507c8ded6SRichard Acayan			output-low;
50607c8ded6SRichard Acayan		};
50707c8ded6SRichard Acayan	};
50807c8ded6SRichard Acayan};
50907c8ded6SRichard Acayan
51007c8ded6SRichard Acayan&usb_1_hsphy {
51107c8ded6SRichard Acayan	vdd-supply = <&vreg_l1b_0p925>;
51207c8ded6SRichard Acayan	vdda-pll-supply = <&vreg_l10a_1p8>;
51307c8ded6SRichard Acayan	vdda-phy-dpdm-supply = <&vreg_l7b_3p125>;
51407c8ded6SRichard Acayan
51507c8ded6SRichard Acayan	status = "okay";
51607c8ded6SRichard Acayan};
51707c8ded6SRichard Acayan
51807c8ded6SRichard Acayan&usb_1 {
51907c8ded6SRichard Acayan	qcom,select-utmi-as-pipe-clk;
52007c8ded6SRichard Acayan	status = "okay";
52107c8ded6SRichard Acayan};
52207c8ded6SRichard Acayan
52307c8ded6SRichard Acayan&usb_1_dwc3 {
52407c8ded6SRichard Acayan	/* Only peripheral works for now */
52507c8ded6SRichard Acayan	dr_mode = "peripheral";
52607c8ded6SRichard Acayan
52707c8ded6SRichard Acayan	/* Do not assume that sdm670.dtsi will never support USB 3.0 */
52807c8ded6SRichard Acayan	phys = <&usb_1_hsphy>;
52907c8ded6SRichard Acayan	phy-names = "usb2-phy";
53007c8ded6SRichard Acayan	maximum-speed = "high-speed";
53107c8ded6SRichard Acayan};
532