1*8d13bc63SEmmanuel Vadot// SPDX-License-Identifier: BSD-3-Clause 2*8d13bc63SEmmanuel Vadot/* 3*8d13bc63SEmmanuel Vadot * Common Board Device Tree for Microsoft MSM8x26-based Lumias 4*8d13bc63SEmmanuel Vadot * 5*8d13bc63SEmmanuel Vadot * Copyright (c) 2023, Jack Matthews <jm5112356@gmail.com> 6*8d13bc63SEmmanuel Vadot * Copyright (c) 2023, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com> 7*8d13bc63SEmmanuel Vadot * Copyright (c) 2023, Dominik Kobinski <dominikkobinski314@gmail.com> 8*8d13bc63SEmmanuel Vadot * Copyright (c) 2023, Rayyan Ansari <rayyan@ansari.sh> 9*8d13bc63SEmmanuel Vadot */ 10*8d13bc63SEmmanuel Vadot 11*8d13bc63SEmmanuel Vadot#include "qcom-msm8226.dtsi" 12*8d13bc63SEmmanuel Vadot#include "pm8226.dtsi" 13*8d13bc63SEmmanuel Vadot#include <dt-bindings/input/input.h> 14*8d13bc63SEmmanuel Vadot 15*8d13bc63SEmmanuel Vadot/* 16*8d13bc63SEmmanuel Vadot * Delete all generic (msm8226.dtsi) reserved 17*8d13bc63SEmmanuel Vadot * memory mappings which are different on these devices. 18*8d13bc63SEmmanuel Vadot */ 19*8d13bc63SEmmanuel Vadot/delete-node/ &smem_region; 20*8d13bc63SEmmanuel Vadot 21*8d13bc63SEmmanuel Vadot/ { 22*8d13bc63SEmmanuel Vadot aliases { 23*8d13bc63SEmmanuel Vadot mmc0 = &sdhc_1; /* eMMC */ 24*8d13bc63SEmmanuel Vadot mmc1 = &sdhc_2; /* microSD */ 25*8d13bc63SEmmanuel Vadot display0 = &framebuffer; 26*8d13bc63SEmmanuel Vadot }; 27*8d13bc63SEmmanuel Vadot 28*8d13bc63SEmmanuel Vadot chosen { 29*8d13bc63SEmmanuel Vadot #address-cells = <1>; 30*8d13bc63SEmmanuel Vadot #size-cells = <1>; 31*8d13bc63SEmmanuel Vadot ranges; 32*8d13bc63SEmmanuel Vadot 33*8d13bc63SEmmanuel Vadot stdout-path = "display0"; 34*8d13bc63SEmmanuel Vadot 35*8d13bc63SEmmanuel Vadot framebuffer: framebuffer@3200000 { 36*8d13bc63SEmmanuel Vadot compatible = "simple-framebuffer"; 37*8d13bc63SEmmanuel Vadot reg = <0x3200000 0x800000>; 38*8d13bc63SEmmanuel Vadot format = "a8r8g8b8"; 39*8d13bc63SEmmanuel Vadot width = <720>; 40*8d13bc63SEmmanuel Vadot height = <1280>; 41*8d13bc63SEmmanuel Vadot stride = <(720 * 4)>; 42*8d13bc63SEmmanuel Vadot 43*8d13bc63SEmmanuel Vadot clocks = <&mmcc MDSS_AHB_CLK>, 44*8d13bc63SEmmanuel Vadot <&mmcc MDSS_AXI_CLK>, 45*8d13bc63SEmmanuel Vadot <&mmcc MDSS_BYTE0_CLK>, 46*8d13bc63SEmmanuel Vadot <&mmcc MDSS_MDP_CLK>, 47*8d13bc63SEmmanuel Vadot <&mmcc MDSS_PCLK0_CLK>, 48*8d13bc63SEmmanuel Vadot <&mmcc MDSS_VSYNC_CLK>; 49*8d13bc63SEmmanuel Vadot power-domains = <&mmcc MDSS_GDSC>; 50*8d13bc63SEmmanuel Vadot }; 51*8d13bc63SEmmanuel Vadot }; 52*8d13bc63SEmmanuel Vadot 53*8d13bc63SEmmanuel Vadot gpio_keys: gpio-keys { 54*8d13bc63SEmmanuel Vadot compatible = "gpio-keys"; 55*8d13bc63SEmmanuel Vadot 56*8d13bc63SEmmanuel Vadot pinctrl-0 = <&gpio_keys_default>; 57*8d13bc63SEmmanuel Vadot pinctrl-names = "default"; 58*8d13bc63SEmmanuel Vadot 59*8d13bc63SEmmanuel Vadot label = "GPIO Buttons"; 60*8d13bc63SEmmanuel Vadot 61*8d13bc63SEmmanuel Vadot key-volume-up { 62*8d13bc63SEmmanuel Vadot label = "Volume Up"; 63*8d13bc63SEmmanuel Vadot gpios = <&tlmm 106 GPIO_ACTIVE_LOW>; 64*8d13bc63SEmmanuel Vadot linux,code = <KEY_VOLUMEUP>; 65*8d13bc63SEmmanuel Vadot }; 66*8d13bc63SEmmanuel Vadot }; 67*8d13bc63SEmmanuel Vadot 68*8d13bc63SEmmanuel Vadot /* 69*8d13bc63SEmmanuel Vadot * This device being a WP platform has a different 70*8d13bc63SEmmanuel Vadot * memory layout than other Android based devices. 71*8d13bc63SEmmanuel Vadot * This smem memory region is directly copied from 72*8d13bc63SEmmanuel Vadot * the original UEFI firmware. 73*8d13bc63SEmmanuel Vadot */ 74*8d13bc63SEmmanuel Vadot reserved-memory { 75*8d13bc63SEmmanuel Vadot display_reserved: framebuffer@3200000 { 76*8d13bc63SEmmanuel Vadot reg = <0x03200000 0x800000>; 77*8d13bc63SEmmanuel Vadot no-map; 78*8d13bc63SEmmanuel Vadot }; 79*8d13bc63SEmmanuel Vadot 80*8d13bc63SEmmanuel Vadot smem_region: smem@fa00000 { 81*8d13bc63SEmmanuel Vadot reg = <0x0fa00000 0x100000>; 82*8d13bc63SEmmanuel Vadot no-map; 83*8d13bc63SEmmanuel Vadot }; 84*8d13bc63SEmmanuel Vadot }; 85*8d13bc63SEmmanuel Vadot}; 86*8d13bc63SEmmanuel Vadot 87*8d13bc63SEmmanuel Vadot&blsp1_i2c5 { 88*8d13bc63SEmmanuel Vadot status = "okay"; 89*8d13bc63SEmmanuel Vadot 90*8d13bc63SEmmanuel Vadot touchscreen: touchscreen@4b { 91*8d13bc63SEmmanuel Vadot compatible = "syna,rmi4-i2c"; 92*8d13bc63SEmmanuel Vadot reg = <0x4b>; 93*8d13bc63SEmmanuel Vadot 94*8d13bc63SEmmanuel Vadot interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>; 95*8d13bc63SEmmanuel Vadot vdd-supply = <&pm8226_l15>; 96*8d13bc63SEmmanuel Vadot vio-supply = <&pm8226_l6>; 97*8d13bc63SEmmanuel Vadot 98*8d13bc63SEmmanuel Vadot pinctrl-0 = <&touchscreen_default>; 99*8d13bc63SEmmanuel Vadot pinctrl-names = "default"; 100*8d13bc63SEmmanuel Vadot 101*8d13bc63SEmmanuel Vadot #address-cells = <1>; 102*8d13bc63SEmmanuel Vadot #size-cells = <0>; 103*8d13bc63SEmmanuel Vadot 104*8d13bc63SEmmanuel Vadot rmi4-f01@1 { 105*8d13bc63SEmmanuel Vadot reg = <0x01>; 106*8d13bc63SEmmanuel Vadot syna,nosleep-mode = <1>; 107*8d13bc63SEmmanuel Vadot }; 108*8d13bc63SEmmanuel Vadot 109*8d13bc63SEmmanuel Vadot rmi4-f11@11 { 110*8d13bc63SEmmanuel Vadot reg = <0x11>; 111*8d13bc63SEmmanuel Vadot syna,sensor-type = <1>; 112*8d13bc63SEmmanuel Vadot }; 113*8d13bc63SEmmanuel Vadot }; 114*8d13bc63SEmmanuel Vadot}; 115*8d13bc63SEmmanuel Vadot 116*8d13bc63SEmmanuel Vadot&blsp1_uart3 { 117*8d13bc63SEmmanuel Vadot status = "okay"; 118*8d13bc63SEmmanuel Vadot}; 119*8d13bc63SEmmanuel Vadot 120*8d13bc63SEmmanuel Vadot&pm8226_resin { 121*8d13bc63SEmmanuel Vadot linux,code = <KEY_VOLUMEDOWN>; 122*8d13bc63SEmmanuel Vadot status = "okay"; 123*8d13bc63SEmmanuel Vadot}; 124*8d13bc63SEmmanuel Vadot 125*8d13bc63SEmmanuel Vadot&pm8226_vib { 126*8d13bc63SEmmanuel Vadot status = "okay"; 127*8d13bc63SEmmanuel Vadot}; 128*8d13bc63SEmmanuel Vadot 129*8d13bc63SEmmanuel Vadot&rpm_requests { 130*8d13bc63SEmmanuel Vadot regulators { 131*8d13bc63SEmmanuel Vadot compatible = "qcom,rpm-pm8226-regulators"; 132*8d13bc63SEmmanuel Vadot 133*8d13bc63SEmmanuel Vadot /* These values were taken from the original firmware DSDT */ 134*8d13bc63SEmmanuel Vadot pm8226_s1: s1 { 135*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1050000>; 136*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <1050000>; 137*8d13bc63SEmmanuel Vadot }; 138*8d13bc63SEmmanuel Vadot 139*8d13bc63SEmmanuel Vadot pm8226_s3: s3 { 140*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1300000>; 141*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <1300000>; 142*8d13bc63SEmmanuel Vadot }; 143*8d13bc63SEmmanuel Vadot 144*8d13bc63SEmmanuel Vadot pm8226_s4: s4 { 145*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1800000>; 146*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <2100000>; 147*8d13bc63SEmmanuel Vadot }; 148*8d13bc63SEmmanuel Vadot 149*8d13bc63SEmmanuel Vadot pm8226_s5: s5 { 150*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1150000>; 151*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <1150000>; 152*8d13bc63SEmmanuel Vadot }; 153*8d13bc63SEmmanuel Vadot 154*8d13bc63SEmmanuel Vadot pm8226_l3: l3 { 155*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <750000>; 156*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <1150000>; 157*8d13bc63SEmmanuel Vadot }; 158*8d13bc63SEmmanuel Vadot 159*8d13bc63SEmmanuel Vadot pm8226_l4: l4 { 160*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1200000>; 161*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <1200000>; 162*8d13bc63SEmmanuel Vadot }; 163*8d13bc63SEmmanuel Vadot 164*8d13bc63SEmmanuel Vadot pm8226_l5: l5 { 165*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1200000>; 166*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <1200000>; 167*8d13bc63SEmmanuel Vadot }; 168*8d13bc63SEmmanuel Vadot 169*8d13bc63SEmmanuel Vadot pm8226_l6: l6 { 170*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1800000>; 171*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <1800000>; 172*8d13bc63SEmmanuel Vadot }; 173*8d13bc63SEmmanuel Vadot 174*8d13bc63SEmmanuel Vadot pm8226_l7: l7 { 175*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1850000>; 176*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <1850000>; 177*8d13bc63SEmmanuel Vadot }; 178*8d13bc63SEmmanuel Vadot 179*8d13bc63SEmmanuel Vadot pm8226_l8: l8 { 180*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1800000>; 181*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <1800000>; 182*8d13bc63SEmmanuel Vadot regulator-always-on; 183*8d13bc63SEmmanuel Vadot }; 184*8d13bc63SEmmanuel Vadot 185*8d13bc63SEmmanuel Vadot pm8226_l9: l9 { 186*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <2050000>; 187*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <2050000>; 188*8d13bc63SEmmanuel Vadot }; 189*8d13bc63SEmmanuel Vadot 190*8d13bc63SEmmanuel Vadot pm8226_l10: l10 { 191*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1800000>; 192*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <1800000>; 193*8d13bc63SEmmanuel Vadot }; 194*8d13bc63SEmmanuel Vadot 195*8d13bc63SEmmanuel Vadot pm8226_l12: l12 { 196*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1800000>; 197*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <1800000>; 198*8d13bc63SEmmanuel Vadot }; 199*8d13bc63SEmmanuel Vadot 200*8d13bc63SEmmanuel Vadot pm8226_l14: l14 { 201*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <2750000>; 202*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <2750000>; 203*8d13bc63SEmmanuel Vadot }; 204*8d13bc63SEmmanuel Vadot 205*8d13bc63SEmmanuel Vadot pm8226_l15: l15 { 206*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <2850000>; 207*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <2850000>; 208*8d13bc63SEmmanuel Vadot }; 209*8d13bc63SEmmanuel Vadot 210*8d13bc63SEmmanuel Vadot pm8226_l16: l16 { 211*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <3000000>; 212*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <3000000>; 213*8d13bc63SEmmanuel Vadot }; 214*8d13bc63SEmmanuel Vadot 215*8d13bc63SEmmanuel Vadot pm8226_l17: l17 { 216*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <2950000>; 217*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <2950000>; 218*8d13bc63SEmmanuel Vadot regulator-system-load = <200000>; 219*8d13bc63SEmmanuel Vadot regulator-allow-set-load; 220*8d13bc63SEmmanuel Vadot }; 221*8d13bc63SEmmanuel Vadot 222*8d13bc63SEmmanuel Vadot pm8226_l18: l18 { 223*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <2950000>; 224*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <2950000>; 225*8d13bc63SEmmanuel Vadot regulator-system-load = <200000>; 226*8d13bc63SEmmanuel Vadot regulator-allow-set-load; 227*8d13bc63SEmmanuel Vadot }; 228*8d13bc63SEmmanuel Vadot 229*8d13bc63SEmmanuel Vadot pm8226_l19: l19 { 230*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <2850000>; 231*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <2850000>; 232*8d13bc63SEmmanuel Vadot }; 233*8d13bc63SEmmanuel Vadot 234*8d13bc63SEmmanuel Vadot pm8226_l20: l20 { 235*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <3075000>; 236*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <3075000>; 237*8d13bc63SEmmanuel Vadot }; 238*8d13bc63SEmmanuel Vadot 239*8d13bc63SEmmanuel Vadot pm8226_l21: l21 { 240*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1850000>; 241*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <2950000>; 242*8d13bc63SEmmanuel Vadot }; 243*8d13bc63SEmmanuel Vadot 244*8d13bc63SEmmanuel Vadot pm8226_l22: l22 { 245*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1800000>; 246*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <1800000>; 247*8d13bc63SEmmanuel Vadot }; 248*8d13bc63SEmmanuel Vadot 249*8d13bc63SEmmanuel Vadot pm8226_l23: l23 { 250*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1800000>; 251*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <1800000>; 252*8d13bc63SEmmanuel Vadot }; 253*8d13bc63SEmmanuel Vadot 254*8d13bc63SEmmanuel Vadot pm8226_l24: l24 { 255*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1300000>; 256*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <1300000>; 257*8d13bc63SEmmanuel Vadot }; 258*8d13bc63SEmmanuel Vadot 259*8d13bc63SEmmanuel Vadot pm8226_l25: l25 { 260*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <1775000>; 261*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <2075000>; 262*8d13bc63SEmmanuel Vadot }; 263*8d13bc63SEmmanuel Vadot 264*8d13bc63SEmmanuel Vadot pm8226_l27: l27 { 265*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <2050000>; 266*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <2050000>; 267*8d13bc63SEmmanuel Vadot }; 268*8d13bc63SEmmanuel Vadot 269*8d13bc63SEmmanuel Vadot pm8226_l28: l28 { 270*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <2000000>; 271*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <3000000>; 272*8d13bc63SEmmanuel Vadot }; 273*8d13bc63SEmmanuel Vadot }; 274*8d13bc63SEmmanuel Vadot}; 275*8d13bc63SEmmanuel Vadot 276*8d13bc63SEmmanuel Vadot&sdhc_1 { 277*8d13bc63SEmmanuel Vadot vmmc-supply = <&pm8226_l17>; 278*8d13bc63SEmmanuel Vadot vqmmc-supply = <&pm8226_l6>; 279*8d13bc63SEmmanuel Vadot 280*8d13bc63SEmmanuel Vadot status = "okay"; 281*8d13bc63SEmmanuel Vadot}; 282*8d13bc63SEmmanuel Vadot 283*8d13bc63SEmmanuel Vadot&sdhc_2 { 284*8d13bc63SEmmanuel Vadot vmmc-supply = <&pm8226_l18>; 285*8d13bc63SEmmanuel Vadot vqmmc-supply = <&pm8226_l21>; 286*8d13bc63SEmmanuel Vadot 287*8d13bc63SEmmanuel Vadot status = "okay"; 288*8d13bc63SEmmanuel Vadot}; 289*8d13bc63SEmmanuel Vadot 290*8d13bc63SEmmanuel Vadot&usb { 291*8d13bc63SEmmanuel Vadot extcon = <&smbb>; 292*8d13bc63SEmmanuel Vadot dr_mode = "peripheral"; 293*8d13bc63SEmmanuel Vadot 294*8d13bc63SEmmanuel Vadot status = "okay"; 295*8d13bc63SEmmanuel Vadot}; 296*8d13bc63SEmmanuel Vadot 297*8d13bc63SEmmanuel Vadot&usb_hs_phy { 298*8d13bc63SEmmanuel Vadot extcon = <&smbb>; 299*8d13bc63SEmmanuel Vadot v1p8-supply = <&pm8226_l10>; 300*8d13bc63SEmmanuel Vadot v3p3-supply = <&pm8226_l20>; 301*8d13bc63SEmmanuel Vadot}; 302*8d13bc63SEmmanuel Vadot 303*8d13bc63SEmmanuel Vadot&tlmm { 304*8d13bc63SEmmanuel Vadot gpio_keys_default: gpio-keys-default-state { 305*8d13bc63SEmmanuel Vadot pins = "gpio106", "gpio107", "gpio108"; 306*8d13bc63SEmmanuel Vadot function = "gpio"; 307*8d13bc63SEmmanuel Vadot drive-strength = <2>; 308*8d13bc63SEmmanuel Vadot bias-pull-up; 309*8d13bc63SEmmanuel Vadot }; 310*8d13bc63SEmmanuel Vadot 311*8d13bc63SEmmanuel Vadot touchscreen_default: touchscreen-default-state { 312*8d13bc63SEmmanuel Vadot irq-pins { 313*8d13bc63SEmmanuel Vadot pins = "gpio17"; 314*8d13bc63SEmmanuel Vadot function = "gpio"; 315*8d13bc63SEmmanuel Vadot drive-strength = <8>; 316*8d13bc63SEmmanuel Vadot bias-pull-up; 317*8d13bc63SEmmanuel Vadot }; 318*8d13bc63SEmmanuel Vadot 319*8d13bc63SEmmanuel Vadot reset-pins { 320*8d13bc63SEmmanuel Vadot pins = "gpio16"; 321*8d13bc63SEmmanuel Vadot function = "gpio"; 322*8d13bc63SEmmanuel Vadot drive-strength = <8>; 323*8d13bc63SEmmanuel Vadot bias-disable; 324*8d13bc63SEmmanuel Vadot output-high; 325*8d13bc63SEmmanuel Vadot }; 326*8d13bc63SEmmanuel Vadot }; 327*8d13bc63SEmmanuel Vadot}; 328