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