1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2022, Alejandro Tafalla 4 */ 5/dts-v1/; 6 7#include "msm8953.dtsi" 8#include "pm8953.dtsi" 9#include "pmi8950.dtsi" 10 11/delete-node/ &adsp_fw_mem; 12/delete-node/ &qseecom_mem; 13/delete-node/ &wcnss_fw_mem; 14 15/ { 16 model = "Xiaomi Mi A2 Lite"; 17 compatible = "xiaomi,daisy", "qcom,msm8953"; 18 chassis-type = "handset"; 19 qcom,msm-id = <293 0>; 20 qcom,board-id= <0x1000b 0x9>; 21 22 chosen { 23 #address-cells = <2>; 24 #size-cells = <2>; 25 ranges; 26 27 framebuffer@90001000 { 28 compatible = "simple-framebuffer"; 29 reg = <0 0x90001000 0 (1920 * 2280 * 3)>; 30 31 width = <1080>; 32 height = <2280>; 33 stride = <(1080 * 3)>; 34 format = "r8g8b8"; 35 36 power-domains = <&gcc MDSS_GDSC>; 37 38 clocks = <&gcc GCC_MDSS_AHB_CLK>, 39 <&gcc GCC_MDSS_AXI_CLK>, 40 <&gcc GCC_MDSS_VSYNC_CLK>, 41 <&gcc GCC_MDSS_MDP_CLK>, 42 <&gcc GCC_MDSS_BYTE0_CLK>, 43 <&gcc GCC_MDSS_PCLK0_CLK>, 44 <&gcc GCC_MDSS_ESC0_CLK>; 45 }; 46 }; 47 48 gpio-keys { 49 compatible = "gpio-keys"; 50 51 pinctrl-names = "default"; 52 pinctrl-0 = <&gpio_key_default>; 53 54 key-volume-up { 55 label = "Volume Up"; 56 gpios = <&tlmm 85 GPIO_ACTIVE_LOW>; 57 linux,code = <KEY_VOLUMEUP>; 58 }; 59 }; 60 61 reserved-memory { 62 qseecom_mem: qseecom@84a00000 { 63 reg = <0x0 0x84a00000 0x0 0x1900000>; 64 no-map; 65 }; 66 67 adsp_fw_mem: adsp@8d600000 { 68 reg = <0x0 0x8d600000 0x0 0x1200000>; 69 no-map; 70 }; 71 72 wcnss_fw_mem: wcnss@8e800000 { 73 reg = <0x0 0x8e800000 0x0 0x700000>; 74 no-map; 75 }; 76 }; 77 78 /* 79 * We bitbang on &i2c_4 because BLSP is protected by TZ as sensors are 80 * normally proxied via ADSP firmware. GPIOs aren't protected. 81 */ 82 i2c-sensors { 83 compatible = "i2c-gpio"; 84 sda-gpios = <&tlmm 14 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 85 scl-gpios = <&tlmm 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 86 i2c-gpio,delay-us = <2>; /* ~100 kHz */ 87 #address-cells = <1>; 88 #size-cells = <0>; 89 90 imu@6a { 91 compatible = "st,lsm6dsl"; 92 reg = <0x6a>; 93 vdd-supply = <&pm8953_l10>; 94 vddio-supply = <&pm8953_l6>; 95 mount-matrix = "-1", "0", "0", 96 "0", "-1", "0", 97 "0", "0", "1"; 98 }; 99 }; 100 101 vph_pwr: vph-pwr-regulator { 102 compatible = "regulator-fixed"; 103 regulator-name = "vph_pwr"; 104 regulator-always-on; 105 regulator-boot-on; 106 }; 107}; 108 109&hsusb_phy { 110 vdd-supply = <&pm8953_l3>; 111 vdda-pll-supply = <&pm8953_l7>; 112 vdda-phy-dpdm-supply = <&pm8953_l13>; 113 114 status = "okay"; 115}; 116 117&i2c_2 { 118 status = "okay"; 119 120 speaker_codec: audio-codec@3a { 121 compatible = "maxim,max98927"; 122 reg = <0x3a>; 123 124 reset-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>; 125 126 vmon-slot-no = <1>; 127 imon-slot-no = <1>; 128 interleave_mode = <0>; 129 130 #sound-dai-cells = <0>; 131 }; 132}; 133 134&i2c_3 { 135 status = "okay"; 136 137 touchscreen@38 { 138 compatible = "edt,edt-ft5406"; 139 reg = <0x38>; 140 141 interrupt-parent = <&tlmm>; 142 interrupts = <65 IRQ_TYPE_EDGE_FALLING>; 143 144 reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>; 145 146 vcc-supply = <&pm8953_l10>; 147 148 touchscreen-size-x = <1080>; 149 touchscreen-size-y = <2280>; 150 }; 151}; 152 153&pm8953_resin { 154 linux,code = <KEY_VOLUMEDOWN>; 155 status = "okay"; 156}; 157 158&pmi8950_wled { 159 qcom,current-limit-microamp = <20000>; 160 qcom,num-strings = <2>; 161 162 status = "okay"; 163}; 164 165&rpm_requests { 166 regulators { 167 compatible = "qcom,rpm-pm8953-regulators"; 168 169 vdd_s1-supply = <&vph_pwr>; 170 vdd_s2-supply = <&vph_pwr>; 171 vdd_s3-supply = <&vph_pwr>; 172 vdd_s4-supply = <&vph_pwr>; 173 vdd_s5-supply = <&vph_pwr>; 174 vdd_s6-supply = <&vph_pwr>; 175 vdd_s7-supply = <&vph_pwr>; 176 vdd_l1-supply = <&pm8953_s3>; 177 vdd_l2_l3-supply = <&pm8953_s3>; 178 vdd_l4_l5_l6_l7_l16_l19-supply = <&pm8953_s4>; 179 vdd_l8_l11_l12_l13_l14_l15-supply = <&vph_pwr>; 180 vdd_l9_l10_l17_l18_l22-supply = <&vph_pwr>; 181 182 pm8953_s1: s1 { 183 regulator-min-microvolt = <863000>; 184 regulator-max-microvolt = <1152000>; 185 }; 186 187 pm8953_s3: s3 { 188 regulator-min-microvolt = <1224000>; 189 regulator-max-microvolt = <1224000>; 190 }; 191 192 pm8953_s4: s4 { 193 regulator-min-microvolt = <1896000>; 194 regulator-max-microvolt = <2048000>; 195 }; 196 197 pm8953_l1: l1 { 198 regulator-min-microvolt = <1000000>; 199 regulator-max-microvolt = <1100000>; 200 }; 201 202 pm8953_l2: l2 { 203 regulator-min-microvolt = <975000>; 204 regulator-max-microvolt = <1225000>; 205 }; 206 207 pm8953_l3: l3 { 208 regulator-min-microvolt = <925000>; 209 regulator-max-microvolt = <925000>; 210 regulator-allow-set-load; 211 }; 212 213 pm8953_l5: l5 { 214 regulator-min-microvolt = <1800000>; 215 regulator-max-microvolt = <1800000>; 216 }; 217 218 pm8953_l6: l6 { 219 regulator-min-microvolt = <1800000>; 220 regulator-max-microvolt = <1800000>; 221 regulator-always-on; 222 }; 223 224 pm8953_l7: l7 { 225 regulator-min-microvolt = <1800000>; 226 regulator-max-microvolt = <1900000>; 227 }; 228 229 pm8953_l8: l8 { 230 regulator-min-microvolt = <2900000>; 231 regulator-max-microvolt = <2900000>; 232 }; 233 234 pm8953_l9: l9 { 235 regulator-min-microvolt = <3000000>; 236 regulator-max-microvolt = <3300000>; 237 }; 238 239 pm8953_l10: l10 { 240 regulator-min-microvolt = <2850000>; 241 regulator-max-microvolt = <2850000>; 242 regulator-always-on; 243 }; 244 245 pm8953_l11: l11 { 246 regulator-min-microvolt = <2950000>; 247 regulator-max-microvolt = <2950000>; 248 }; 249 250 pm8953_l12: l12 { 251 regulator-min-microvolt = <1800000>; 252 regulator-max-microvolt = <2950000>; 253 }; 254 255 pm8953_l13: l13 { 256 regulator-min-microvolt = <3125000>; 257 regulator-max-microvolt = <3125000>; 258 }; 259 260 pm8953_l16: l16 { 261 regulator-min-microvolt = <1800000>; 262 regulator-max-microvolt = <1800000>; 263 }; 264 265 pm8953_l17: l17 { 266 regulator-min-microvolt = <2850000>; 267 regulator-max-microvolt = <2850000>; 268 }; 269 270 pm8953_l19: l19 { 271 regulator-min-microvolt = <1200000>; 272 regulator-max-microvolt = <1350000>; 273 }; 274 275 pm8953_l22: l22 { 276 regulator-min-microvolt = <2800000>; 277 regulator-max-microvolt = <2850000>; 278 regulator-always-on; 279 }; 280 281 pm8953_l23: l23 { 282 regulator-min-microvolt = <975000>; 283 regulator-max-microvolt = <1225000>; 284 }; 285 }; 286}; 287 288&sdhc_1 { 289 vmmc-supply = <&pm8953_l8>; 290 vqmmc-supply = <&pm8953_l5>; 291 292 status = "okay"; 293}; 294 295&sdhc_2 { 296 vmmc-supply = <&pm8953_l11>; 297 vqmmc-supply = <&pm8953_l12>; 298 299 cd-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>; 300 301 pinctrl-names = "default", "sleep"; 302 pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; 303 pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; 304 305 status = "okay"; 306}; 307 308&tlmm { 309 gpio-reserved-ranges = <0 4>, <16 4>, <135 4>; 310}; 311 312&uart_0 { 313 pinctrl-names = "default"; 314 pinctrl-0 = <&uart_console_active>; 315 316 status = "okay"; 317}; 318 319&usb3 { 320 status = "okay"; 321}; 322 323&usb3_dwc3 { 324 dr_mode = "peripheral"; 325}; 326