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