1// SPDX-License-Identifier: GPL-2.0 2/* Copyright (c) 2019, Jeffrey Hugo. All rights reserved. */ 3 4/* 5 * Common include for MSM8998 clamshell devices, ie the Lenovo Miix 630, 6 * Asus NovaGo TP370QL, and HP Envy x2. All three devices are basically the 7 * same, with differences in peripherals. 8 */ 9 10#include "msm8998.dtsi" 11#include "pm8005.dtsi" 12#include "pm8998.dtsi" 13 14/ { 15 vph_pwr: vph-pwr-regulator { 16 compatible = "regulator-fixed"; 17 regulator-name = "vph_pwr"; 18 regulator-always-on; 19 regulator-boot-on; 20 }; 21}; 22 23&blsp1_uart3 { 24 status = "okay"; 25 26 bluetooth { 27 compatible = "qcom,wcn3990-bt"; 28 29 vddio-supply = <&vreg_s4a_1p8>; 30 vddxo-supply = <&vreg_l7a_1p8>; 31 vddrf-supply = <&vreg_l17a_1p3>; 32 vddch0-supply = <&vreg_l25a_3p3>; 33 max-speed = <3200000>; 34 }; 35}; 36 37&blsp1_uart3_on { 38 rx-pins { 39 /delete-property/ bias-disable; 40 /* 41 * Configure a pull-up on 45 (RX). This is needed to 42 * avoid garbage data when the TX pin of the Bluetooth 43 * module is in tri-state (module powered off or not 44 * driving the signal yet). 45 */ 46 bias-pull-up; 47 }; 48 49 cts-pins { 50 /delete-property/ bias-disable; 51 /* 52 * Configure a pull-down on 47 (CTS) to match the pull 53 * of the Bluetooth module. 54 */ 55 bias-pull-down; 56 }; 57}; 58 59/* 60 * The laptop FW does not appear to support the retention state as it is 61 * not advertised as enabled in ACPI, and enabling it in DT can cause boot 62 * hangs. 63 */ 64&cpu0 { 65 cpu-idle-states = <&little_cpu_sleep_1>; 66}; 67 68&cpu1 { 69 cpu-idle-states = <&little_cpu_sleep_1>; 70}; 71 72&cpu2 { 73 cpu-idle-states = <&little_cpu_sleep_1>; 74}; 75 76&cpu3 { 77 cpu-idle-states = <&little_cpu_sleep_1>; 78}; 79 80&cpu4 { 81 cpu-idle-states = <&big_cpu_sleep_1>; 82}; 83 84&cpu5 { 85 cpu-idle-states = <&big_cpu_sleep_1>; 86}; 87 88&cpu6 { 89 cpu-idle-states = <&big_cpu_sleep_1>; 90}; 91 92&cpu7 { 93 cpu-idle-states = <&big_cpu_sleep_1>; 94}; 95 96/* 97 * If EFIFB is used, enabling MMCC will cause important MMSS clocks to be cleaned 98 * up, because as far as Linux is concerned - they are unused. Disable it by default 99 * on clamshell devices, as it will break them, unless either simplefb is configured to 100 * hold a vote for these clocks, or panels are brought up properly, using drm/msm. 101 */ 102&mmcc { 103 status = "disabled"; 104}; 105 106&mmss_smmu { 107 status = "disabled"; 108}; 109 110&pcie0 { 111 status = "okay"; 112}; 113 114&pcie_phy { 115 status = "okay"; 116}; 117 118&pm8005_regulators { 119 vdd_s1-supply = <&vph_pwr>; 120 121 pm8005_s1: s1 { /* VDD_GFX supply */ 122 regulator-min-microvolt = <524000>; 123 regulator-max-microvolt = <1100000>; 124 regulator-enable-ramp-delay = <500>; 125 126 /* hack until we rig up the gpu consumer */ 127 regulator-always-on; 128 }; 129}; 130 131&pm8998_resin { 132 linux,code = <KEY_VOLUMEDOWN>; 133 134 status = "okay"; 135}; 136 137&qusb2phy { 138 status = "okay"; 139 140 vdd-supply = <&vreg_l1a_0p875>; 141 vdda-pll-supply = <&vreg_l12a_1p8>; 142 vdda-phy-dpdm-supply = <&vreg_l24a_3p075>; 143}; 144 145&rpm_requests { 146 regulators-0 { 147 compatible = "qcom,rpm-pm8998-regulators"; 148 149 vdd_s1-supply = <&vph_pwr>; 150 vdd_s2-supply = <&vph_pwr>; 151 vdd_s3-supply = <&vph_pwr>; 152 vdd_s4-supply = <&vph_pwr>; 153 vdd_s5-supply = <&vph_pwr>; 154 vdd_s6-supply = <&vph_pwr>; 155 vdd_s7-supply = <&vph_pwr>; 156 vdd_s8-supply = <&vph_pwr>; 157 vdd_s9-supply = <&vph_pwr>; 158 vdd_s10-supply = <&vph_pwr>; 159 vdd_s11-supply = <&vph_pwr>; 160 vdd_s12-supply = <&vph_pwr>; 161 vdd_s13-supply = <&vph_pwr>; 162 vdd_l1_l27-supply = <&vreg_s7a_1p025>; 163 vdd_l2_l8_l17-supply = <&vreg_s3a_1p35>; 164 vdd_l3_l11-supply = <&vreg_s7a_1p025>; 165 vdd_l4_l5-supply = <&vreg_s7a_1p025>; 166 vdd_l6-supply = <&vreg_s5a_2p04>; 167 vdd_l7_l12_l14_l15-supply = <&vreg_s5a_2p04>; 168 vdd_l9-supply = <&vph_pwr>; 169 vdd_l10_l23_l25-supply = <&vph_pwr>; 170 vdd_l13_l19_l21-supply = <&vph_pwr>; 171 vdd_l16_l28-supply = <&vph_pwr>; 172 vdd_l18_l22-supply = <&vph_pwr>; 173 vdd_l20_l24-supply = <&vph_pwr>; 174 vdd_l26-supply = <&vreg_s3a_1p35>; 175 vdd_lvs1_lvs2-supply = <&vreg_s4a_1p8>; 176 177 vreg_s3a_1p35: s3 { 178 regulator-min-microvolt = <1352000>; 179 regulator-max-microvolt = <1352000>; 180 }; 181 182 vreg_s4a_1p8: s4 { 183 regulator-min-microvolt = <1800000>; 184 regulator-max-microvolt = <1800000>; 185 regulator-allow-set-load; 186 }; 187 188 vreg_s5a_2p04: s5 { 189 regulator-min-microvolt = <1904000>; 190 regulator-max-microvolt = <2040000>; 191 }; 192 193 vreg_s7a_1p025: s7 { 194 regulator-min-microvolt = <900000>; 195 regulator-max-microvolt = <1028000>; 196 }; 197 198 vreg_l1a_0p875: l1 { 199 regulator-min-microvolt = <880000>; 200 regulator-max-microvolt = <880000>; 201 regulator-allow-set-load; 202 }; 203 204 vreg_l2a_1p2: l2 { 205 regulator-min-microvolt = <1200000>; 206 regulator-max-microvolt = <1200000>; 207 regulator-allow-set-load; 208 }; 209 210 vreg_l3a_1p0: l3 { 211 regulator-min-microvolt = <1000000>; 212 regulator-max-microvolt = <1000000>; 213 }; 214 215 vreg_l5a_0p8: l5 { 216 regulator-min-microvolt = <800000>; 217 regulator-max-microvolt = <800000>; 218 }; 219 220 vreg_l6a_1p8: l6 { 221 regulator-min-microvolt = <1808000>; 222 regulator-max-microvolt = <1808000>; 223 }; 224 225 vreg_l7a_1p8: l7 { 226 regulator-min-microvolt = <1800000>; 227 regulator-max-microvolt = <1800000>; 228 regulator-allow-set-load; 229 }; 230 231 vreg_l8a_1p2: l8 { 232 regulator-min-microvolt = <1200000>; 233 regulator-max-microvolt = <1200000>; 234 }; 235 236 vreg_l9a_1p8: l9 { 237 regulator-min-microvolt = <1808000>; 238 regulator-max-microvolt = <2960000>; 239 }; 240 241 vreg_l10a_1p8: l10 { 242 regulator-min-microvolt = <1808000>; 243 regulator-max-microvolt = <2960000>; 244 }; 245 246 vreg_l11a_1p0: l11 { 247 regulator-min-microvolt = <1000000>; 248 regulator-max-microvolt = <1000000>; 249 }; 250 251 vreg_l12a_1p8: l12 { 252 regulator-min-microvolt = <1800000>; 253 regulator-max-microvolt = <1800000>; 254 }; 255 256 vreg_l13a_2p95: l13 { 257 regulator-min-microvolt = <1808000>; 258 regulator-max-microvolt = <2960000>; 259 }; 260 261 vreg_l14a_1p88: l14 { 262 regulator-min-microvolt = <1880000>; 263 regulator-max-microvolt = <1880000>; 264 }; 265 266 vreg_l15a_1p8: l15 { 267 regulator-min-microvolt = <1800000>; 268 regulator-max-microvolt = <1800000>; 269 }; 270 271 vreg_l16a_2p7: l16 { 272 regulator-min-microvolt = <2704000>; 273 regulator-max-microvolt = <2704000>; 274 }; 275 276 vreg_l17a_1p3: l17 { 277 regulator-min-microvolt = <1304000>; 278 regulator-max-microvolt = <1304000>; 279 regulator-allow-set-load; 280 }; 281 282 vreg_l18a_2p7: l18 { 283 regulator-min-microvolt = <2704000>; 284 regulator-max-microvolt = <2704000>; 285 }; 286 287 vreg_l19a_3p0: l19 { 288 regulator-min-microvolt = <3008000>; 289 regulator-max-microvolt = <3008000>; 290 }; 291 292 vreg_l20a_2p95: l20 { 293 regulator-min-microvolt = <2960000>; 294 regulator-max-microvolt = <2960000>; 295 regulator-allow-set-load; 296 }; 297 298 vreg_l21a_2p95: l21 { 299 regulator-min-microvolt = <2960000>; 300 regulator-max-microvolt = <2960000>; 301 regulator-allow-set-load; 302 regulator-system-load = <800000>; 303 }; 304 305 vreg_l22a_2p85: l22 { 306 regulator-min-microvolt = <2864000>; 307 regulator-max-microvolt = <2864000>; 308 }; 309 310 vreg_l23a_3p3: l23 { 311 regulator-min-microvolt = <3312000>; 312 regulator-max-microvolt = <3312000>; 313 }; 314 315 vreg_l24a_3p075: l24 { 316 regulator-min-microvolt = <3088000>; 317 regulator-max-microvolt = <3088000>; 318 }; 319 320 vreg_l25a_3p3: l25 { 321 regulator-min-microvolt = <3104000>; 322 regulator-max-microvolt = <3312000>; 323 regulator-allow-set-load; 324 }; 325 326 vreg_l26a_1p2: l26 { 327 regulator-min-microvolt = <1200000>; 328 regulator-max-microvolt = <1200000>; 329 }; 330 331 vreg_l28_3p0: l28 { 332 regulator-min-microvolt = <3008000>; 333 regulator-max-microvolt = <3008000>; 334 }; 335 336 vreg_lvs1a_1p8: lvs1 { 337 regulator-min-microvolt = <1800000>; 338 regulator-max-microvolt = <1800000>; 339 }; 340 341 vreg_lvs2a_1p8: lvs2 { 342 regulator-min-microvolt = <1800000>; 343 regulator-max-microvolt = <1800000>; 344 }; 345 }; 346}; 347 348&remoteproc_mss { 349 status = "okay"; 350}; 351 352&sdhc2 { 353 status = "okay"; 354 355 vmmc-supply = <&vreg_l21a_2p95>; 356 vqmmc-supply = <&vreg_l13a_2p95>; 357 358 pinctrl-names = "default", "sleep"; 359 pinctrl-0 = <&sdc2_on &sdc2_cd>; 360 pinctrl-1 = <&sdc2_off &sdc2_cd>; 361}; 362 363&tlmm { 364 gpio-reserved-ranges = <0 4>, <81 4>; 365 366 touchpad: touchpad-pin-state { 367 pins = "gpio123"; 368 function = "gpio"; 369 bias-pull-up; 370 }; 371}; 372 373&ufshc { 374 status = "okay"; 375}; 376 377&ufsphy { 378 status = "okay"; 379 vdda-phy-supply = <&vreg_l1a_0p875>; 380 vdda-pll-supply = <&vreg_l2a_1p2>; 381}; 382 383&usb3 { 384 status = "okay"; 385}; 386 387&usb3_dwc3 { 388 dr_mode = "host"; /* Force to host until we have Type-C hooked up */ 389}; 390 391&usb3phy { 392 status = "okay"; 393 394 vdda-phy-supply = <&vreg_l1a_0p875>; 395 vdda-pll-supply = <&vreg_l2a_1p2>; 396}; 397 398&wifi { 399 status = "okay"; 400 401 vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>; 402 vdd-1.8-xo-supply = <&vreg_l7a_1p8>; 403 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; 404 vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; 405}; 406