xref: /linux/scripts/dtc/include-prefixes/arm64/qcom/sdm670-google-sargo.dts (revision 1260ed77798502de9c98020040d2995008de10cc)
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>
1344d2a252SRichard Acayan#include <dt-bindings/leds/common.h>
1407c8ded6SRichard Acayan#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
1507c8ded6SRichard Acayan#include <dt-bindings/power/qcom-rpmpd.h>
1607c8ded6SRichard Acayan#include "sdm670.dtsi"
1707c8ded6SRichard Acayan#include "pm660.dtsi"
1807c8ded6SRichard Acayan#include "pm660l.dtsi"
1907c8ded6SRichard Acayan
2007c8ded6SRichard Acayan/delete-node/ &mpss_region;
2107c8ded6SRichard Acayan/delete-node/ &venus_mem;
2207c8ded6SRichard Acayan/delete-node/ &wlan_msa_mem;
2307c8ded6SRichard Acayan/delete-node/ &cdsp_mem;
2407c8ded6SRichard Acayan/delete-node/ &mba_region;
2507c8ded6SRichard Acayan/delete-node/ &adsp_mem;
2607c8ded6SRichard Acayan/delete-node/ &ipa_fw_mem;
2707c8ded6SRichard Acayan/delete-node/ &ipa_gsi_mem;
2807c8ded6SRichard Acayan/delete-node/ &gpu_mem;
2907c8ded6SRichard Acayan
3007c8ded6SRichard Acayan/ {
3107c8ded6SRichard Acayan	model = "Google Pixel 3a";
3207c8ded6SRichard Acayan	compatible = "google,sargo", "qcom,sdm670";
3307c8ded6SRichard Acayan
3407c8ded6SRichard Acayan	aliases { };
3507c8ded6SRichard Acayan
3607c8ded6SRichard Acayan	chosen {
3707c8ded6SRichard Acayan		stdout-path = "serial0:115200n8";
3807c8ded6SRichard Acayan
3907c8ded6SRichard Acayan		#address-cells = <2>;
4007c8ded6SRichard Acayan		#size-cells = <2>;
4107c8ded6SRichard Acayan		ranges;
4207c8ded6SRichard Acayan
4307c8ded6SRichard Acayan		framebuffer@9c000000 {
4407c8ded6SRichard Acayan			compatible = "simple-framebuffer";
4507c8ded6SRichard Acayan			reg = <0 0x9c000000 0 (1080 * 2220 * 4)>;
4607c8ded6SRichard Acayan			width = <1080>;
4707c8ded6SRichard Acayan			height = <2220>;
4807c8ded6SRichard Acayan			stride = <(1080 * 4)>;
4907c8ded6SRichard Acayan			format = "a8r8g8b8";
5007c8ded6SRichard Acayan		};
5107c8ded6SRichard Acayan	};
5207c8ded6SRichard Acayan
5307c8ded6SRichard Acayan	gpio-keys {
5407c8ded6SRichard Acayan		compatible = "gpio-keys";
5507c8ded6SRichard Acayan		autorepeat;
5607c8ded6SRichard Acayan
5707c8ded6SRichard Acayan		pinctrl-names = "default";
5807c8ded6SRichard Acayan		pinctrl-0 = <&vol_up_pin>;
5907c8ded6SRichard Acayan
6007c8ded6SRichard Acayan		key-vol-up {
6107c8ded6SRichard Acayan			label = "Volume Up";
6207c8ded6SRichard Acayan			linux,code = <KEY_VOLUMEUP>;
6307c8ded6SRichard Acayan			gpios = <&pm660l_gpios 7 GPIO_ACTIVE_LOW>;
6407c8ded6SRichard Acayan		};
6507c8ded6SRichard Acayan	};
6607c8ded6SRichard Acayan
6707c8ded6SRichard Acayan	reserved-memory {
6807c8ded6SRichard Acayan		#address-cells = <2>;
6907c8ded6SRichard Acayan		#size-cells = <2>;
7007c8ded6SRichard Acayan
7107c8ded6SRichard Acayan		mpss_region: mpss@8b000000 {
7207c8ded6SRichard Acayan			reg = <0 0x8b000000 0 0x9800000>;
7307c8ded6SRichard Acayan			no-map;
7407c8ded6SRichard Acayan		};
7507c8ded6SRichard Acayan
7607c8ded6SRichard Acayan		venus_mem: venus@94800000 {
7707c8ded6SRichard Acayan			reg = <0 0x94800000 0 0x500000>;
7807c8ded6SRichard Acayan			no-map;
7907c8ded6SRichard Acayan		};
8007c8ded6SRichard Acayan
8107c8ded6SRichard Acayan		wlan_msa_mem: wlan-msa@94d00000 {
8207c8ded6SRichard Acayan			reg = <0 0x94d00000 0 0x100000>;
8307c8ded6SRichard Acayan			no-map;
8407c8ded6SRichard Acayan		};
8507c8ded6SRichard Acayan
8607c8ded6SRichard Acayan		cdsp_mem: cdsp@94e00000 {
8707c8ded6SRichard Acayan			reg = <0 0x94e00000 0 0x800000>;
8807c8ded6SRichard Acayan			no-map;
8907c8ded6SRichard Acayan		};
9007c8ded6SRichard Acayan
9107c8ded6SRichard Acayan		mba_region: mba@95600000 {
9207c8ded6SRichard Acayan			reg = <0 0x95600000 0 0x200000>;
9307c8ded6SRichard Acayan			no-map;
9407c8ded6SRichard Acayan		};
9507c8ded6SRichard Acayan
9607c8ded6SRichard Acayan		adsp_mem: adsp@95800000 {
9707c8ded6SRichard Acayan			reg = <0 0x95800000 0 0x2200000>;
9807c8ded6SRichard Acayan			no-map;
9907c8ded6SRichard Acayan		};
10007c8ded6SRichard Acayan
10107c8ded6SRichard Acayan		ipa_fw_mem: ipa-fw@97a00000 {
10207c8ded6SRichard Acayan			reg = <0 0x97a00000 0 0x10000>;
10307c8ded6SRichard Acayan			no-map;
10407c8ded6SRichard Acayan		};
10507c8ded6SRichard Acayan
10607c8ded6SRichard Acayan		ipa_gsi_mem: ipa-gsi@97a10000 {
10707c8ded6SRichard Acayan			reg = <0 0x97a10000 0 0x5000>;
10807c8ded6SRichard Acayan			no-map;
10907c8ded6SRichard Acayan		};
11007c8ded6SRichard Acayan
11107c8ded6SRichard Acayan		gpu_mem: gpu@97a15000 {
11207c8ded6SRichard Acayan			reg = <0 0x97a15000 0 0x2000>;
11307c8ded6SRichard Acayan			no-map;
11407c8ded6SRichard Acayan		};
11507c8ded6SRichard Acayan
11607c8ded6SRichard Acayan		framebuffer-region@9c000000 {
11707c8ded6SRichard Acayan			reg = <0 0x9c000000 0 0x2400000>;
11807c8ded6SRichard Acayan			no-map;
11907c8ded6SRichard Acayan		};
12007c8ded6SRichard Acayan
12107c8ded6SRichard Acayan		/* Also includes ramoops regions */
12207c8ded6SRichard Acayan		debug_info_mem: debug-info@a1800000 {
12307c8ded6SRichard Acayan			reg = <0 0xa1800000 0 0x411000>;
12407c8ded6SRichard Acayan			no-map;
12507c8ded6SRichard Acayan		};
12607c8ded6SRichard Acayan	};
12707c8ded6SRichard Acayan
12807c8ded6SRichard Acayan	/*
12907c8ded6SRichard Acayan	 * The touchscreen regulator seems to be controlled somehow by a gpio.
13007c8ded6SRichard Acayan	 * Model it as a fixed regulator and keep it on. Without schematics we
13107c8ded6SRichard Acayan	 * don't know how this is actually wired up...
13207c8ded6SRichard Acayan	 */
13307c8ded6SRichard Acayan	ts_1p8_supply: ts-1p8-regulator {
13407c8ded6SRichard Acayan		compatible = "regulator-fixed";
13507c8ded6SRichard Acayan		regulator-name = "ts_1p8_supply";
13607c8ded6SRichard Acayan
13707c8ded6SRichard Acayan		regulator-min-microvolt = <1800000>;
13807c8ded6SRichard Acayan		regulator-max-microvolt = <1800000>;
13907c8ded6SRichard Acayan
14007c8ded6SRichard Acayan		gpio = <&pm660_gpios 12 GPIO_ACTIVE_HIGH>;
14107c8ded6SRichard Acayan		enable-active-high;
14207c8ded6SRichard Acayan	};
14307c8ded6SRichard Acayan
14407c8ded6SRichard Acayan	vph_pwr: vph-pwr-regulator {
14507c8ded6SRichard Acayan		compatible = "regulator-fixed";
14607c8ded6SRichard Acayan		regulator-name = "vph_pwr";
14707c8ded6SRichard Acayan		regulator-min-microvolt = <3312000>;
14807c8ded6SRichard Acayan		regulator-max-microvolt = <3312000>;
14907c8ded6SRichard Acayan
15007c8ded6SRichard Acayan		regulator-always-on;
15107c8ded6SRichard Acayan		regulator-boot-on;
15207c8ded6SRichard Acayan	};
15307c8ded6SRichard Acayan
15407c8ded6SRichard Acayan	/*
15507c8ded6SRichard Acayan	 * Supply map from xiaomi-lavender specifies this as the supply for
15607c8ded6SRichard Acayan	 * ldob1, ldob9, ldob10, ldoa2, and ldoa3, while downstream specifies
15707c8ded6SRichard Acayan	 * this as a power domain. Set this as a fixed regulator with the same
15807c8ded6SRichard Acayan	 * voltage as lavender until display is needed to avoid unneccessarily
15907c8ded6SRichard Acayan	 * using a deprecated binding (regulator-fixed-domain).
16007c8ded6SRichard Acayan	 */
16107c8ded6SRichard Acayan	vreg_s2b_1p05: vreg-s2b-regulator {
16207c8ded6SRichard Acayan		compatible = "regulator-fixed";
16307c8ded6SRichard Acayan		regulator-name = "vreg_s2b";
16407c8ded6SRichard Acayan		regulator-min-microvolt = <1050000>;
16507c8ded6SRichard Acayan		regulator-max-microvolt = <1050000>;
16607c8ded6SRichard Acayan	};
16707c8ded6SRichard Acayan};
16807c8ded6SRichard Acayan
16907c8ded6SRichard Acayan&apps_rsc {
17007c8ded6SRichard Acayan	regulators-0 {
17107c8ded6SRichard Acayan		compatible = "qcom,pm660-rpmh-regulators";
17207c8ded6SRichard Acayan		qcom,pmic-id = "a";
17307c8ded6SRichard Acayan
17407c8ded6SRichard Acayan		vdd-s1-supply = <&vph_pwr>;
17507c8ded6SRichard Acayan		vdd-s2-supply = <&vph_pwr>;
17607c8ded6SRichard Acayan		vdd-s3-supply = <&vph_pwr>;
17707c8ded6SRichard Acayan		vdd-s4-supply = <&vph_pwr>;
17807c8ded6SRichard Acayan		vdd-s5-supply = <&vph_pwr>;
17907c8ded6SRichard Acayan		vdd-s6-supply = <&vph_pwr>;
18007c8ded6SRichard Acayan
18107c8ded6SRichard Acayan		vdd-l1-l6-l7-supply = <&vreg_s6a_0p87>;
18207c8ded6SRichard Acayan		vdd-l2-l3-supply = <&vreg_s2b_1p05>;
18307c8ded6SRichard Acayan		vdd-l5-supply = <&vreg_s2b_1p05>;
18407c8ded6SRichard Acayan		vdd-l8-l9-l10-l11-l12-l13-l14-supply = <&vreg_s4a_2p04>;
18507c8ded6SRichard Acayan		vdd-l15-l16-l17-l18-l19-supply = <&vreg_bob>;
18607c8ded6SRichard Acayan
18707c8ded6SRichard Acayan		/*
18807c8ded6SRichard Acayan		 * S1A (FTAPC0), S2A (FTAPC1), S3A (HFAPC1) are managed
18907c8ded6SRichard Acayan		 * by the Core Power Reduction hardened (CPRh) and the
19007c8ded6SRichard Acayan		 * Operating State Manager (OSM) HW automatically.
19107c8ded6SRichard Acayan		 */
19207c8ded6SRichard Acayan
19307c8ded6SRichard Acayan		vreg_s4a_2p04: smps4 {
19407c8ded6SRichard Acayan			regulator-min-microvolt = <1808000>;
19507c8ded6SRichard Acayan			regulator-max-microvolt = <2040000>;
19607c8ded6SRichard Acayan			regulator-enable-ramp-delay = <200>;
19707c8ded6SRichard Acayan		};
19807c8ded6SRichard Acayan
19907c8ded6SRichard Acayan		vreg_s6a_0p87: smps6 {
20007c8ded6SRichard Acayan			regulator-min-microvolt = <1224000>;
20107c8ded6SRichard Acayan			regulator-max-microvolt = <1352000>;
20207c8ded6SRichard Acayan			regulator-enable-ramp-delay = <150>;
20307c8ded6SRichard Acayan		};
20407c8ded6SRichard Acayan
20507c8ded6SRichard Acayan		/* LDOs */
20607c8ded6SRichard Acayan		vreg_l1a_1p225: ldo1 {
20707c8ded6SRichard Acayan			regulator-min-microvolt = <1200000>;
20807c8ded6SRichard Acayan			regulator-max-microvolt = <1250000>;
20907c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
21007c8ded6SRichard Acayan		};
21107c8ded6SRichard Acayan
21207c8ded6SRichard Acayan		vreg_l2a_1p0: ldo2 {
21307c8ded6SRichard Acayan			regulator-min-microvolt = <1000000>;
21407c8ded6SRichard Acayan			regulator-max-microvolt = <1000000>;
21507c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
21607c8ded6SRichard Acayan		};
21707c8ded6SRichard Acayan
21807c8ded6SRichard Acayan		vreg_l3a_1p0: ldo3 {
21907c8ded6SRichard Acayan			regulator-min-microvolt = <1000000>;
22007c8ded6SRichard Acayan			regulator-max-microvolt = <1000000>;
22107c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
22207c8ded6SRichard Acayan		};
22307c8ded6SRichard Acayan
22407c8ded6SRichard Acayan		vreg_l5a_0p848: ldo5 {
22507c8ded6SRichard Acayan			regulator-min-microvolt = <800000>;
22607c8ded6SRichard Acayan			regulator-max-microvolt = <800000>;
22707c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
22807c8ded6SRichard Acayan		};
22907c8ded6SRichard Acayan
23007c8ded6SRichard Acayan		vreg_l6a_1p3: ldo6 {
23107c8ded6SRichard Acayan			regulator-min-microvolt = <1248000>;
23207c8ded6SRichard Acayan			regulator-max-microvolt = <1304000>;
23307c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
23407c8ded6SRichard Acayan		};
23507c8ded6SRichard Acayan
23607c8ded6SRichard Acayan		vreg_l7a_1p2: ldo7 {
23707c8ded6SRichard Acayan			regulator-min-microvolt = <1200000>;
23807c8ded6SRichard Acayan			regulator-max-microvolt = <1200000>;
23907c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
24007c8ded6SRichard Acayan		};
24107c8ded6SRichard Acayan
24207c8ded6SRichard Acayan		vreg_l8a_1p8: ldo8 {
24307c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
24407c8ded6SRichard Acayan			regulator-max-microvolt = <1800000>;
24507c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
246861b67fbSRichard Acayan			regulator-always-on;
24707c8ded6SRichard Acayan		};
24807c8ded6SRichard Acayan
24907c8ded6SRichard Acayan		vreg_l9a_1p8: ldo9 {
25007c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
25107c8ded6SRichard Acayan			regulator-max-microvolt = <1800000>;
25207c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
25307c8ded6SRichard Acayan		};
25407c8ded6SRichard Acayan
25507c8ded6SRichard Acayan		vreg_l10a_1p8: ldo10 {
25607c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
25707c8ded6SRichard Acayan			regulator-max-microvolt = <1800000>;
25807c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
25907c8ded6SRichard Acayan		};
26007c8ded6SRichard Acayan
26107c8ded6SRichard Acayan		vreg_l11a_1p8: ldo11 {
26207c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
26307c8ded6SRichard Acayan			regulator-max-microvolt = <1800000>;
26407c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
26507c8ded6SRichard Acayan		};
26607c8ded6SRichard Acayan
26707c8ded6SRichard Acayan		vreg_l12a_1p8: ldo12 {
26807c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
26907c8ded6SRichard Acayan			regulator-max-microvolt = <1800000>;
27007c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
27107c8ded6SRichard Acayan		};
27207c8ded6SRichard Acayan
27307c8ded6SRichard Acayan		vreg_l13a_1p8: ldo13 {
27407c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
27507c8ded6SRichard Acayan			regulator-max-microvolt = <1800000>;
27607c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
27707c8ded6SRichard Acayan		};
27807c8ded6SRichard Acayan
27907c8ded6SRichard Acayan		vreg_l14a_1p8: ldo14 {
28007c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
28107c8ded6SRichard Acayan			regulator-max-microvolt = <1800000>;
28207c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
28307c8ded6SRichard Acayan		};
28407c8ded6SRichard Acayan
28507c8ded6SRichard Acayan		vreg_l15a_1p8: ldo15 {
28607c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
28707c8ded6SRichard Acayan			regulator-max-microvolt = <2950000>;
28807c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
28907c8ded6SRichard Acayan		};
29007c8ded6SRichard Acayan
29107c8ded6SRichard Acayan		vreg_l16a_2p7: ldo16 {
29207c8ded6SRichard Acayan			regulator-min-microvolt = <2696000>;
29307c8ded6SRichard Acayan			regulator-max-microvolt = <2696000>;
29407c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
29507c8ded6SRichard Acayan		};
29607c8ded6SRichard Acayan
29707c8ded6SRichard Acayan		vreg_l17a_1p8: ldo17 {
29807c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
29907c8ded6SRichard Acayan			regulator-max-microvolt = <2950000>;
30007c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
30107c8ded6SRichard Acayan		};
30207c8ded6SRichard Acayan
30307c8ded6SRichard Acayan		vreg_l19a_3p3: ldo19 {
30407c8ded6SRichard Acayan			regulator-min-microvolt = <3000000>;
30507c8ded6SRichard Acayan			regulator-max-microvolt = <3312000>;
30607c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
30707c8ded6SRichard Acayan		};
30807c8ded6SRichard Acayan	};
30907c8ded6SRichard Acayan
31007c8ded6SRichard Acayan	regulators-1 {
31107c8ded6SRichard Acayan		compatible = "qcom,pm660l-rpmh-regulators";
31207c8ded6SRichard Acayan		qcom,pmic-id = "b";
31307c8ded6SRichard Acayan
31407c8ded6SRichard Acayan		vdd-s1-supply = <&vph_pwr>;
31507c8ded6SRichard Acayan		vdd-s2-supply = <&vph_pwr>;
31607c8ded6SRichard Acayan		vdd-s3-s4-supply = <&vph_pwr>;
31707c8ded6SRichard Acayan		vdd-s5-supply = <&vph_pwr>;
31807c8ded6SRichard Acayan
31907c8ded6SRichard Acayan		vdd-l1-l9-l10-supply = <&vreg_s2b_1p05>;
32007c8ded6SRichard Acayan		vdd-l2-supply = <&vreg_bob>;
32107c8ded6SRichard Acayan		vdd-l3-l5-l7-l8-supply = <&vreg_bob>;
32207c8ded6SRichard Acayan		vdd-l4-l6-supply = <&vreg_bob>;
32307c8ded6SRichard Acayan		vdd-bob-supply = <&vph_pwr>;
32407c8ded6SRichard Acayan
32507c8ded6SRichard Acayan		/* LDOs */
32607c8ded6SRichard Acayan		vreg_l1b_0p925: ldo1 {
32707c8ded6SRichard Acayan			regulator-min-microvolt = <880000>;
32807c8ded6SRichard Acayan			regulator-max-microvolt = <900000>;
32907c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
33007c8ded6SRichard Acayan		};
33107c8ded6SRichard Acayan
33207c8ded6SRichard Acayan		vreg_l2b_2p95: ldo2 {
33307c8ded6SRichard Acayan			regulator-min-microvolt = <1800000>;
33407c8ded6SRichard Acayan			regulator-max-microvolt = <2960000>;
33507c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
33607c8ded6SRichard Acayan		};
33707c8ded6SRichard Acayan
33807c8ded6SRichard Acayan		vreg_l3b_3p0: ldo3 {
33907c8ded6SRichard Acayan			regulator-min-microvolt = <2850000>;
34007c8ded6SRichard Acayan			regulator-max-microvolt = <3008000>;
34107c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
34207c8ded6SRichard Acayan		};
34307c8ded6SRichard Acayan
34407c8ded6SRichard Acayan		vreg_l4b_2p95: ldo4 {
34507c8ded6SRichard Acayan			regulator-min-microvolt = <2960000>;
34607c8ded6SRichard Acayan			regulator-max-microvolt = <2960000>;
34707c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
34807c8ded6SRichard Acayan		};
34907c8ded6SRichard Acayan
35007c8ded6SRichard Acayan		vreg_l5b_2p95: ldo5 {
35107c8ded6SRichard Acayan			regulator-min-microvolt = <2960000>;
35207c8ded6SRichard Acayan			regulator-max-microvolt = <2960000>;
35307c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
35407c8ded6SRichard Acayan		};
35507c8ded6SRichard Acayan
35607c8ded6SRichard Acayan		vreg_l6b_3p3: ldo6 {
35707c8ded6SRichard Acayan			regulator-min-microvolt = <3008000>;
35807c8ded6SRichard Acayan			regulator-max-microvolt = <3300000>;
35907c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
36007c8ded6SRichard Acayan		};
36107c8ded6SRichard Acayan
36207c8ded6SRichard Acayan		vreg_l7b_3p125: ldo7 {
36307c8ded6SRichard Acayan			regulator-min-microvolt = <3088000>;
36407c8ded6SRichard Acayan			regulator-max-microvolt = <3100000>;
36507c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
36607c8ded6SRichard Acayan		};
36707c8ded6SRichard Acayan
36807c8ded6SRichard Acayan		vreg_l8b_3p3: ldo8 {
36907c8ded6SRichard Acayan			regulator-min-microvolt = <3300000>;
37007c8ded6SRichard Acayan			regulator-max-microvolt = <3312000>;
37107c8ded6SRichard Acayan			regulator-enable-ramp-delay = <250>;
37207c8ded6SRichard Acayan		};
37307c8ded6SRichard Acayan
37407c8ded6SRichard Acayan		/*
37507c8ded6SRichard Acayan		 * Downstream specifies a fixed voltage of 3.312 V, but the
37607c8ded6SRichard Acayan		 * PMIC4 BOB ranges don't support that. Widen the range a
37707c8ded6SRichard Acayan		 * little to avoid adding a new BOB regulator type.
37807c8ded6SRichard Acayan		 */
37907c8ded6SRichard Acayan		vreg_bob: bob {
38007c8ded6SRichard Acayan			regulator-min-microvolt = <3296000>;
38107c8ded6SRichard Acayan			regulator-max-microvolt = <3328000>;
38207c8ded6SRichard Acayan			regulator-enable-ramp-delay = <500>;
38307c8ded6SRichard Acayan		};
38407c8ded6SRichard Acayan	};
38507c8ded6SRichard Acayan};
38607c8ded6SRichard Acayan
38707c8ded6SRichard Acayan&gcc {
38807c8ded6SRichard Acayan	protected-clocks = <GCC_QSPI_CORE_CLK>,
38907c8ded6SRichard Acayan			   <GCC_QSPI_CORE_CLK_SRC>,
39007c8ded6SRichard Acayan			   <GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
39107c8ded6SRichard Acayan};
39207c8ded6SRichard Acayan
39307c8ded6SRichard Acayan&gpi_dma1 {
39407c8ded6SRichard Acayan	status = "okay";
39507c8ded6SRichard Acayan};
39607c8ded6SRichard Acayan
397*fbf7cfa3SRichard Acayan&gpu {
398*fbf7cfa3SRichard Acayan	status = "okay";
399*fbf7cfa3SRichard Acayan
400*fbf7cfa3SRichard Acayan	zap-shader {
401*fbf7cfa3SRichard Acayan		memory-region = <&gpu_mem>;
402*fbf7cfa3SRichard Acayan		firmware-name = "qcom/sdm670/sargo/a615_zap.mbn";
403*fbf7cfa3SRichard Acayan	};
404*fbf7cfa3SRichard Acayan};
405*fbf7cfa3SRichard Acayan
40607c8ded6SRichard Acayan&i2c9 {
40707c8ded6SRichard Acayan	clock-frequency = <100000>;
40807c8ded6SRichard Acayan	status = "okay";
40907c8ded6SRichard Acayan
41007c8ded6SRichard Acayan	synaptics-rmi4-i2c@20 {
41107c8ded6SRichard Acayan		compatible = "syna,rmi4-i2c";
41207c8ded6SRichard Acayan		reg = <0x20>;
41307c8ded6SRichard Acayan		interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>;
41407c8ded6SRichard Acayan
41507c8ded6SRichard Acayan		pinctrl-names = "default";
41607c8ded6SRichard Acayan		pinctrl-0 = <&touchscreen_default>;
41707c8ded6SRichard Acayan
41807c8ded6SRichard Acayan		vio-supply = <&ts_1p8_supply>;
41907c8ded6SRichard Acayan
42007c8ded6SRichard Acayan		syna,reset-delay-ms = <200>;
42107c8ded6SRichard Acayan		syna,startup-delay-ms = <200>;
42207c8ded6SRichard Acayan
42307c8ded6SRichard Acayan		#address-cells = <1>;
42407c8ded6SRichard Acayan		#size-cells = <0>;
42507c8ded6SRichard Acayan
42607c8ded6SRichard Acayan		rmi4-f01@1 {
42707c8ded6SRichard Acayan			reg = <0x01>;
42807c8ded6SRichard Acayan			syna,nosleep-mode = <1>;
42907c8ded6SRichard Acayan		};
43007c8ded6SRichard Acayan
43107c8ded6SRichard Acayan		rmi4-f12@12 {
43207c8ded6SRichard Acayan			reg = <0x12>;
43307c8ded6SRichard Acayan			touchscreen-x-mm = <62>;
43407c8ded6SRichard Acayan			touchscreen-y-mm = <127>;
43507c8ded6SRichard Acayan			syna,sensor-type = <1>;
43607c8ded6SRichard Acayan		};
43707c8ded6SRichard Acayan	};
43807c8ded6SRichard Acayan};
43907c8ded6SRichard Acayan
440232490b9SRichard Acayan&mdss {
441232490b9SRichard Acayan	status = "okay";
442232490b9SRichard Acayan};
443232490b9SRichard Acayan
444232490b9SRichard Acayan&mdss_dsi0 {
445232490b9SRichard Acayan	vdda-supply = <&vreg_l1a_1p225>;
446232490b9SRichard Acayan	status = "okay";
447232490b9SRichard Acayan
448232490b9SRichard Acayan	panel@0 {
449232490b9SRichard Acayan		compatible = "samsung,s6e3fa7-ams559nk06";
450232490b9SRichard Acayan		reg = <0>;
451232490b9SRichard Acayan
452232490b9SRichard Acayan		reset-gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;
453232490b9SRichard Acayan
454232490b9SRichard Acayan		pinctrl-names = "default";
455232490b9SRichard Acayan		pinctrl-0 = <&panel_default>;
456232490b9SRichard Acayan
457232490b9SRichard Acayan		power-supply = <&vreg_l6b_3p3>;
458232490b9SRichard Acayan
459232490b9SRichard Acayan		port {
460232490b9SRichard Acayan			panel_in: endpoint {
461232490b9SRichard Acayan				remote-endpoint = <&mdss_dsi0_out>;
462232490b9SRichard Acayan			};
463232490b9SRichard Acayan		};
464232490b9SRichard Acayan	};
465232490b9SRichard Acayan};
466232490b9SRichard Acayan
467232490b9SRichard Acayan&mdss_dsi0_out {
468232490b9SRichard Acayan	remote-endpoint = <&panel_in>;
469232490b9SRichard Acayan	data-lanes = <0 1 2 3>;
470232490b9SRichard Acayan};
471232490b9SRichard Acayan
472232490b9SRichard Acayan&mdss_dsi0_phy {
473232490b9SRichard Acayan	vdds-supply = <&vreg_l1b_0p925>;
474232490b9SRichard Acayan	status = "okay";
475232490b9SRichard Acayan};
476232490b9SRichard Acayan
477232490b9SRichard Acayan&mdss_mdp {
478232490b9SRichard Acayan	status = "okay";
479232490b9SRichard Acayan};
480232490b9SRichard Acayan
48144d2a252SRichard Acayan&pm660l_flash {
48244d2a252SRichard Acayan	status = "okay";
48344d2a252SRichard Acayan
48444d2a252SRichard Acayan	led-0 {
48544d2a252SRichard Acayan		function = LED_FUNCTION_FLASH;
48644d2a252SRichard Acayan		color = <LED_COLOR_ID_WHITE>;
48744d2a252SRichard Acayan		led-sources = <1>, <2>;
48844d2a252SRichard Acayan		led-max-microamp = <500000>;
48944d2a252SRichard Acayan		flash-max-microamp = <1500000>;
49044d2a252SRichard Acayan		flash-max-timeout-us = <1280000>;
49144d2a252SRichard Acayan	};
49244d2a252SRichard Acayan};
49344d2a252SRichard Acayan
49407c8ded6SRichard Acayan&pm660l_gpios {
49507c8ded6SRichard Acayan	vol_up_pin: vol-up-state {
49607c8ded6SRichard Acayan		pins = "gpio7";
49707c8ded6SRichard Acayan		function = "normal";
49807c8ded6SRichard Acayan		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
49907c8ded6SRichard Acayan		input-enable;
50007c8ded6SRichard Acayan		bias-pull-up;
50107c8ded6SRichard Acayan	};
50207c8ded6SRichard Acayan};
50307c8ded6SRichard Acayan
50407c8ded6SRichard Acayan&pon_pwrkey {
50507c8ded6SRichard Acayan	status = "okay";
50607c8ded6SRichard Acayan};
50707c8ded6SRichard Acayan
50807c8ded6SRichard Acayan&pon_resin {
50907c8ded6SRichard Acayan	linux,code = <KEY_VOLUMEDOWN>;
51007c8ded6SRichard Acayan	status = "okay";
51107c8ded6SRichard Acayan};
51207c8ded6SRichard Acayan
51307c8ded6SRichard Acayan&qupv3_id_1 {
51407c8ded6SRichard Acayan	status = "okay";
51507c8ded6SRichard Acayan};
51607c8ded6SRichard Acayan
51707c8ded6SRichard Acayan&sdhc_1 {
51807c8ded6SRichard Acayan	supports-cqe;
51907c8ded6SRichard Acayan	mmc-hs200-1_8v;
52007c8ded6SRichard Acayan	mmc-hs400-1_8v;
52107c8ded6SRichard Acayan	mmc-ddr-1_8v;
52207c8ded6SRichard Acayan
52307c8ded6SRichard Acayan	qcom,ddr-config = <0xc3040873>;
52407c8ded6SRichard Acayan
52507c8ded6SRichard Acayan	vmmc-supply = <&vreg_l4b_2p95>;
52607c8ded6SRichard Acayan	vqmmc-supply = <&vreg_l8a_1p8>;
52707c8ded6SRichard Acayan
52807c8ded6SRichard Acayan	status = "okay";
52907c8ded6SRichard Acayan};
53007c8ded6SRichard Acayan
53107c8ded6SRichard Acayan&tlmm {
53207c8ded6SRichard Acayan	gpio-reserved-ranges = <0 4>, <81 4>;
53307c8ded6SRichard Acayan
534232490b9SRichard Acayan	panel_default: panel-default-state {
535232490b9SRichard Acayan		te-pins {
536232490b9SRichard Acayan			pins = "gpio10";
537232490b9SRichard Acayan			function = "mdp_vsync";
538232490b9SRichard Acayan			drive-strength = <2>;
539232490b9SRichard Acayan			bias-pull-down;
540232490b9SRichard Acayan		};
541232490b9SRichard Acayan
542232490b9SRichard Acayan		reset-pins {
543232490b9SRichard Acayan			pins = "gpio75";
544232490b9SRichard Acayan			function = "gpio";
545232490b9SRichard Acayan			drive-strength = <8>;
546232490b9SRichard Acayan			bias-disable;
547232490b9SRichard Acayan		};
548232490b9SRichard Acayan
549232490b9SRichard Acayan		mode-pins {
550232490b9SRichard Acayan			pins = "gpio76";
551232490b9SRichard Acayan			function = "gpio";
552232490b9SRichard Acayan			drive-strength = <8>;
553232490b9SRichard Acayan			bias-disable;
554232490b9SRichard Acayan		};
555232490b9SRichard Acayan	};
556232490b9SRichard Acayan
55707c8ded6SRichard Acayan	touchscreen_default: ts-default-state {
55807c8ded6SRichard Acayan		ts-reset-pins {
55907c8ded6SRichard Acayan			pins = "gpio99";
56007c8ded6SRichard Acayan			function = "gpio";
56107c8ded6SRichard Acayan			drive-strength = <2>;
56207c8ded6SRichard Acayan			bias-pull-up;
56307c8ded6SRichard Acayan			output-high;
56407c8ded6SRichard Acayan		};
56507c8ded6SRichard Acayan
56607c8ded6SRichard Acayan		ts-irq-pins {
56707c8ded6SRichard Acayan			pins = "gpio125";
56807c8ded6SRichard Acayan			function = "gpio";
56907c8ded6SRichard Acayan			drive-strength = <2>;
57007c8ded6SRichard Acayan			bias-disable;
57107c8ded6SRichard Acayan		};
57207c8ded6SRichard Acayan
57307c8ded6SRichard Acayan		ts-switch-pins {
57407c8ded6SRichard Acayan			pins = "gpio135";
57507c8ded6SRichard Acayan			function = "gpio";
57607c8ded6SRichard Acayan			drive-strength = <2>;
57707c8ded6SRichard Acayan			bias-disable;
57807c8ded6SRichard Acayan			output-low;
57907c8ded6SRichard Acayan		};
58007c8ded6SRichard Acayan	};
58107c8ded6SRichard Acayan};
58207c8ded6SRichard Acayan
58307c8ded6SRichard Acayan&usb_1_hsphy {
58407c8ded6SRichard Acayan	vdd-supply = <&vreg_l1b_0p925>;
58507c8ded6SRichard Acayan	vdda-pll-supply = <&vreg_l10a_1p8>;
58607c8ded6SRichard Acayan	vdda-phy-dpdm-supply = <&vreg_l7b_3p125>;
58707c8ded6SRichard Acayan
58807c8ded6SRichard Acayan	status = "okay";
58907c8ded6SRichard Acayan};
59007c8ded6SRichard Acayan
59107c8ded6SRichard Acayan&usb_1 {
59207c8ded6SRichard Acayan	qcom,select-utmi-as-pipe-clk;
59307c8ded6SRichard Acayan	status = "okay";
59407c8ded6SRichard Acayan};
59507c8ded6SRichard Acayan
59607c8ded6SRichard Acayan&usb_1_dwc3 {
59707c8ded6SRichard Acayan	/* Only peripheral works for now */
59807c8ded6SRichard Acayan	dr_mode = "peripheral";
59907c8ded6SRichard Acayan
60007c8ded6SRichard Acayan	/* Do not assume that sdm670.dtsi will never support USB 3.0 */
60107c8ded6SRichard Acayan	phys = <&usb_1_hsphy>;
60207c8ded6SRichard Acayan	phy-names = "usb2-phy";
60307c8ded6SRichard Acayan	maximum-speed = "high-speed";
60407c8ded6SRichard Acayan};
605