1*4882a593Smuzhiyun// SPDX-License-Identifier: BSD-3-Clause 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright (c) 2020, Konrad Dybcio 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun#include "msm8994.dtsi" 7*4882a593Smuzhiyun#include "pm8994.dtsi" 8*4882a593Smuzhiyun#include "pmi8994.dtsi" 9*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 10*4882a593Smuzhiyun#include <dt-bindings/input/gpio-keys.h> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun/ { 13*4882a593Smuzhiyun /* required for bootloader to select correct board */ 14*4882a593Smuzhiyun qcom,msm-id = <0xcf 0x20001>; 15*4882a593Smuzhiyun qcom,pmic-id = <0x10009 0x1000a 0x00 0x00>; 16*4882a593Smuzhiyun qcom,board-id = <8 0>; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun /* Kitakami firmware doesn't support PSCI */ 19*4882a593Smuzhiyun /delete-node/ psci; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun gpio_keys { 22*4882a593Smuzhiyun compatible = "gpio-keys"; 23*4882a593Smuzhiyun input-name = "gpio-keys"; 24*4882a593Smuzhiyun #address-cells = <1>; 25*4882a593Smuzhiyun #size-cells = <0>; 26*4882a593Smuzhiyun autorepeat; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun button@0 { 29*4882a593Smuzhiyun label = "Volume Down"; 30*4882a593Smuzhiyun gpios = <&pm8994_gpios 2 GPIO_ACTIVE_LOW>; 31*4882a593Smuzhiyun linux,input-type = <1>; 32*4882a593Smuzhiyun linux,code = <KEY_VOLUMEDOWN>; 33*4882a593Smuzhiyun wakeup-source; 34*4882a593Smuzhiyun debounce-interval = <15>; 35*4882a593Smuzhiyun }; 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun button@1 { 38*4882a593Smuzhiyun label = "Volume Up"; 39*4882a593Smuzhiyun gpios = <&pm8994_gpios 3 GPIO_ACTIVE_LOW>; 40*4882a593Smuzhiyun linux,input-type = <1>; 41*4882a593Smuzhiyun linux,code = <KEY_VOLUMEUP>; 42*4882a593Smuzhiyun wakeup-source; 43*4882a593Smuzhiyun debounce-interval = <15>; 44*4882a593Smuzhiyun }; 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun button@2 { 47*4882a593Smuzhiyun label = "Camera Snapshot"; 48*4882a593Smuzhiyun gpios = <&pm8994_gpios 4 GPIO_ACTIVE_LOW>; 49*4882a593Smuzhiyun linux,input-type = <1>; 50*4882a593Smuzhiyun linux,code = <KEY_CAMERA>; 51*4882a593Smuzhiyun wakeup-source; 52*4882a593Smuzhiyun debounce-interval = <15>; 53*4882a593Smuzhiyun }; 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun button@3 { 56*4882a593Smuzhiyun label = "Camera Focus"; 57*4882a593Smuzhiyun gpios = <&pm8994_gpios 5 GPIO_ACTIVE_LOW>; 58*4882a593Smuzhiyun linux,input-type = <1>; 59*4882a593Smuzhiyun linux,code = <KEY_VOLUMEUP>; 60*4882a593Smuzhiyun wakeup-source; 61*4882a593Smuzhiyun debounce-interval = <15>; 62*4882a593Smuzhiyun }; 63*4882a593Smuzhiyun }; 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun reserved-memory { 66*4882a593Smuzhiyun #address-cells = <2>; 67*4882a593Smuzhiyun #size-cells = <2>; 68*4882a593Smuzhiyun ranges; 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun /* This is for getting crash logs using Android downstream kernels */ 71*4882a593Smuzhiyun ramoops@1fe00000 { 72*4882a593Smuzhiyun compatible = "ramoops"; 73*4882a593Smuzhiyun reg = <0x0 0x1fe00000 0x0 0x200000>; 74*4882a593Smuzhiyun console-size = <0x100000>; 75*4882a593Smuzhiyun record-size = <0x10000>; 76*4882a593Smuzhiyun ftrace-size = <0x10000>; 77*4882a593Smuzhiyun pmsg-size = <0x80000>; 78*4882a593Smuzhiyun }; 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun continuous_splash: framebuffer@3401000{ 81*4882a593Smuzhiyun reg = <0x0 0x3401000 0x0 0x2200000>; 82*4882a593Smuzhiyun no-map; 83*4882a593Smuzhiyun }; 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun dfps_data_mem: dfps_data_mem@3400000 { 86*4882a593Smuzhiyun reg = <0x0 0x3400000 0x0 0x1000>; 87*4882a593Smuzhiyun no-map; 88*4882a593Smuzhiyun }; 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun peripheral_region: peripheral_region@7400000 { 91*4882a593Smuzhiyun reg = <0x0 0x7400000 0x0 0x1c00000>; 92*4882a593Smuzhiyun no-map; 93*4882a593Smuzhiyun }; 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun modem_region: modem_region@9000000 { 96*4882a593Smuzhiyun reg = <0x0 0x9000000 0x0 0x5a00000>; 97*4882a593Smuzhiyun no-map; 98*4882a593Smuzhiyun }; 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun tzapp: modem_region@ea00000 { 101*4882a593Smuzhiyun reg = <0x0 0xea00000 0x0 0x1900000>; 102*4882a593Smuzhiyun no-map; 103*4882a593Smuzhiyun }; 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun fb_region: fb_region@40000000 { 106*4882a593Smuzhiyun reg = <0x00 0x40000000 0x00 0x1000000>; 107*4882a593Smuzhiyun no-map; 108*4882a593Smuzhiyun }; 109*4882a593Smuzhiyun }; 110*4882a593Smuzhiyun}; 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun&blsp_spi0 { 113*4882a593Smuzhiyun status = "okay"; 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun /* FPC fingerprint reader */ 116*4882a593Smuzhiyun}; 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun/* I2C1 is disabled on this board */ 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun&blsp_i2c2 { 121*4882a593Smuzhiyun status = "okay"; 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun /* NXP NFC */ 124*4882a593Smuzhiyun}; 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun&blsp_i2c4 { 127*4882a593Smuzhiyun status = "okay"; 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun /* Empty but active */ 130*4882a593Smuzhiyun}; 131*4882a593Smuzhiyun 132*4882a593Smuzhiyun&blsp_i2c5 { 133*4882a593Smuzhiyun status = "okay"; 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun /* SMB1357 charger and sii8620 HDMI/MHL bridge */ 136*4882a593Smuzhiyun}; 137*4882a593Smuzhiyun 138*4882a593Smuzhiyun&blsp_i2c6 { 139*4882a593Smuzhiyun status = "okay"; 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun /* Synaptics touchscreen */ 142*4882a593Smuzhiyun}; 143*4882a593Smuzhiyun 144*4882a593Smuzhiyun&blsp1_uart2 { 145*4882a593Smuzhiyun status = "okay"; 146*4882a593Smuzhiyun}; 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun&blsp2_uart2 { 149*4882a593Smuzhiyun status = "okay"; 150*4882a593Smuzhiyun}; 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun&rpm_requests { 153*4882a593Smuzhiyun pm8994_regulators: pm8994-regulators { 154*4882a593Smuzhiyun compatible = "qcom,rpm-pm8994-regulators"; 155*4882a593Smuzhiyun vdd_l1-supply = <&pm8994_s1>; 156*4882a593Smuzhiyun vdd_l2_26_28-supply = <&pm8994_s3>; 157*4882a593Smuzhiyun vdd_l3_11-supply = <&pm8994_s3>; 158*4882a593Smuzhiyun vdd_l4_27_31-supply = <&pm8994_s3>; 159*4882a593Smuzhiyun vdd_l5_7-supply = <&pm8994_s3>; 160*4882a593Smuzhiyun vdd_l6_12_32-supply = <&pm8994_s5>; 161*4882a593Smuzhiyun vdd_l8_16_30-supply = <&vreg_vph_pwr>; 162*4882a593Smuzhiyun vdd_l9_10_18_22-supply = <&vreg_vph_pwr>; 163*4882a593Smuzhiyun vdd_l13_19_23_24-supply = <&vreg_vph_pwr>; 164*4882a593Smuzhiyun vdd_l14_15-supply = <&pm8994_s5>; 165*4882a593Smuzhiyun vdd_l17_29-supply = <&vreg_vph_pwr>; 166*4882a593Smuzhiyun vdd_l20_21-supply = <&vreg_vph_pwr>; 167*4882a593Smuzhiyun vdd_l25-supply = <&pm8994_s5>; 168*4882a593Smuzhiyun vdd_lvs1_2 = <&pm8994_s4>; 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun pm8994_s1: s1 {}; 171*4882a593Smuzhiyun pm8994_s2: s2 {}; 172*4882a593Smuzhiyun pm8994_s3: s3 {}; 173*4882a593Smuzhiyun pm8994_s4: s4 {}; 174*4882a593Smuzhiyun pm8994_s5: s5 {}; 175*4882a593Smuzhiyun pm8994_s6: s6 {}; 176*4882a593Smuzhiyun pm8994_s7: s7 {}; 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun pm8994_l1: l1 {}; 179*4882a593Smuzhiyun pm8994_l2: l2 {}; 180*4882a593Smuzhiyun pm8994_l3: l3 {}; 181*4882a593Smuzhiyun pm8994_l4: l4 {}; 182*4882a593Smuzhiyun pm8994_l6: l6 {}; 183*4882a593Smuzhiyun pm8994_l8: l8 {}; 184*4882a593Smuzhiyun pm8994_l9: l9 {}; 185*4882a593Smuzhiyun pm8994_l10: l10 {}; 186*4882a593Smuzhiyun pm8994_l11: l11 {}; 187*4882a593Smuzhiyun pm8994_l12: l12 {}; 188*4882a593Smuzhiyun pm8994_l13: l13 {}; 189*4882a593Smuzhiyun pm8994_l14: l14 {}; 190*4882a593Smuzhiyun pm8994_l15: l15 {}; 191*4882a593Smuzhiyun pm8994_l16: l16 {}; 192*4882a593Smuzhiyun pm8994_l17: l17 {}; 193*4882a593Smuzhiyun pm8994_l18: l18 {}; 194*4882a593Smuzhiyun pm8994_l19: l19 {}; 195*4882a593Smuzhiyun pm8994_l20: l20 {}; 196*4882a593Smuzhiyun pm8994_l21: l21 {}; 197*4882a593Smuzhiyun pm8994_l22: l22 {}; 198*4882a593Smuzhiyun pm8994_l23: l23 {}; 199*4882a593Smuzhiyun pm8994_l24: l24 {}; 200*4882a593Smuzhiyun pm8994_l25: l25 {}; 201*4882a593Smuzhiyun pm8994_l26: l26 {}; 202*4882a593Smuzhiyun pm8994_l27: l27 {}; 203*4882a593Smuzhiyun pm8994_l28: l28 {}; 204*4882a593Smuzhiyun pm8994_l29: l29 {}; 205*4882a593Smuzhiyun pm8994_l30: l30 {}; 206*4882a593Smuzhiyun pm8994_l31: l31 {}; 207*4882a593Smuzhiyun pm8994_l32: l32 {}; 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun pm8994_lvs1: lvs1 {}; 210*4882a593Smuzhiyun pm8994_lvs2: lvs2 {}; 211*4882a593Smuzhiyun }; 212*4882a593Smuzhiyun 213*4882a593Smuzhiyun pmi8994_regulators: pmi8994-regulators { 214*4882a593Smuzhiyun compatible = "qcom,rpm-pmi8994-regulators"; 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun pmi8994_s1: s1 {}; 217*4882a593Smuzhiyun pmi8994_s2: s2 {}; 218*4882a593Smuzhiyun pmi8994_s3: s3 {}; 219*4882a593Smuzhiyun pmi8994_bby: boost-bypass {}; 220*4882a593Smuzhiyun }; 221*4882a593Smuzhiyun}; 222*4882a593Smuzhiyun 223*4882a593Smuzhiyun&sdhc1 { 224*4882a593Smuzhiyun /* There is an issue with the eMMC causing permanent 225*4882a593Smuzhiyun * damage to the card if a quirk isn't addressed. 226*4882a593Smuzhiyun * Until it's fixed, disable the MMC so as not to brick 227*4882a593Smuzhiyun * devices. 228*4882a593Smuzhiyun */ 229*4882a593Smuzhiyun status = "disabled"; 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun /* Downstream pushes 2.95V to the sdhci device, 232*4882a593Smuzhiyun * but upstream driver REALLY wants to make vmmc 1.8v 233*4882a593Smuzhiyun * cause of the hs400-1_8v mode. MMC works fine without 234*4882a593Smuzhiyun * that regulator, so let's not use it for now. 235*4882a593Smuzhiyun * vqmmc is also disabled cause driver stll complains. 236*4882a593Smuzhiyun * 237*4882a593Smuzhiyun * vmmc-supply = <&pm8994_l20>; 238*4882a593Smuzhiyun * vqmmc-supply = <&pm8994_s4>; 239*4882a593Smuzhiyun */ 240*4882a593Smuzhiyun}; 241